Принцип действия советника довольно прост: возьмем две валютные пары - GBPUSD1 и GBPUSD2. Они сильно кореллируют друг с другом (их колебания схожи). Если мы откроем по GBPUSD1 позицию в покупку, а по GBPUSD2 в продажу, то получим локированную позицию.
"Дословно" мы получим: Buy GBPUSD1 и Sell GBPUSD2. Через некоторый промежуток времени мы закроем обе позиции. Результат нашей операции можно подсчитать по формуле:
Результат = (bid1 - ask1) + (bid2 - ask2) + (bid2 - ask1)
Как можно видеть из формулы, значение первой ее части известно сразу после исполнения ордеров на покупку и продажу, а второй части станет известно лишь при закрытии обеих позиций. Получается, что исходов, при которых значение "Результат" будет выше ноля, довольно много. К примеру: открытие при условии bid1>ask2, а закрытие bid2>ask1.
Практика применения
Данный торговый робот использует следующую схему работы (оно может быть легко изменено пользователем под другие): вначале в режиме реального времени проверяется наличие условия, при котором bid1>ask2 из любым количеством валютных пар. При нахождении данного условия робот самостоятельно открывает необходимые позиции. Данный советник постоянно поддерживает счет в захеджированном состоянии.
При открытии первой позиции советник создает файл ArbitrageStatistic.txt, в который заносятся в порядке уменьшения частоты использования возможности для арбитража.
В тот же файл (при значении Monitoring равного TRUE в настройках советника) записывается каждая возможность для заключения арбитражной сделки с рыночными условиями на тот момент времени.
Торговый робот может торговать только по тем тандемам валютных пар, которые внесены списком в файл файле Trade-Arbitrage.txt (находится в папке experts\files в директории с установленным терминалом).
Записи в файле Trade-Arbitrage.txt оформляются следующим образом:
// Variants for Arbitrage.
// Examples:
// 1 / EURUSD && 1 / (GBPUSD * EURGBP)
// EURUSD * USDJPY && EURGBP * GBPJPY
// GBPUSD && GBPJPY / USDJPY
Торговый робот ведет полный журнал всех своих действий, что позволяет точно контроллировать его работу.
Возможность открытия мультивалютных хеджированных позиций можно при помощи скрипта CheckMyArbitrage, вложенного в архив с советником.
Настройки советника
Currencies - валютные пары, из которых будут формироваться тандемы.
MinPips - количество пунктов, которое воспринимается советником как возможность арбитража.
SlipPage - максимально возможное значение для проскальзывание для запросов по рынку (в пунктах).
Lock - разрешение (TRUE) либо запрет (FALSE) советнику на открытие локирующих позиций.
Lots - величина позиции (в лотах) для открытия при возможности арбитража.
MaxLot - предельный размер позиции (разрешенный у вашего брокера).
MinLot - минимальный размер позиции (минимальный лот у вашего брокера).
Monitoring - ведение журнала всех возможностей для арбитража (TRUE) либо игнорирование тех, по которым не были открыты позиции (FALSE). Ведение журнала требует времени, которое может повлиять на результат арбитражных сделок.
TimeToWrite - временные интервалы (в минутах), по прохождении которых советник будет вносить в файл ArbitrageStatistic.txt данные о проведенных сделках.
Известные проблемы торгового робота
На данный момент разработчикам советника известно о следующих проблемах, способных существенно снизить эффективность работы советника. Учет этих особенностей при выборе брокера может значительно увеличить эффективность работы робота:
Язык позволяет писать собственные программы-эксперты (Expert Advisors), автоматизирующие управление торговыми процессами и идеально подходящие для реализации собственных торговых стратегий. Кроме того, на MQL4 можно создавать собственные технические индикаторы (Custom Indicators), скрипты (Scripts) и библиотеки функций (Libraries).