вторник, 26 марта 2013 г.

Боремся с большими стоп уровнями на МТ4

Этот набор довольно специфичен. 
Вы наверное помните недавнее поведение пары EURCHF, когда эта пара практически неподвижно стояла и можно было практически безболезненно и безопасно собирать пипсы. На 4-знаке и с еще некоторыми ухищрениями это вполне себе давало прибыль. Естественно ДЦ это не нравилось, так что увеличение спреда и раздвигание стоп уровней не удивило. Вот тогда мне помог советник, который будет описан в этом посте. 




Спред он конечно не уменьшил :) . Но довольно сильно сократил объем работы ручками (полного автомата я таки побоялся пускать).

Итак, видео инструкция представлена выше. Основные моменты там описаны.
Для каждого символа требуется вешать отдельный эксперт. По ресурсам он нетребователен.

сборка состоит из 4 файлов:
VirtualLimitAndTP.mq4
Сам советник, который занимается исполнением задач.
Вот так простенько и непритязательно он выглядит:


советник virtual limit TP для мт4

Это эксперт в рабочем состоянии.
С помощью управляющего объекта можно удалить задачу.
Задачи сохраняются в файл, отдельный для каждого счета и инструмента, поэтому можно свободно менять ТФ и счета на одном терминале, ничего не должно потеряться.
Но понятно, что задачи будут исполняться только для активного на данный момент счета.

Настройки

extern int MaxSpread -- максимально допустимый спред для инструмента. Из-за того, что учет всех задач идет по биду (т.к. по биду строится график), приходится учитывать спред для некоторых действий. Если спред инструмента будет больше, вместо него будет браться заданный в этой настройке.
extern int Magic -- идентификационный номер всех ордеров, открытых этим экспертом. По сути не нужен, просто на всякий случай про запас.
extern bool ConfirmActions -- если true, будет требовать подтверждения при удалении задачи.
extern bool AlertComplete -- если true, при выполнении задачи будет выдавать звуковой сигнал и делать запись в лог.
extern string AlertSound -- имя файла звука.

Эксперт зациклен. Поэтому чтобы попасть в окно настроек во время работы, вначале придется отключить советники (кнопка на панели)


выключение работы советников в мт4
В тестере эксперт не работает.

Скрипты. 

Именно с помощью них формируются задачи для эксперта.
В принципе, задачи можно формировать и при неработающем эксперте, они потом подхватятся при запуске эксперта. Но тогда они могут затирать друг друга.
Но лучше и безопаснее таки это делать, когда эксперт запущен.
Команды передаются через глобальные переменные. Если хотите удалить задачи, еще не подхваченные экспертом, их можно найти в глобальных переменных (F3 в терминале)
Выглядят они примерно так:


глобальные переменные в мт4


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


работа скрипта virtual open sell для мт4

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


удалить скрипт с графика в мт4

scripts\VirtualOpenBuy.mq4
Служит для формирования задачи на покупку. В свойствах указывается только лот.
Работает аналогично предыдущему скрипту.
Наглядную работу со скриптом можно увидеть в видео-мануале выше.

scripts\VirtualClose.mq4 
Служит для формирования задачи закрытия ордера. Свойств нет.
Сначала выбирается ордер из списка, с помощью управляющей стрелки, затем устанавливается уровень закрытия ордера.
Наглядную работу со скриптом можно увидеть в видео-мануале выше.


Набор не претендует на верх удобства и довольно специфичен. Поэтому замечания и предложения будут кстати.
Почему реализованы только лимитники и тейк-профиты?
Потому что понятно как исполнять только лимитные ордера. Тейк-профиты по сути тоже лимитники.
Со стоповыми ордерами и стоп-лоссами сложнее.
Во-первых редко надо ставить их внутри стоп-левела.
Во-вторых, какая бы ни была реализация, она будет спорной.
скачать

Комментариев нет:

Отправить комментарий