July 29, 2015

mt4mm - скрипт для MetaTrader 4

Что такое mt4mm?

mt4mm представляет из себя подключаемый модуль (plugin) для известного торгового терминала MetaTrader 4.

Основные функции

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

Автоматический расчет размера лота

Расчет лота производится по выбору пользователя одним из следующих методов:
  • Фиксированный процент - расчет максимально допустимого лота исходя из заданного процента убытка и уровней входа и стопа;
  • Процент на 100 пипсов - данный метод расчета предложен камрадом Kurt'ом на форуме FinList'а и заключается в том, что размер лота рассчитывается таким образом, чтобы 100 пипсов давали прибыль (убыток) равную заданному проценту от депозита. Т.е. вход в 1%, это вход таким лотом, что 1 пипс весит 0,01% от депо. Например, при депо в $10000, вход в 1% - это вход 0,1 лотом, потому как 0,01% от $10000 - это 1 бакс. Соответственно, вход в 2% - это вход таким лотом, что 1 пипс весит 0,02% - т.е., при депо в $10000 это 0,2 лота (пипс весит 2 бакса). Считая таким образом, мы исключаем из внимания плечо брокера, которое у разных пользователей может быть неодинаковым.
Заданный процент убытка рассчитывается по выбору пользователя либо от баланса, либо от средств (эквити).
Размер лота рассчитывается исходя из минимального размера лота для данного торгового сервера. Количество знаков после запятой в рассчитываемом лоте не должно превышать количества знаков после запятой в минимальном лоте. При превышении количества знаков после запятой в рассчитанном размере лота остальные незначимые разряды обрезаются (т.е. размер лота не округляется до заданного количества знаков). Например: минимальный размер лота - 0.01, вычисленное значение - 0.257634, окончательный размер лота - 0.25.

Интерфейс

  1. Кнопка открытия окна настроек. На данный момент там всего один флажок, который указывает модулю, выдавать предупреждение при открытии ордера или нет.
  2. Кнопка выдачи сообщения "О программе".
  3. Инструмент, по которому производится расчет.
  4. Стоимость тика на 1 лот. Информационное поле, показывающее стоимость тика в расчете на 1 лот.
  5. Выбор валюты котирования инструмента. Выпадающий список, позволяющий выбрать валюту, в которой котируется инструмент. Актуально для фьючерсов и CFD. Позволяет правильно расчитать размер потерь и, соответственно, размер лота. По умолчанию - USD.
  6. Переключатель метода расчета.
  7. Поле ввода процента убытка. При его изменении производится перерасчет полей Максимальный стоп-лосс (12), Лот (13), Расчетный размер лота (14), Требуемая маржа (16), Возможный убыток (19), Возможный убыток (%) (20), Возможная прибыль (24) и Возможная прибыль (%) (25).
  8. Переключатель типа депозита, от которого производится расчет. Либо баланс, либо средства (эквити), либо сумма, введенная вручную.
  9. Выпадающий список выбора типа открываемого ордера. Если выбран ордер открытия по рынку (BUY BY MARKET, SELL BY MARKET), то редактирование поля Цена открытия (10) запрещено.
  10. Поле ввода цены открытия ордера. Разрешено для редактирования только в том случае, если открывается отложенный ордер (BUY LIMIT, SELL LIMIT, BUY STOP, SELL STOP). При его изменении пересчитываются поля Стоп-лосс (18) и Тейк-профит (23).
  11. Минимальный размер лота Информационное поле, показывающее минимальный размер лота, разрешенный на данном торговом сервере.
  12. Максимальный стоп-лосс. Информационное поле, которое показывает максимально возможный стоп-лосс (в пунктах) при открытии ордера с минимальным размером лота, разрешенном на данном торговом сервере.
  13. Размер лота. При его изменении производится перерасчет полей Процент убытка (7), Максимальный стоп-лосс (12), Расчетный размер лота (14), Требуемая маржа (16), Возможный убыток (19), Возможный убыток (%) (20), Возможная прибыль (24) и Возможная прибыль (%) (25).
  14. Расчетный размер лота. Информационное поле, которое показывает расчитанный модулем размер лота с точностью - 6 знаков после запятой.
  15. Количество открываемых модулем ордеров. При изменении значения этого поля пересчитывается размер лота. В упрощенном виде Расчетный размер лота (14) делится на Количество ордеров (15).
  16. Требуемая маржа. Информационное поле, которое показывает размер маржи, требуемый для открытия ордера с данным размером лота. В результате того, что динамическое обновление требуемой маржи по данному инструменту (так, как это сделано с котировками) не реализовано, то при реальном открытии ордера размер требуемой маржи может несколько отличаться от указанного значения.
  17. Стоп-лосс (в пунктах). При его изменении производится перерасчет полей Стоп-лосс (18), Лот (13), Расчетный размер лота (14), Требуемая маржа (16), Возможный убыток (19), Возможный убыток (%) (20), Возможная прибыль (24) и Возможная прибыль (%) (25).
  18. Уровень стоп-лосса. При его изменении производится перерасчет полей Стоп-лосс (в пунктах) (17), Лот (13), Расчетный размер лота (14), Требуемая маржа (16), Возможный убыток (19), Возможный убыток (%) (20), Возможная прибыль (24) и Возможная прибыль (%) (25).
  19. Возможный убыток. Информационное поле, показывающее возможный убыток в валюте депозита.
  20. Возможный убыток (%). Информационное поле, показывающее возможный убыток в процентах от выбранного типа депозита (баланс, средства или введенный вручную).
  21. Флажок установки стоп-лосса. Если флажок установлен, то ордер будет открываться с установленным значением стоп-лосса.
  22. Тейк-профит (в пунктах). При его изменении производится перерасчет полей Тейк-профит (23), Возможная прибыль (24) и Возможная прибыль (%) (25).
  23. Уровень тейк-профита. При его изменении производится перерасчет полей Тейк-профит (в пунктах) (22), Возможная прибыль (24) и Возможная прибыль (%) (25).
  24. Возможная прибыль. Информационное поле, показывающее возможную прибыль в валюте депозита.
  25. Возможная прибыль (%). Информационное поле, показывающее возможную прибыль в процентах от выбранного типа депозита (баланс, средства или введенный вручную).
  26. Флажок установки тейк-профита. Если флажок установлен, то ордер будет открываться с установленным значением тейк-профита.
  27. Кнопка завершения работы модуля с открытием ордера. При нажатии на эту кнопку происходит закрытие окна модуля, открытие ордера (ордеров) и завершение работы модуля. Если же Вы решите просто закрыть модуль не открывая ордера, то нажмите на стандартный крестик в правом верхнем углу окна. Сохранение настроек модуля произойдет при любом методе закрытия окна.

