В МТ5 при тестировании по минуткам учитываются реальные спреды?

 
Если в МТ5 тестировать по минуткам в режиме "по ценам открытия" будут учитываться реальные спреды? те, которые тогда были в истории?

В МТ5, я так понял, исторические данные сохраняются в виде бидов и асков, и спредов между ними.

Когда в МТ4 сохраняются только биды....

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

Я все правильно понимаю?
 
igrok333:
Если в МТ5 тестировать по минуткам в режиме "по ценам открытия" будут учитываться реальные спреды? те, которые тогда были в истории?

В МТ5, я так понял, исторические данные сохраняются в виде бидов и асков, и спредов между ними.

Когда в МТ4 сохраняются только биды....

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

Я все правильно понимаю?

Я никогда не тестирую на открытии и был уверен, что нет. Стало интересно, набросал советник с единственной функцией, он в аттаче

void OnTick()
{
    double spread = NormalizeDouble(SymbolInfoDouble(Symbol(), SYMBOL_ASK) - SymbolInfoDouble(Symbol(), SYMBOL_BID), _Digits);
    Print(DoubleToString(spread));
}

И вот результаты, спред плавает, причем как раз расширяется при переходе через 00:00, как в реале

2019.05.15 03:14:27.517 Core 1 EURUSD,M15: testing of Experts\TesterSpread.ex5 from 2019.04.16 00:00 to 2019.04.17 00:00 started

2019.05.15 03:14:27.517 Core 1 2019.04.16 00:00:00   0.00010000

2019.05.15 03:14:27.517 Core 1 2019.04.16 00:15:00   0.00016000

2019.05.15 03:14:27.517 Core 1 2019.04.16 00:30:00   0.00009000

2019.05.15 03:14:27.517 Core 1 2019.04.16 00:45:00   0.00011000

2019.05.15 03:14:27.517 Core 1 2019.04.16 01:00:00   0.00009000

2019.05.15 03:14:27.517 Core 1 2019.04.16 01:15:00   0.00011000

2019.05.15 03:14:27.517 Core 1 2019.04.16 01:30:00   0.00011000

2019.05.15 03:14:27.517 Core 1 2019.04.16 01:45:00   0.00011000

2019.05.15 03:14:27.517 Core 1 2019.04.16 02:00:00   0.00010000

2019.05.15 03:14:27.517 Core 1 2019.04.16 02:15:00   0.00004000

2019.05.15 03:14:27.517 Core 1 2019.04.16 02:30:00   0.00010000

2019.05.15 03:14:27.517 Core 1 2019.04.16 02:45:00   0.00009000

2019.05.15 03:14:27.517 Core 1 2019.04.16 03:00:00   0.00008000

2019.05.15 03:14:27.517 Core 1 2019.04.16 03:15:00   0.00009000

2019.05.15 03:14:27.517 Core 1 2019.04.16 03:30:00   0.00009000

2019.05.15 03:14:27.517 Core 1 2019.04.16 03:45:00   0.00009000

2019.05.15 03:14:27.517 Core 1 2019.04.16 04:00:00   0.00008000

2019.05.15 03:14:27.517 Core 1 2019.04.16 04:15:00   0.00008000

2019.05.15 03:14:27.517 Core 1 2019.04.16 04:30:00   0.00008000



Файлы:
 
Alexey Volchanskiy:

Я никогда не тестирую на открытии и был уверен, что нет. Стало интересно, набросал советник с единственной функцией, он в аттаче

И вот результаты, спред плавает, причем как раз расширяется при переходе через 00:00, как в реале



да. спред плавающий.

но берет ли оно тот спред, который был при открытии бара...

где-то видел информацию, что учитывается минимальный спред за бар.
 
igrok333:
да. спред плавающий.

но берет ли оно тот спред, который был при открытии бара...

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

тогда надо дорабатывать советник

1. Первый проход тестера идет по тикам, запоминаются спреды, соответствующие ценам открытия

2. Проход по ценам открытия, пишутся спреды открытия

3. Спреды сравниваются вручную или программно


А зачем это все? Это бессмысленно, тест по открытию это просто фикция, проверка, что советник вообще живой, или крайне грубая оценка стратегии

 
igrok333:
где-то видел информацию, что учитывается минимальный спред за бар.

Да, так и есть.

Соберите кастумный символ, где будет один тик на бар с реальным спредом, и тестируйте "по всем тикам". Будет то, что вам нужно.

 
Andrey Khatimlianskii:

Да, так и есть.

Соберите кастумный символ, где будет один тик на бар с реальным спредом, и тестируйте "по всем тикам". Будет то, что вам нужно.

Если это так, то значит результаты тестирования неправильными получаются.

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

Мы же, в советнике, который работает по началам баров, открываемся при открытии бара, на первом тике.

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

Значит нужно тестировать только в режиме "все тики". Даже советники, которые работают по началам баров.
 
igrok333:
Если это так, то значит результаты тестирования неправильными получаются.

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

Мы же, в советнике, который работает по началам баров, открываемся при открытии бара, на первом тике.

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

Значит нужно тестировать только в режиме "все тики". Даже советники, которые работают по началам баров.
Этот режим для примерной оценки.
Для точного тестирования (в том числе, быстрого) все инструменты есть. 
Почему решили хранить в истории минимальный спред за минуту - другой вопрос, и он обсуждался, поищите. 
 
Andrey Khatimlianskii:
Этот режим для примерной оценки.
Для точного тестирования (в том числе, быстрого) все инструменты есть. 
Почему решили хранить в истории минимальный спред за минуту - другой вопрос, и он обсуждался, поищите. 

 нашел только такое:

https://www.mql5.com/ru/forum/1111/page2383#comment_10684160

по какой логике это сделано не нашел.


Почему не хранить в истории спред первого тика за бар? не понятно.

так бы советники, которые отслеживают начало нового бара, и работают по опэнам баров, можно было бы корректно тестировать.

А если тестировать по реальным тикам, так оптимизация будет долго проходить....

 
igrok333:

 нашел только такое:

https://www.mql5.com/ru/forum/1111/page2383#comment_10684160

по какой логике это сделано не нашел.


Почему не хранить в истории спред первого тика за бар? не понятно.

А почему не последний? Не 35-й?

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


igrok333:

А если тестировать по реальным тикам, так оптимизация будет долго проходить....

Решение предложил выше.

 
Andrey Khatimlianskii:

А почему не последний? Не 35-й?

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

ну для тестирования  в режиме "по ценам открытия баров" нужен спрэд первого тика за бар.

Другой вопрос, что та же минутная история используется для режима "генерация тиков".... Вот это проблема. Там лучше было бы хранить средний спрэд за бар.
Не будешь же 2 варианта истории хранить.

для первого режима лучше спрэд первого тика за бар.
для второго режима лучше средний спрэд за бар.

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

 
igrok333:

ну для тестирования  в режиме "по ценам открытия баров" нужен спрэд первого тика за бар.

Другой вопрос, что та же минутная история используется для режима "генерация тиков".... Вот это проблема. Там лучше было бы хранить средний спрэд за бар.
Не будешь же 2 варианта истории хранить.

для первого режима лучше спрэд первого тика за бар.
для второго режима лучше средний спрэд за бар.

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

Сделайте, как считаете нужным. Кастумные символы это позволяют.

Выхожу из дискуссии.

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