Как повысить соотвествие сделок в тестере с торговлей на счете.

 
Доброго дня. У меня советник на основе стандартных индикаторов. iBands, iMA, iRSI, таймфрейм от М15 до H4. Все сигналы снимаются с 1 бара, ни как не с нулевого.
Есть функция контроля нового бара на М1 что бы ускорить тестирование.
Причем пробовал несколько разных вариантов такой функции:

if (iVolume(NULL, PERIOD_M1, 0) >= 2/*пробовал и 1 и 2,3..*/)return(0);


bool isNewBar=false;
if (ExpertBars !=iBars(NULL, PERIOD_M1)){
      ExpertBars=iBars(NULL, PERIOD_M1);
      isNewBar=true;
}

if (!isNewBar)return(0);

В советнике реализован цикл с 3 попытками если ордер не открылся\закрылся.
Сделки могут быть открыты от 1 часа до 5 часов.

Тестирую на котировка брокера, у которого торгую.

Сравнивал стейт с реальной торговлей и с тестером - соответствие порядка 75-80%, вроде как бы не плохо но суть в том что на реале открываются ордера а в тестере некоторых нет.

Например был убыток на реале в 20% а в тестре именно этот ордер не открылся.

Вопрос. КАК ПОВЫСИТЬ соответствия тестера (я понимаю что тестер это тестер) но все же, какими приемами можно поднять соответствие тестера и реальной торговли.

Спасибо за любую информацию.

 
функцию контроля нового бара делайте от M15 до H4
 
Alexander Bereznyak:
функцию контроля нового бара делайте от M15 до H4

1. Как я понял это потому что в индикаторах такой ТФ - и как все таки выбрать какой М15 или H4?

2. Как быть если в советнике есть проверка на модификацию или закрытию по обратному сигналу? Если советник будет проверять такие сигналы скажем каждые М15 тогда может пропустить сигналы на закрытие или вовремя перенести СЛ в безубыток.

 
выбирайте тот на котором работают индикаторы, если индикаторы работают на разных тайм-фремах, то для каждого тайм-фрейма надо делать свой контроль открытия бара
 

Тестер в MT4 и MT5 использует не настоящие тики, а моделированные на ohlc значениях баров. Последняя бета версия MT5 может тестировать на реальных тиках, тут немного подробнее (где взять, как тестировать, итд) - https://www.mql5.com/ru/forum/76945

С ней у вас результаты будут гораздо ближе к реальным. 

 
Alexander Bereznyak:
выбирайте тот на котором работают индикаторы, если индикаторы работают на разных тайм-фремах, то для каждого тайм-фрейма надо делать свой контроль открытия бара

То есть не в самом начале делать

if (!isNewBar)return(0);


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

   double MA1 = iMA(NULL, PERIOD_M15, MA_Period1, 0, MODE_SMMA, PRICE_CLOSE, 1);
   double MA2 = iMA(NULL, PERIOD_M15, MA_Period2, 0, MODE_SMMA, PRICE_CLOSE, 2);
   
   int x = 0;
   if (MA1 > MA2){
      x = 1;
   }

   if (isNewBarM15){
   
   if (OrdersTotal()<1){
   if (x==1){
      OrderSend(Symbol(),OP_BUY,0.01,Ask,5,0,0,0,Magic,0,Blue);
   }
   }
   }


Правильно я понял Вашу мысль?

 
Dr.Trader:

Тестер в MT4 и MT5 использует не настоящие тики, а моделированные на ohlc значениях баров. Последняя бета версия MT5 может тестировать на реальных тиках, тут немного подробнее (где взять, как тестировать, итд) - https://www.mql5.com/ru/forum/76945

С ней у вас результаты будут гораздо ближе к реальным. 

МТ5 умеет тестить советник mql4 ?
 

Причин может быть много всяких.

Одна из:

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

Терминал время от времени (раз в несколько минут) сверяет свое построение с историей сервера, и если обнаруживает расхождения - подкачивает правильные бары. И это выглядит как перерисовка истории.

 

Элементарно, Ватсон. Сделать свой тестер. Пишется за пару дней от VBA Excel до C#. Ну, блин, если вы это не можете, тогда и не знаю....

Я этот тестер вообще не пользую, т.к. не понимаю, что он вообще делает.

 
MonArX:

То есть не в самом начале делать


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


Правильно я понял Вашу мысль?

обработку индикатора тоже перенесите в скобки, зачем вызывать индикатор на каждом тике 

 
Alexander Bereznyak:

обработку индикатора тоже перенесите в скобки, зачем вызывать индикатор на каждом тике 

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