Не открываются сделки или не устанавливаются тейки и стопы

 

Был перерыв в программировании на MQL5 после чемпионата...

сейчас решил вспомнить былое и натолкнулся как обычно у метаквотов на новые преграды... опять советники не открывают сделки, новые ошибки появились и прочее...

 исправил... стал свой советник открывать сделки но без установки стопов  и тейков...

 что я пропусти за полгода такого? :)

ради прикола скачал советник с кодебейз... он тоже ничего не открывает... странно всё это... 

 

MqlTradeRequest   order;                                       // Будет использоваться для отсылки торговых запросов

MqlTradeResult    result;                                      // Будет использоваться для получения результатов выполнения торговых запросов

MqlDateTime       time;

MqlTick           tick;                                        // переменная для хранения информации о тике 

 


int Buy ( double lot )
   {
//---
      SL = _1_stop_; TP = _1_take_; 
      
      order.sl = NormalizeDouble ( tick.ask - SL * _Point,_Digits );
      order.tp = NormalizeDouble ( tick.ask + TP * _Point,_Digits );     
      order.volume = lot;
      order.price = tick.ask;
      order.type = ORDER_TYPE_BUY;                             // Тип ордера
      OrderSend ( order, result );
      if ( result.retcode == 10009 || result.retcode == 10008 ) Print ( "Ордер Buy успешно помещен, тикет ордера #:", result.order );
         else 
            Print ( "Запрос на установку ордера Buy не выполнен - код ошибки:", GetLastError () );
//---          
      return 0;  

   }

 

вот собственно... раньше это прекрасно работало... теперь не фурычит... что не так? 

 
Вы код ошибки смотрели? Ну и правильно вставляйте код в сообщение, пожалуйста.
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
S4kam:

вот собственно... раньше это прекрасно работало... теперь не фурычит... что не так? 

Посмотрите: Структура торгового запроса .

Кроме того, структуры запроса и ответа надо принудительно обнулять перед использованием, например, с помощью ZeroMemory().

 
вам поможет то же что и мне.. сначало открывать позицию, потом модифицыровать ее. не ставится ордер сразу со стопами и тейками
 
Мне тоже помог ZeroMemory() для всех структур перед использованием, прошлогодний советник завелся с пол-оборота.
 
komposter:
Мне тоже помог ZeroMemory() для всех структур перед использованием, прошлогодний советник завелся с пол-оборота.
мне этот способ не помог
 
S4kam:
мне этот способ не помог

Вы запрос-то правильно оформили ? В Вашем примере из 9 обязательных полей заполнено только 5.

Instant Execution:

Торговый ордер на открытие позиции в режиме Instant Execution (режим торговли по потоковым ценам). Требуется указание 9 полей:

  • action
  • symbol
  • volume
  • price
  • sl
  • tp
  • deviation
  • type
  • type_filling

Можно также задать значения полей magic и comment.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Valmars:

Вы запрос-то правильно оформили ? В Вашем примере из 9 обязательных полей заполнено только 5.

Instant Execution:

Торговый ордер на открытие позиции в режиме Instant Execution (режим торговли по потоковым ценам). Требуется указание 9 полей:

  • action
  • symbol
  • volume
  • price
  • sl
  • tp
  • deviation
  • type
  • type_filling

Можно также задать значения полей magic и comment.

сделка происходит, значит всего достаточно... вопрос в том, что не устанавливаются sl и tp...
 
Rosh:

Вы код ошибки смотрели? Ну и правильно вставляйте код в сообщение, пожалуйста.
ошибок в журнале не имеется, в том то и дело
 
int OnInit ()
   {
//---
      //Установка значений по умолчанию для всех новых торговых запросов
      order.action = TRADE_ACTION_DEAL;
      order.magic = 12345;
      order.symbol = Symbol ();                                // Финансовый инструмент
      order.deviation = 3;                                     // Максимально возможное отклонение от указанной цены
      order.type_filling = ORDER_FILLING_IOC;                  // Тип исполнения
      order.type_time = ORDER_TIME_GTC;                        // Срок действия ордера
      
      //--- Для работы с брокерами, использующими 3-х и 5-ти значные котировки,
      //--- умножаем на 10 значения SL и TP
//      TP = take;
//      SL = stop;
      if ( _Digits == 5 || _Digits == 3 ) 
         {
            _1_take_ = _1_take * 10;
            _1_stop_ = _1_stop * 10;

             
         }
     
//---
      return 0;
   }