Установка SL и TP сразу после открытия ордера

 
Подскажите безграммотному. Столкнулся с необходимостью в эксперте изменить код таким образом, чтобы ордер открывался без SL и TP, но сразу после открытия ордера нужно SL и TP установить. Подскажите как правильно прописать код на установку после открытия ордера.
 
Пишите процедуру, которая проверяет наличие открытых ордеров, потом проверяете тот ли этот ордер, если в советнике используются магики, потом с помощью ф-ции OrderModifi() устанавливаете стоп и профит.
 

Вот здесь есть функция Функция ModifyOrder().

и пример её использования для вашего случая 

'Полезные функции от KimIV'

 
Это как бы типовая, дальше эксперементируйте.
      if (OrdersTotal()!=0)//проверка наличия открытых ордеров
         {
         for (int i = 0; i < OrdersTotal(); i++) //ищем последний открытый ордер
             {
             if (OrderSelect(i, SELECT_BY_POS)==true)
                {
                if (OrderMagicNumber()== magic)//если используется магик
                   {
                   OrderModify(OrderTicket(), 0, stoploss, takeprofit,0);//модификация ордера
                   if(GetLastError()==0)Print("Уровень стоп-лосс и тейк-профит модифицированы: ", "стоп-лосс: ", stoploss, "тейк-профит: ", takeprofit);
                   }
                }
             }
         }
 

StSpirit писал(а) >>
Это как бы типовая, дальше эксперементируйте.

В таком случае модификация позы будет происходить до посинения, вне зависимости от того, установлены ли стоп и профит. 

Вышеприведенную функцию нужно изменить хотя бы так:

 if(OrdersTotal()!=0)//проверка наличия открытых ордеров
   for(int i = 0; i < OrdersTotal(); i++) //ищем последний открытый ордер
     if(OrderSelect(i, SELECT_BY_POS))
        if(OrderMagicNumber()== magic && OrderStopLoss() == 0 && OrderTakeProfit() == 0)//если используется магик
         {
          if(OrderType() == OP_BUY) 
            {
             // расчет стопа и профита для длинных поз 
            }
           else
            {
             // расчет стопа и профита для коротких поз
            } 
          OrderModify(OrderTicket(), 0, stoploss, takeprofit,0);//модификация ордера
          if(GetLastError()==0)
            Print("Уровень стоп-лосс и тейк-профит модифицированы: ", "стоп-лосс: ", stoploss, "тейк-профит: ", takeprofit);
         }

 
 
Scriptong >>:

В таком случае модификация позы будет происходить до посинения, вне зависимости от того, установлены ли стоп и профит. 

Совершенно верно. Я же написал что это типовая, так как считаю неправильным выкладывать ф-ции уже полностью готовые, это в плане образования в mql это сильно не поможет, я дал просто каркас, дальше можно туда и проверок напихать и прочего. Кстати, когда я появился на этом форуме, меня с первыми просьбами, что касалось кода, посылали подальше к учебникам и это правильно, я быстрее освоил язык. А если бы мне на все вопросы выкладывали полностью готовые ответы, то я бы и чаще спрашивал... Считаю что этот форум все-таки место для того, чтобы делились опытом, а не делали полностью за других :) Вот такая вот петрушка.

 
StSpirit писал(а) >>

Совершенно верно. Я же написал что это типовая, так как считаю неправильным выкладывать ф-ции уже полностью готовые, это в плане образования в mql это сильно не поможет, я дал просто каркас, дальше можно туда и проверок напихать и прочего. Кстати, когда я появился на этом форуме, меня с первыми просьбами, что касалось кода, посылали подальше к учебникам и это правильно, я быстрее освоил язык. А если бы мне на все вопросы выкладывали полностью готовые ответы, то я бы и чаще спрашивал... Считаю что этот форум все-таки место для того, чтобы делились опытом, а не делали полностью за других :) Вот такая вот петрушка.

Не соглашусь с оппонентом. Если Вы хотите направить новичка, то и направляйте описаниями и объяснениями. Но, если Вы выкладываете код, он должен работать. В противном случае Вы еще больше запутаете товарища.

 

Сорри за не в тему, но открывать же новую тему ...

Помню где то в codebase был скрипт или индюк, SL и TP для открытого ордера двигал визуально через OBJ_VLINE,

обыскался - не могу вспомнить как топик назывался, не писать же по новой ... Не подскажет кто ?

 
Kishar писал(а) >>
Подскажите безграммотному. Столкнулся с необходимостью в эксперте изменить код таким образом, чтобы ордер открывался без SL и TP, но сразу после открытия ордера нужно SL и TP установить. Подскажите как правильно прописать код на установку после открытия ордера.

Сделаю за 10$. mql5@yandex.ru Будет выставлять заложенные уровни Sl Tp на все ордера.

 

Не знаю конкретно что Вы имели ввиду, я выкладывал подобное здесь

http://forum.alpari.ru/thread41434.html