О минимальном расстоянии установки ордеров при Тестовом прогоне истории в выходные

 

Господа, добрый день.

Возник вопрос относительно того, каким образом в тестовом режиме советник МТ4 отрабатывает такой параметр как минимальное расстояние установки ордеров: где берет и как себя ведет. Детали вопроса ниже. Читал пару веток, например, эту - https://www.mql5.com/ru/forum/102630, однако, ответа по сути моего вопроса не нашел.

Вопрос предваряю следующим наблюдением.

Я пишу советник, в нем используются два параметра: dlt=MarketInfo(Symbol(),MODE_STOPLEVEL); и spread=MarketInfo(Symbol(),MODE_SPREAD); - И первый, и второй участвует в формулах расчета цен ордеров в форме dlt*Point или spread*Point.

Сейчас, в ночь на субботу, в 4 МСК, когда торговли уже нет, я обнаруживаю, что dlt стала равна 300 при 5-значной котировке (брокер раздвинул дельту на выходные, впрочем, и котировок нет). Соответственно, это сильно влияет на итоги теста. Я же, имея желание проверять советника на основе параметров, приближенных к торговому режиму, и желая прогнать тест в удобное для меня время, ставлю вместо dlt=MarketInfo(Symbol(),MODE_STOPLEVEL) формулу dlt=30, надеясь, что теперь эта дельта будет похожей на реальность в будние дни и позволит корректно прогнать тест по историческим данным. Но теперь советник вообще перестает что бы то ни было рассчитывать - из-за этой смены ни одного ордера не выставляется, хотя, казалось бы, чисто алгебраического препятствия, связанного с моими кодами, уже нет. С параметром спрэда, если его переприсвоить вручную, такого эффекта нет. Кроме того, если я отключаюсь от сети, то МТ4 и по-прежнему показывает 300, и по-прежнему не дает сделок, если параметру присвоить значение искусственно.

Подскажите, пожалуйста:

1. Верно ли я понял, что параметр минимального расстояния установки ордеров невозможно задать вручную для теста и что он берется исключительно он-лайн с сервера брокера?

2. Верно ли, что будучи получен с сервера, этот параметр остается заданным (30 или 300) на весь дальнейший период работы оФ-лайн, до следующего момента связи с сервером?

3. И главный вопрос: Как обойти эту проблему, чтобы иметь возможность гонять советника на истории со вменяемыми значениями минимального расстояния даже в выходные?

Спасибо.

 

Игорь, большое спасибо.

Ваша ссылка ответила на мои вопросы, в том числе о том, как ситуация разрешается.

Резюме для тех, кто будет искать ответ на мой вопрос о том, действительно ли для МТ4 в тесте на истории используется тот стоп-левел, который взят из реального потока онлайн, и как корректно проводить тест на истории, если стоп-левел для реальной торговли резко расширяется:

Действительно, спрэд и стоп-левел записываются программой куда-то "в себя", когда терминал в онлайне. Именно эти записанные значения используются в том числе и для тестирования советников на истории. Проблема такой организации вылезает тогда, например, когда брокер резко расширяет спрэд и стоп-левел. В этом случае весь ваш тест может показать совсем не то, что он показал бы в режиме нормального торгового дня. Ответ на вопрос о том, есть ли такая проблема и как ее решить, лежит в указанной Игорем ветке: https://www.mql5.com/ru/forum/119830 . Основной вариант, который там обсуждается, заключается в том, чтобы воспользоваться для установки адекватных величин утилиткой, "вытаскивающей" на свет божий текущие значения указанных параметров. Я скачал вторую версию, причем ту, которую автор перезаливал повторно по чьей-то просьбе (ищите в ветке такой пост автора). Хотя ветка наполнена обсуждением наличия вирусов в утилите, в моем случае их, по данным MS Security Essential, не обнаружено (но Вы и сами проверьте). Чтобы изменить для теста параметры: выключить терминал, отключиться от сети, запустить утилиту, изменить параметры, к сети не подключаться (иначе опять перезапишет "свое", тестировать. PS. В этой утилитке есть галочка "По правилу" - она перенастраивает показания с 4-значной котировки на 5-значную. С этим внимательнее, чобы верно понимать, что такое 1,8 и 30 - 1,8 и 30 или 18 и 300.

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