MetaTrader 5 Strategy Tester! - страница 38

 
В режиме визуализации, в тестере, отображение отложенных ордеров на вкладке Торговля происходит не сразу, а с опозданием в один тик. При этом в журнал сообщение об успешно проведённой операции выводится сразу. Также это событие сразу отображается в комментариях на графике и на вкладке Операции.


//---

С помощью эксперта прикреплённого к посту в этом можно убедиться. Также с помощью этого же эксперта можно увидеть, что ограничение по объёму превышается. Об этом подробнее писал до этого здесь и здесь.


P.S. Тест проводил в режиме Все тики пошагово (F12).


Файлы:
Test_Limit.mq5  43 kb
 

Столкнулся с тем, что неправильно генерируются котировки в тестере для инструментов с нестандартным размером тика. Например, сервер Windsor-MT5, инструмент SPJUN12. Запустим советник с 04.01.2010 по сегодняшний день в тестере:

int OnInit() {
   EventSetTimer(100000);
   return(0);
}
//------------------------------------------------------------------------------------------------------------------
void OnTimer() {
   MqlTick tick;    
   if (SymbolInfoTick(Symbol(), tick)) 
      Print("bid/ask/tick_size:", tick.bid, "/", tick.ask, "/", SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_SIZE));
}

и видим среди правильных значений откровенный бред:

KP      0       Random_Test (SPJUN12,D1)        01:51:08        2012.03.01 15:33:20   bid/ask/tick_size:1367.13/1367.15/0.25
HE      0       Random_Test (SPJUN12,D1)        01:51:08        2012.03.02 19:20:00   bid/ask/tick_size:1367.25/1367.27/0.25
JJ      0       Random_Test (SPJUN12,D1)        01:51:08        2012.03.03 23:06:40   bid/ask/tick_size:1368.25/1368.27/0.25
MM      0       Random_Test (SPJUN12,D1)        01:51:08        2012.03.05 02:53:20   bid/ask/tick_size:1368.0/1368.02/0.25
HS      0       Random_Test (SPJUN12,D1)        01:51:08        2012.03.06 06:40:00   bid/ask/tick_size:1359.75/1359.77/0.25
PD      0       Random_Test (SPJUN12,D1)        01:51:08        2012.03.07 10:26:40   bid/ask/tick_size:1346.0/1346.02/0.25

Конечно, возможен вариант битой истории у брокера - тогда нужно как-то автоматом предупреждать брокера.

Хотя, может быть, что глючит алгоритм генерации тиков внутри бара.

 Сервис-деск  #357726

 

 

 
notused:

 Сервис-деск  #357726

 

Разберёмся
 
stringo:
Разберёмся

Спасибо, этот вопрос закрыт.

Но есть новый - в последнем билде (ранее вроде работал) нельзя тестировать мультивалютники, если 

а) один из инструментов имеет историю, начинающуюся ПОЗЖЕ даты начала тестирования; 

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

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

Сервис-деск #366129 (х64) 

 
notused:

Но есть новый - в последнем билде (ранее вроде работал) нельзя тестировать мультивалютники, если 

а) один из инструментов имеет историю, начинающуюся ПОЗЖЕ даты начала тестирования; 

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

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

По поводу более ранних билдов - в этом месте ничего не меняли, оно и раньше так работало.

А какие Ваши предложения? Нет истории - нет цены. Нет цены - нет сделки.

 
stringo:

По поводу более ранних билдов - в этом месте ничего не меняли, оно и раньше так работало.

А какие Ваши предложения? Нет истории - нет цены. Нет цены - нет сделки.

нет истории - нет сделок, появилась история - появились сделки

Сейчас же - если в начале нет истории, то и сделок вообще нет по символу с неполной историей. 

 

Открыл для себя, что-то новое.

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

Я предполагал, что бары всех таймфреймов формируются из минуток в начале теста и потом уже на них строятся индикаторы, а на самом деле не так.

Вот как это выглядит:

Режим Только цены открытия, таймфрейм в настройках тестера H8, данные берём от индикатора ATR с таймфрейма D1:

//---

Режим Только цены открытия, таймфрейм в настройках тестера H1, данные берём от индикатора ATR с таймфрейма D1:

//---

Режим OHLC на M1, таймфрейм в настройках тестера H8, данные берём от индикатора ATR с таймфрейма D1:

//---

Для большей наглядности лучше записать данные в разных режимах в файл и вывести на график в Excel:

//---

Это очень большое отличие. Может быть нужно учесть этот момент в тестере? То есть, например, не сформировавшийся бар на старших ТФ пусть "пляшет" от самого младшего в настройках тестера, а как только наступает новый бар, то он подменяется из истории. Так хоть можно будет по сформировавшимся барам стратегии адекватно (максимально быстро) протестировать в режиме Только цены открытия. Иначе результаты тестов отличаются также, очень сильно.

 
К предыдущему посту. Как вариант, можно сначала записывать реальные данные индикаторов нужные для теста и потом читать их из файла. Но это опять костыль. Нужно, чтобы всё правильно в тестере работало. ))
 
tol64:
К предыдущему посту. Как вариант, можно сначала записывать реальные данные индикаторов нужные для теста и потом читать их из файла. Но это опять костыль. Нужно, чтобы всё правильно в тестере работало. ))
Проблему будем решать по-правильному. Не надо ничего никуда записывать
 
stringo:
Проблему будем решать по-правильному. Не надо ничего никуда записывать

Спасибо. Я так долго ждал Вашего ответа, что уже даже потерял надежду его получить. :) И даже уже успел разработать механизм для правильного тестирования и ощутил, как бы было здорово, если бы разработчики всё сделали правильно. Так что Ваш ответ очень кстати и желаю Вам решить эту проблему к следующему билду. Это будет подарком. ))

Причина обращения: