Spezifikation
Задача состоит в создании индикатора, который мог бы сравнивать позиции по открытию 2-х разных инструментов и создании эксперта, который по сигналам индикатора мог бы открывать и закрывать ордера по 2-м инструментам в МТ4. Возможно совмещение 2 в 1 – индикатор и эксперт в одном эксперте.
Индикатор сравнивает позиции 2-х разных инструментов и находит численную разницу степеней между ними, например: open(EURUSD)^N-open(GBPUSD)^N. Эти численные значения накапливаются в установленном количестве, например 10 последних разниц степеней. Количество таких «значений» задается вручную в целых числах. При значении этого параметра = 1, хранится и будет использоваться в будущем только 1 разница степеней. При значении = 2, хранится и будут использоваться в будущем 2 разницы степеней. И т.д.
При получении сигнала индикатора на открытие ордеров, эксперт открывает ордера, проверив текущий спред (см.ниже) и проверив наличие необходимого количества заявок в стакане (при наличии такового). При получении сигнала на закрытие ордеров, эксперт закрывает ордера. Необходимо учесть все возможные нюансы открытия и закрытия, связанные с возможностью открытия ордеров в желаемом размере, отсутствием/разрывом цены/связи, проскальзыванием и т.п.
При получении сигнала на закрытие ордеров, все ордера закрываются с учетом всех нюансов.
Необходимо предусмотреть возможность уведомления клиента о совершенных операциях.
Необходимо устанавливать время начала торгов, чтобы ориентироваться по нему. Как правило, это время по Гринвичу. Т.е. пока в РФ не изменен порядок перехода или не перехода на зимнее время и, наоборот, пока где-то не изменено время начала торгов, необходимо «прошить» в эксперте (с возможностью ручного изменения) точное время открытия дня для расчета позиций по каждому инструменту.
Таким образом, открытие дня – open day по некоторым инструментам у нас может начинаться в 01:00 по Москве (или в 02:00 зимой как в данный момент). По умолчанию устанавливается Московское время.
По другим инструментам, открытие дня возможно в 00:00 по Москве. Эту разницу времени открытия дня по разным инструментам следует учесть.
С учетом недавних событий по комплексному отключению интернета, целесообразно встроить в эксперта функцию проверки наличия «разрешения» на торговлю, в частности, на открытие ордеров на каждый день или даже на каждую торговую сессию. Т.е. надо присылать на сервер, на котором стоит эксперт постоянные разрешения. Ну, или, хотя бы, на неделю вперед. Т.е. если мы «дали» разрешение на неделю вперед, то не надо ждать подтверждения каждый день. Но это «недельное разрешение» может быть отозвано в любой момент и тогда будет требоваться постоянное переподтверждение на торговлю на каждый день или на каждую сессию.
Более подробное описание работы индикатора/эксперта обсуждается с выбранным Исполнителем