Порядок установки

  1. Файл "mt4mm.dll" положить в каталог "MetaTrader 4\experts\libraries\".
  2. Файл "mt4mm.mq4" положить в каталог "MetaTrader 4\experts\scripts\".
  3. Перезапустить Metatrader, чтобы скомпилировать скрипт.
  4. Если есть желание, то назначить на скрипт горячую клавишу. Для этого в окне "Навигатор" кликнуть правой клавишей мыши на скрипте "mt4mm". Далее выбрать пункт "Установить горячую клавишу".
  5. В Метатрейдере произвести следующие настройки (пункт меню "Сервис" -> "Настройки"):
          закладка "Сервер"
  • Установить галочку "Разрешить советнику торговать". Если этого не сделать, то модуль не сможет открыть ордер.
  • При необходимости снять галочку "Ручное подтверждение". Если этого не сделать, то каждое действие модуля по выставлению и модификации ордеров необходимо будет подтверждать вручную.
  • Установить галочку "Разрешить DDE сервер". Если этого не сделать, то котировки в окне модуля обновляться не будут. 
          закладка "Советники"
  • Установить галочку "Разрешить импорт DLL". Без этого Вы вообще не сможете запустить модуль.
  • Снять галочку "Подтверждать вызов функций DLL" если не хотите каждый раз при запуске модуля отвечать на один и тот же вопрос о вызове функции.
Модуль готов к работе. Для запуска модуля необходимо либо выбрать мышью нужный график и нажать горячую клавишу, либо перетащить скрипт из окна "Навигатор" на нужный график.
Если модуль не запускается, выдавая в окне "Терминал" на закладке "Эксперты" сообщение "cannot load library 'mt4mm.dll' (error 126)", то скачайте и поместите в каталог "Windows\System32" DLL-ку msvcr71.dll.

Использование

Расчет размера лота и открытие ордера

