Не получается создать отложенный ордер

 

            MqlTradeRequest request;
            request.action=TRADE_ACTION_PENDING;

            request.symbol="EURUSD";
            request.volume=0.1;
            
               MqlTick last_tick;
               while (SymbolInfoTick("EURUSD",last_tick)==false)
            request.price=last_tick.last+50*_Point; 

                Print(" ",last_tick.last);
               Print(" ",SL*_Point);
               Print(" ",TipaCena);
            request.deviation=5;
                 
            request.sl=last_tick.last;
            request.tp=0;
            request.type=ORDER_TYPE_BUY_STOP;
            
            MqlTradeResult result;
            OrderSend(request,result);

в журнале пишется 

2010.06.16 15:21:04 Core 1 failed buy stop 0.10 EURUSD at 0.0000 sl: 1.2126 [Invalid stops]
2010.06.16 15:21:04 Core 1   0
2010.06.16 15:21:04 Core 1   0.005
2010.06.16 15:21:04 Core 1   1.2126

Что я неправильно сделал? 

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 

Пожалуйста, вставляйте код правильно, почитайте статью MQL5 Community - Памятка пользователя:

Кнопка   предназначена для вставки исходного кода MQL в текст сообщения. При нажатии появляется пустое окно, в которое необходимо вставить код и далее нажать кнопку Вставить. Для отмены вставки кода необходимо нажать кнопку Отмена.

Не рекомендуется выделять код полужирным шрифтом, чтобы выделить как-то по смыслу определенные куски. Дело в том, что в разных операционных системах и браузерах моноширинные шрифты отображаются по разному. Например, в Windows Vista используется моноширинный шрифт Consolas, у которого полужирное начертание для 10 размера практически не отличимо от обычного.


PS. Где в коде происходит установка значения переменной last_tick? Почему Вы не проверяете то, что Вы передаете в функцию OrderSend()?
 
Rosh:

Пожалуйста, вставляйте код правильно, почитайте статью MQL5 Community - Памятка пользователя:

PS. Где в коде происходит установка значения переменной last_tick? Почему Вы не проверяете то, что Вы передаете в функцию OrderSend()?
MqlTick last_tick;
while (SymbolInfoTick("EURUSD",last_tick)==false)

 

2010.06.16 15:21:04 Core 1 failed buy stop 0.10 EURUSD at 0.0000 sl: 1.2126 [Invalid stops]

из журнала видно, что при нулевой  цене, SL=1.2126 и типе ордера (buy stop) ордер неправильный

 

вопрос вот в чем, почему 1.2126+0.005=0 

 

Эта строчка

   while (SymbolInfoTick("EURUSD",last_tick)==false)
     {
      request.price=last_tick.last+50*_Point; 
     }

означает, что если не удалось получить в переменную last_tick последние текущие цены, то установим

request.price=last_tick.last+50*_Point; 

Вас ничего не смущает?

 

ага, точно, согласен

 

OrdersTotal()
результат этой функции включает в себя отложенные ордера?
 
jh77:

ага, точно, согласен

 

результат этой функции включает в себя отложенные ордера?
Поскольку ордер и позиции в новой версии разделены, данная функция вернет только количество отложников (если они есть)...