managetakeprofit.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «managetakeprofit.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, предназначенный для управления открытыми торговыми позициями. Он отслеживает все активные ордера BUY и SELL на текущем символе и при достижении заданного уровня прибыли в пунктах выполняет частичное закрытие позиции указанным объёмом лотов. После каждого успешного закрытия целевой уровень прибыли увеличивается на заданный инкремент.
При активации соответствующей настройки советник способен также перемещать стоп-лосс в сторону убытка (в пользу трейдера), когда цена достигает определённого порогового уровня в пунктах. Перемещение стоп-лосса происходит на заданное расстояние, что позволяет фиксировать часть прибыли при движении рынка в нужном направлении.
Советник запускается при инициализации и работает на каждом тике, вызывая два основных блока логики: частичное закрытие позиций и перемещение стоп-лоссов. Состояние текущих целевых уровней хранится в глобальных переменных и сбрасывается при деинициализации.
Настройки программы
| Настройка | Описание |
|---|---|
| First_Target | Начальный уровень цели по прибыли в пунктах, при достижении которого происходит частичное закрытие позиции. |
| Target_Increment | Прирост уровня цели по прибыли в пунктах после каждого успешного частичного закрытия позиции. |
| Close_Lots | Объём лотов для частичного закрытия позиции при достижении целевого уровня прибыли. |
| First_Stop | Начальный уровень в пунктах, при достижении которого возможно перемещение стоп-лосса в сторону прибыли. |
| Stop_Differential | Расстояние в пунктах, на которое перемещается стоп-лосс в сторону прибыли при активированном перемещении. |
| Move_Stops | Переключатель, определяющий, разрешено ли автоматическое перемещение стоп-лосса при достижении заданного порога. |
Поиск по коду файла
extern int First_Target = 10;
extern int Target_Increment = 6;
extern double Close_Lots = 0.1;
extern int First_Stop = 10;
extern int Stop_Differential = 0;
extern bool Move_Stops = true;
int ft; //This variable will be incremented by the target increment after every successful take profit.
int fs; // This variable will change as the trade progresses if Move_Stops is true.
int curPipValue; // Checks to see the difference between the open price and current price in pips.
void ManageTrade()
{
int ti=Target_Increment; //This variable will not change.
double cl=Close_Lots; // This variable will not change.
int trange = 0; // Use a range versus a specific pip amount as prices may get jumped.
int totalorders = OrdersTotal(); // Calls a function to get all the open orders.
for(int j=0; j<totalorders;j++)
{
OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
if(ft == 0) ft = First_Target;
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
curPipValue = (Bid - OrderOpenPrice())/Point;
if(ft == 0) ft = First_Target;
trange=ft+5;
if(curPipValue >= ft-1 && curPipValue <= trange)
{
if(OrderClose(OrderTicket(), cl, Bid, 3, YellowGreen))
{
ft += ti;
Comment(ft);
return(0);
}
}
}
else if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
{
curPipValue = (OrderOpenPrice()-Ask)/Point;
if(ft == 0) ft = First_Target;
trange=ft+5;
if(curPipValue >= ft-1 && curPipValue <= trange)
{
if(OrdПоказано первые 50% кода (символов: 2251)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.