d9e5a92d

Виктор Вячеславович Фатеев - Автоматизация торговой системы System 32.1.xlsm

В данной статье описан процесс автоматизации торговых систем, автором которых является М.Я. Фитерман, на примере торговой системы "System_32.1.xlsm", описанной в ForexMagazine №456. Под автоматизацией здесь понимается автоматический ввод данных из брокерской платформы и вывод приказов трейдера на открытие /закрытие позиций на платформу. Этот интерфейс между торговой системой и платформой реализуется средствами языка MQL. Сама же технология торговли, как и ранее, автоматически реализуется в файле на Excel.

Раньше в системах типа System было необходимо копировать рыночные цены в exel файл и по вырабатываемым сигналам этого файла совершать сделку вручную в MetaTrader4. Такое взаимодействие не совсем удобно для трейдера, так как эти операции необходимо делать достаточно часто, особенно если выбранные для торговли таймфреймы менее 1 часа. Для автоматического взаимодействия торговой платформы MetaTrader4 и "System_32.1.xlsm", я создал советника "Connector_System_32.1.ex4" на языке MQL4 и добавил макрос в "System_32.1.xlsm". Данная программная добавка сама производит сброс данных цен закрытия в файл System_32.1 .xlsm и по торговым сигналам из данного exel файла платформа MetaTrader4 совершает сделки автоматически без вмешательства человека. Представляется, что данная привязка очень удобна для исследования торговых систем. Процедуру расчета мы видим в exel файле в весьма прозрачном виде, можем тут же произвести желаемые изменения в алгоритме торговли и не тратить время трейдера на ввод данных и совершение сделок. Схема взаимодействия EXEL и MetaTrader4 представлена ниже на рисунке 1.



Рис. 1. Блок-схема взаимодействия файла на Excel и платформы MetaTrader4.



Процесс формирования сделок по данной схеме торговли.

При открытии нового бара в терминале MetaTrader4, советник "Connector_System_32.1 .ex4" сохраняет данные цен закрытия в специальный файл Base.txt. В этом файле данные хранятся в строковом виде: "2012.11.12,13:30,1.2710". Здесь показана 1 строка из базы данных. Разделитель - "запятая", первое данное - дата открытия бара, второе - время открытия бара и третье -цена закрытия бара. Далее файл System_32.1.xlsm с периодичностью 1 минута копирует данные из файла Base.txt в лист "данные". Как только данные скопированы, exel пересчитает все свои таблицы и сохранит результат в файл Signals.txt. В файле Signals.txt данные хранятся в следующем виде: "EURUSD;1;1,9". Здесь разделитель уже ";", первое данное - наименование валютной пары, второе данное - направление торговли (1 - сделка BUY, -1 - сделка SELL) берется из листа "мод EUR" -последнее значение Rw и третье данное - величина лота (в данном примере 1,9) берется из вкладки "итоги". Советник "Connector_System_32.1.ex4" опрашивает каждую минуту файл "Signals.txt" и будет совершать сделки согласно указанием файла "Signals.txt". Например, если в файле "Signals.txt" указана строка "EURUSD;1;1,9" и в терминале нет открытых позиций, то советник откроет позицию "BUY" по валютной паре "EURUSD" объемом в " 1,9" лота. Если в терминале уже открыта позиция SELL либо позиция BUY но величина лота не равна "1,9", то советник "Connector_System_32.1 .ex4" закроет открытую позицию и откроет позицию BUY по валютной паре "EURUSD" объемом в "1,9" лота.

Процесс установки описанной привязки.

Рекомендую установить MetaTrader4 на не системный диск (обычно системный диск С), можно даже на флешку. Затем копируем советник "Connector_System_32.1.ex4" в папку "experts" вашего терминала (куда он установлен на Вашем выскочит меню настройки:



Здесь n - количество тактов данных для сохранения в базу данных. Это значение обязательно должно соответствовать числу тактов данных в "System_32.1.xlsm", на листе "данные" "System_32.1.xlsm". File_Name_Base - название файла, где хранятся данные (менять не надо). File_Name_Signals - название файла, где хранятся сигналы от exel (менять не надо). slippage - проскальзывание в пунктах при открытии и закрытии позиций. Для котировок с 4 знаками после запятой можно оставить как есть, для котировок с 5 знаками после запятой необходимо умножить на 10 (в моем примере поставить 30).

Затем переходим на вкладку "Общие", устанавливаем галочку "разрешить советнику торговать" и нажимаем ОК. Далее открываем exel файл "System_32.1.xlsm", который мы скопировали в папку "files". Переходим на лист "Коннектор", в ячейке B2 прописываем путь к файлу "Base.txt", например у меня "E:\MT4\experts\files\Base.txt", в ячейке B3 пишем путь к файлу "Signals.txt", например у меня "E:\MT4\experts\files\Signals.txt". Нажимаем кнопку старт. После этого должен начаться обмен данными, в ячейке А6 должно высветиться "Обмен данными начался 12:45:00", время будет установлено по последнему получению данных. Дополнительно можно провести проверку на листе "данные": посмотреть самые свежие данные и убедиться, что они соответствуют предыдущей закрытой свечи в MetaTrader4. Нажимаем кнопку " Stop". Далее производим оптимизацию. После того как нашли оптимальные настройки, можно нажимать опять "Start". Теперь система уже настроена должна открыться сделка в терминале. Для постоянного обмена данными и автоматической торговли терминал MetaTrader4 и exel файл должны быть открытыми. В тот момент, когда закрыт "System_32.1.xlsm" или торговый терминал, торговля вестись не будет. При открытии файла "System_32.1.xlsm", необходимо снова нажать кнопку "Start" на листе "Коннектор". При необходимости можно произвести настройку системы (поиск оптимальных настроек). Для этого следует нажать кнопку "Stop" для остановки загрузки данных, произвести настройку, и только потом нажать кнопку "Start". После этих манипуляций вся система должна заработать.

Следует отметить, что данный подход не универсален. А именно, необходимо каждую систему написанную на exel снабжать листом "коннектор" и, если местоположение сигналов сделки и объемов лота изменятся, то соответственно отредактировать макрос. Советник, написанный на MQL4 для одновалютной системы торговли изменять не требуется (можно применять для последующих систем). Для многовалютной системы необходимо писать новый советник.

Все необходимые файлы для автоматической торговли по системам М.Я. Фитермана будут помещаться на своем сайте teoryforex.fateevvv.ru. В последующем я планирую все системы, созданные Фитерманом, снабжать таким коннектором для облегчения торговли трейдерам которые торгуют по его торговым системам.

Все вопросы и пожелания по данной теме можно писать мне на e-mail:

Виктор Вячеславович Фатеев





Содержание раздела