советник Time Open - страница 2

 

Решение подобных вопросов сводится к применению чёткой логики.

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

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

Если хочется, чтоб ордер открылся вот прям в 2 часа 00мин 00сек ровно, то следует вспомнить, что советник работает в режиме реального времени. Т.е. вот прям в эту секунду может не быть тика. А если тик случился, то пока выполняются другие вычисления, может набежать чу-чуть миллисекунд.. Это значит, что жёсткое условие сработает не всегда по объективным причинам.

Это значит, что для открытия ордера по времени в качестве условия гораздо разумней поставить диапазон: открывать, если уже больше такого-то, но при этом и меньше такого-то времени. Игорь предложил диапазон 2 минуты. Можно и так. Но любое численное значение должно быть обосновано. Для обоснования следует ещё раз проанализировать постановку задачи. Что случится после этих 2х минут? Почему (если в течение 2х минут не случился желанный тик) потом уже нельзя открывать? Как правило, основания нет. Нипочему. Просто так. А раз так, то зачем это ограничение? В большинстве случаев оно не нужно.

Всё это значит, что обычное решение состоит в том, чтобы проанализировать факт наступления некоторого момента (например, 2:00:00) и после этого поднять шлагбаум - открываемся на любом ближайшем тике.

А в каком виде хранить данные не имеет никакого значения. Важно, чтоб значение было верным.

---------------------

Летят две вороны в тумане. Одна другой говорит: ты поосторожней, тут где-то должен быть шлаг-БАумммм..:)