Итак! Как уже было сказано, для запуска модуля необходимо либо перетащить скрипт мышью из окна "Навигатор" на нужный график, либо выбрать мышью нужный график и нажать горячую клавишу (если Вы ее назначили). Вместо нажатия горячей клавиши можно дважды кликнуть мышью по скрипту "mt4mm" в окне "Навигатор". После запуска скрипта на экране должно появиться главное окно модуля, которое описано в разделе Интерфейс.
Далее все просто! Вам необходимо:
  • выбрать валюту котирования инструмента (в том случае, если она отличается от USD) с помощью выпадающего списка (5) ;
  • указать модулю, какой метод расчета размера лота использовать, с помощью переключателя (6) ;
  • ввести в окне (7) значение процента от депозита, которым Вы готовы пожертвовать в случае неудачного входа;
  • указать модулю, от чего ему производить расчет (от баланса, от средств или от суммы, введенной вручную) с помощью переключателя (8) ;
  • в выпадающем списке (9) выбрать тип открываемого ордера;
  • если тип ордера, выбранный Вами, является отложенным, то ввести в поле (10) цену открытия ордера;
  • далее необходимо либо выставить значение стоп-лосса (в пунктах) в поле (17), либо ввести цену уровня стоп-лосса в поле (18) ;
  • при необходимости выставления стоп-лосса нужно отметить флажок (21) ;
  • если это необходимо, то в поле (15) указать количество одновременно открываемых с данными параметрами ордеров;
  • при необходимости расчета и выставления тейк-профита нужно либо выставить значение тейк-профита (в пунктах) в поле (22), либо ввести цену уровня тейк-профита в поле (23), а затем отметить флажок (26) ;
  • проверить все параметры и нажать на кнопку (27).
С этого момента главное окно модуля закрывается, и управление передается скрипту, который по заданным параметрам и открывает для Вас ордер (или несколько ордеров).


Автоматическое обновление котировок

В модуле реализована возможность автоматического обновления котировок по выбранному инструменту.
Обновление котировок реализовано в так называемом "горячем режиме", т.е. котировка инструмента в модуле обновляется сразу же, как только она поступит в торговый терминал.
При получении модулем новой котировки происходит следующее:
  • если выбран тип ордера по рынку (BUY BY MARKET или SELL BY MARKET), то значение поля Цена открытия (10) сразу же изменяется в соответствии с поступившим Бидом или Аском. Значение полей Стоп-лосс (в пунктах) (17) и Тейк-профит (в пунктах) (22) остается неизменным, а значение полей Стоп-лосс (18) и Тейк-профит (23) пересчитывается. ВНИМАНИЕ! Если курсор при поступлении новой котировки находится в поле Стоп-лосс (18), то оно остается неизменным, а поле Стоп-лосс (в пунктах) (17) будет пересчитано. То же самое верно для полей Тейк-профит (23) и Тейк-профит (в пунктах) (22).
  • если выбран отложенный ордер, то в поле Цена открытия (10) будет подставлена новая котировка только в том случае, когда значение этого поля не соответствует накладываемым на цену открытия ограничениям для данного типа ордера. Например. Вы выбрали тип ордера "BUY LIMIT". Следовательно, цена открытия ордера должна быть меньше, чем текущий Аск минус минимально допустимый уровень стоп-лосса/тейк-профита. Допустим, что у Вашего брокера минимально допустимый уровень стоп-лосса/тейк-профита в пунктах равен 15. Текущий Аск по инструменту EURUSD = 1.5775, а текущее значение поля Цена открытия (10) равно 1.5760. При поступлении нового Аска равного 1.5774 в поле "Цена открытия" будет подставлено новое значение, равное 1.5774 - 15 * 10 -4 = 1.5759

Сохранение настроек

С целью удобства использования в модуле была реализована возможность сохранения основных параметров между сессиями. На данный момент сохраняются следующие параметры:
  • метод расчета размера лота (6) ;
  • процент убытка (7) ;
  • тип депозита (баланс, средства или введенный вручную), а также размер депозита, введенный вручную (8) ;
  • тип ордера (9) ;
  • значение стоп-лосса (в пунктах) (17) ;
  • значение тейк-профита (в пунктах) (22) ;
  • флажок "Устанавливать стоп-лосс" (21) ;
  • флажок "Устанавливать тейк-профит" (26) ;
  • флажок "Выдавать предупреждение при установке ордера", который можно найти в настройках модуля, нажав на кнопку (1)
Настройки сохраняются в файле "MetaTrader 4\experts\libraries\mt4mm.cfg", и, при необходимости, могут быть перенесены на другой компьютер.

Условия распространения mt4mm?

Программа распространяется по принципу Donationware. Т.е. Вы можете скачивать и использовать полнофункциональную версию программы абсолютно бесплатно и лишь в том случае, если программа Вам понравилась и у Вас возникла острая потребность выразить автору программы благодарность именно в денежном эквиваленте, то Вы можете (НО НЕ ОБЯЗАНЫ!) это сделать, перечислив любую, разумную на Ваш взгляд, сумму через систему WebMoney на следующие кошельки:
WMZ - Z635752986470
WME - E931062691516
WMR - R031548901666

Торговая платформа: MetaTrader 4
Категория: Скрипты
Автор: Дмитрий (4xTrim)

No comments: