Тестирование "OHLC" и "все тики"

 

Есть советник, в котором расчетные действия выполняются на каждом тике.

Оптимизированная настройка советника для режима тестирования "OHLC" дает положительный результат по прибыли.

Тестирование в режиме "каждый тик" даёт нулевой или отрицательный результат и не оптимизируется к положительному результату.

Как же так?

Ведь режим "OHLC" даёт всего четыре значения за бар, а режим "все тики" гораздо больше значений и казалось бы больше возможностей для оптимизации параметров.

Какие варианты можно использовать, что бы режим "каждый тик" тоже давал прибыльность, как и режим "OHLC"?

Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Среди программ для автоматического трейдинга можно выделить две большие категории: торговые роботы и индикаторы. Первые предназначены для...
 
Yury Kirillov:

Есть советник, в котором расчетные действия выполняются на каждом тике.

Оптимизированная настройка советника для режима тестирования "OHLC" дает положительный результат по прибыли.

Тестирование в режиме "все тики" даёт нулевой или отрицательный результат и не оптимизируется к положительному результату.

Как же так?

Ведь режим "OHLC" даёт всего четыре значения за бар, а режим "все тики" гораздо больше значений и казалось бы больше возможностей для оптимизации параметров.

Какие варианты можно использовать, что бы режим "все тики" тоже давал прибыльность, как и режим "OHLC"?

разобраться с алгоритмом и принципом советника, подумать отчего идёт прибыль в OHLC. Есть некоторый шанс что сможете адаптировать и к нормальной работе. Только это не оптимизатором делается :-) Исключительно головой

 
Yury Kirillov:

Есть советник, в котором расчетные действия выполняются на каждом тике.

Оптимизированная настройка советника для режима тестирования "OHLC" дает положительный результат по прибыли.

Тестирование в режиме "все тики" даёт нулевой или отрицательный результат и не оптимизируется к положительному результату.

Как же так?

Ведь режим "OHLC" даёт всего четыре значения за бар, а режим "все тики" гораздо больше значений и казалось бы больше возможностей для оптимизации параметров.

Какие варианты можно использовать, что бы режим "все тики" тоже давал прибыльность, как и режим "OHLC"?


Как вариант попробовать в коде разместить ограничение. Что бы выполнялся алгоритм только в момент открытия или закрытия свечи. Это приведет к тому что советник будет работать по всем тикам как в режиме "OHLC".

 
Yury Kirillov:
 

Ведь режим "OHLC" даёт всего четыре значения за бар, а режим "все тики" гораздо больше значений и казалось бы больше возможностей для оптимизации параметров.

Какие варианты можно использовать, что бы режим "все тики" тоже давал прибыльность, как и режим "OHLC"?

Именно "гораздо больше возможностей для оптимизации" - и приводит к разнице результатов. Слишком много степеней свободы.

Вариант один - надо торговать на открытии баров твоего таймфрейма.  Пришла часовка - провел анализ, если надо - выставил приказ для сервера. Все. При таком подходе - на всех режимах тестирования получаются близкие результаты.  Как бонус - тестирование на ОХЛС - проводится гораздо быстрее, чем на "всех тиках".

 
George Merts:

Именно "гораздо больше возможностей для оптимизации" - и приводит к разнице результатов. Слишком много степеней свободы.

Вариант один - надо торговать на открытии баров твоего таймфрейма.  Пришла часовка - провел анализ, если надо - выставил приказ для сервера. Все. При таком подходе - на всех режимах тестирования получаются близкие результаты.  Как бонус - тестирование на ОХЛС - проводится гораздо быстрее, чем на "всех тиках".


Удивляет не разница в результатах, а то что в режиме "все тики" не оптимизируется в прибыль вовсе. Казалось бы OHLC подмножество от "все тики" стало быть должна быть область параметров как минимум повторяющая прибыльность по OHLC, но этого не наблюдается.

 
Yury Kirillov:

Удивляет не разница в результатах, а то что в режиме "все тики" не оптимизируется в прибыль вовсе. Казалось бы OHLC подмножество от "все тики" стало быть должна быть область параметров как минимум повторяющая прибыльность по OHLC, но этого не наблюдается.

OHLC - читерский режим, т.к. сообщает High и Low бара ДО его Close.

 
fxsaber:

OHLC - читерский режим, т.к. сообщает High и Low бара ДО его Close.

А разве в реальной торговле H и L появляются после Close ???

 
Yury Kirillov:

Удивляет не разница в результатах, а то что в режиме "все тики" не оптимизируется в прибыль вовсе. Казалось бы OHLC подмножество от "все тики" стало быть должна быть область параметров как минимум повторяющая прибыльность по OHLC, но этого не наблюдается.

Дык если у тебя эксперт внутри минутного бара может произвести какие-то действия - что ж удивляться, что результат другой ?
 
George Merts:

А разве в реальной торговле H и L появляются после Close ???

Да!

// Кроссплатформенный тестерный грааль для режима OHLC

#include <MT4Orders.mqh>

input double Koef = 2;

#ifdef __MQL5__
  #define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
  #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)
#endif // __MQL5__

void OnTick()
{
  static int Count = 0;
  static double BidOpen = 0;

  const int Flag = Count % 4;
  
  if (!Flag)
    BidOpen = Bid;
  else if (Flag == 1)
  {
    const double Spread = (Ask - Bid) * Koef;
    
    if (BidOpen - Bid  > Spread)
      OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0);
    else if (Bid - BidOpen > Spread)
      OrderSend(_Symbol, OP_SELL, 1, Bid, 0, 0, 0);
  }
  else if ((Flag == 2) && OrderSelect(0, SELECT_BY_POS))
    OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);
    
  Count++;
}
 
fxsaber:

OHLC - читерский режим, т.к. сообщает High и Low бара ДО его Close.

Это что-то новенькое. При открытии бара open, high, low, close равны между собой.

 
George Merts:

А разве в реальной торговле H и L появляются после Close ???


Они не появляются. Только в момент Close можно утверждать, что это были High и Low.

По теме. Режим OHLC моделирует развитие свечи. А потому время наступления High и Low может кардинально отличаться от того, что было реально. К примеру, если бар бычий, то считается, что сначала был Low, а потом High. На самом же деле все могло быть наоборот. В итоге, если в пределах свечи были и SL, и TP, то  получается несколько вариантов изменения баланса, которые далеки от реальности.