не один советник не работает в метатрейдер 5 любая валютная пара - страница 7

 

А вот и нащупывается причина:

10030

TRADE_RETCODE_INVALID_FILL

Указан неподдерживаемый тип исполнения ордера по остатку 

о чем уже было сказано:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

не один советник не работает в метатрейдер 5 любая валютная пара

sandex, 2015.04.29 12:56

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

тип исполнения ордеров должно быть ORDER_FILLING_RETURN 


 
Karputov Vladimir:

А вот и нащупывается причина:

10030

TRADE_RETCODE_INVALID_FILL

Указан неподдерживаемый тип исполнения ордера по остатку 

о чем уже было сказано:


как сделать чтобы тип исполнения был  таким? ORDER_FILLING_RETURN 
 
Так исправь ORDER_FILLING_ там может FOG  на RETURN...У меня на МТ5 тоже такое было  - малейшее вмешательство в код во время торговли причем на реале и все замирает - потерял 100$ на этом, новые коды тоже не работали на демо пока в них не вносил какую нибудь свою фишку - может оно так и задумано... для чего только непонятно...  потому давно забросил этот МТ5, хотя начинал с него - как-то надежней и проще казался...
 
chipo:
Так исправь ORDER_FILLING_ там может FOG  на RETURN...У меня на МТ5 тоже такое было  - малейшее вмешательство в код во время торговли причем на реале и все замирает - потерял 100$ на этом, новые коды тоже не работали на демо пока в них не вносил какую нибудь свою фишку - может оно так и задумано... для чего только непонятно...  потому давно забросил этот МТ5, хотя начинал с него - как-то надежней и проще казался...
НЕ В 1 стандартном советнике нет строк  ORDER_FILLING - ORDER_FOK - FOK 
 
все стандартные советнике построены на стандартной библиотеке, править надо библиотеку
 
Alexander Bereznyak:
все стандартные советнике построены на стандартной библиотеке, править надо библиотеку

Стандартную библиотеку править не нужно - это неправильный подход. Нужно просто сохранить советник под новым именем и немного изменить код. Например сохранить советник Moving Averages.mq5 под новым именем Moving Averages1.mq5. 

В шапку добавить описание, что в данном советнике применяется политика исполнения ORDER_FILLING_RETURN:

#property version   "1.00"
#property description "Политика исполнения: ORDER_FILLING_RETURN"
#include <Trade\Trade.mqh>

 

и добавить по одной строчке кода в функции закрытия и открытия позиции:

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   .
   .
   .
//--- additional checking
   if(signal!=WRONG_VALUE)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
           }
//---
  }
//+------------------------------------------------------------------+
//| Check for close position conditions                              |
//+------------------------------------------------------------------+
void CheckForClose(void)
  {
   .
   .
   .
//--- additional checking
   if(signal)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>100)
           {
            CTrade trade;
            trade.SetTypeFilling(ORDER_FILLING_RETURN);
            trade.PositionClose(_Symbol,3);
           }
//---
  }
 
Karputov Vladimir:

Стандартную библиотеку править не нужно - это неправильный подход. Нужно просто сохранить советник под новым именем и немного изменить код. Например сохранить советник Moving Averages.mq5 под новым именем Moving Averages1.mq5. 

В шапку добавить описание, что в данном советнике применяется политика исполнения ORDER_FILLING_RETURN:

 

и добавить по одной строчке кода в функции закрытия и открытия позиции:

Отлично! Всё работает. Благодарю вас за труды и разъяснения! 
 
Тема не будет удалятся? А то нужна будет в будущем :)
Причина обращения: