Авг 9

Разработка торгового робота, реализующего стратегию на основе японских свечей

В архиве доступном, для загрузки, находится два исходных кода торговых роботов….

Торговые роботы позволяют круглосуточно вести торговлю на Forex без непосредственного участия трейдера, роль которого сводится к заданию начальных настроек и осуществлению периодического контроля за работой программного обеспечения. Следует отметить, что наибольшие сложности связаны не с разработкой программного обеспечения как такового, с учетом требований и ограничений конкретной торговой платформы, а с разработкой прибыльной торговой системы, создать которую более чем сложно с учетом хаотичной динамики рынка, обусловленной влиянием большого числа разнонаправленных, трудно поддающихся оценке, учету и прогнозированию факторов. «Текущее значение котировок может существенно отличаться от ее рыночной оценки, т.е. от оценки, отражающей рыночные представления о ее стоимости. Это вызвано наличием статистических флуктуаций, обусловленных большим числом полностью или частично неконтролируемых факторов«[1]. На этапе разработки и тестирования торговой системы, алгоритм которой затем реализуется программно в виде торгового робота, необходимо не только определить сигналы открытия ордеров на покупку или продажу, но и определиться с тем, когда буду закрываться ордера при достижении заданного уровня прибыли (Take Profit – TP) или убытка (Stop Loss – SL). С учетом хаотической составляющей рынка очевидно, что часть открытых ордеров будет закрываться с убытком, а итоговая прибыль может быть получена только в том случае если сумма всех закрытых с прибылью ордеров превышает общую сумму убытка (с учетом всех прочих расходов на обеспечение торговли, например, комиссия, спред, и т.д.). Часто отношение интервалов TP к SL задается, как 3 к 1, однако может меняться в достаточно широких пределах в зависимости от особенностей используемой торговой системы, например, на рис. 1 видно, что SL может быть определен, как наибольшее или наименьшее значение предыдущей свечи.


Рисунок 1 – свечные паттерны, определяющие сигналы на покупку или продажу торгового инструмента
Была поставлена задача разработать программу-робота для терминала торговой платформы MetaTrader 4.0, торгующую на основе анализа свечей: o0 –цена открытия текущей (нулевой) свечи, l1 – минимальное значение первой свечи (Low[1]), l2, l3, l4 – 2,3,4-х, соответственно. h1 – максимальное значение первой свечи (High[1]), h2, h3, h4 – 2,3,4-х, соответственно. Цена открытия первой свечи – o1 (Open[1]), o2, o3 – 2,3-х. Цена закрытия первой свечи – c1 (Close[1]), второй и третьей – c2 и c3. Представленные на Рис. 1. сигналы для открытия ордера на продажу или покупку реализованы программно строками кода: сигнал открытия ордера на покупку if ((h4>h3)&&(h3>h2) &&(h2>h1)&&(l4>l3)&&(l3>l2)&&(l2>l1)&&(o1c2)&&(o3>c3)&&(l2 c1)&&(h2>o1)&&(h2>c1)&&flag==0) …. Переменная flag – введена для открытия только одного ордера, второй не будет открыт до момента закрытия первого. Значение параметра TakeProfit – задает уровень закрытия ордера при достижении заданного числа пунктов прибыли, stop_loss_auto (по умолчанию значение true) – уровень закрытия ордера с убытком определяется динамически (в зависимости от типа сигнала, максимум или минимум предыдущей свечи), если для stop_loss_auto задано значение false, то значение уровня закрытия ордера по убытку определяется значением параметра StopLoss в пунктах. Параметр Magic – задает уникальный идентификационный (“магический”) номер для ордеров, открываемых данным торговым роботом. В архиве доступном, для загрузки по ссылке http://mctrewards.ru/files/pattern.zip, находится два исходных кода торговых роботов pattern.mq4 и pattern-invert.mq4 и их скомпилированные (ex4) файлы. Торговый робот pattern-invert.mq4 реализует стратегию в которой представленный на Рис. 1 сигнал на продажу рассматривается, как сигнал на покупку и наоборот. Возможность работать с исходным кодом программ позволяет с относительно небольшими временными затратами вносить изменения в тексты программ, добавляя дополнительные условия проверки или изменяя существующие. Можно добавить дополнительные условия, например, контроль Money Management (Мани Менеджмент) – набор правил и конкретных техник, направленных одновременно на минимизацию рисков и максимизацию прибыли; возможность реализации защиты части полученной прибыли – “подтягивание” StopLoss для перевода открытого ордера в безубыток и т.д. Следует отметить, что программы показывают разный уровень прибыльности в зависимости о того, на каком таймфрейме (М1, М5, М30, Н1, Н4) работают и с каким торговым инструментом, а также в зависимости от того, какие значения stop_loss_auto, TakeProfit и StopLoss используются. Рассмотрение настройки и оптимизации торговых роботов для разных торговых инструментов (AUDJPY, AUDUSD, CHFJPY, EURCAD, EURCHF, EURGBP, EURJPY, EURUSD, GBPCHF, GBPJPY, GBPUSD, NZDJPY, NZDUSD, USDCAD, USDJPY, USDCHF, XAGUSD и XAUUSD), с учетом варьирования значений названных параметров, заслуживает отдельного рассмотрения.

Список использованной литературы:

1. Имитационное моделирование хаотического процесса на основе критерия полезности. Ананченко И.В., Мусаев А.А. В сборнике: Седьмая всероссийская научно-практическая конференция «Имитационное моделирование. Теория и практика» (ИММОД-2015). 2015. С. 142-147.

Поделитесь статьей со своими друзьями
Общайтесь со мной:
comments: Closed

Comments are closed.