Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 28245
- Рейтинг:
- Опубликован:
- 2009.11.27 08:57
- Обновлен:
- 2016.11.22 07:33
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Теория:
На примере EURUSD. Представьте синтетические пары EURUSDx и EURUSDy. Они ходят рядом друг с другом. Открытие по ним разнонаправлено создаст хеджированную ситуацию.
Открытие: BUY EURUSDx и SELL EURUSDy. Через какое-то время закрытие: SELL EURUSDx и BUY EURUSDy.
Прибыль: Profit = (BIDx - ASKx) + (BIDy - ASKy) = (BIDx - ASKy) + (BIDy - ASKx)
В получившейся крайней записи значение первой скобки известно при открытии (BUY EURUSDx и SELL EURUSDy), второй - при закрытии (SELL EURUSDx и BUY EURUSDy).
Условий, при которых Profit будет положительным немало. Одно из них:
При открытии BIDx > ASKy, при закрытии BIDy > ASKx.
Практика:
Представленный советник Trade-Arbitrage эксплуатирует приведенное выше условие (можно модифицировать под любое другое):
Советник проверяет (в реальном времени) ситуации BIDx > ASKy между ВСЕМИ (тысячи вариантов) возможными синтетическими парами. И открывает между ними соответствующие позиции. Это значит, что советник всегда находится в мультивалютном хэдже.
Создается файл ArbitrageStatistic.txt с отсортированными (по частоте) вариантами арбитража.
Пример файла ArbitrageStatistic.txtТакже дописывается (Monitoring = TRUE) в файл Arbitrage.txt каждая ситуация арбитража с подробностями .
Пример файла Arbitrage.txtТорговля ведется по вариантам пар синтетических торговых инструментов, указанным в файле Trade-Arbitrage.txt (находится в папке experts\files).
Пример файла Trade-Arbitrage.txtСоветник производит достаточные для дальнейшего анализа записи в лог по торговым действиям, их причинам и следствиям.
Иллюстрация работы советника Trade-Arbitrage (снизу) и скриптов NettoTrading (слева) и CheckMyArbitrage (справа)Мультивалютный хэдж имеется возможность проверить зацикленным скриптом CheckMyArbitrage.
Входные данные:
- Currencies - список валют, из которых будут генерироваться все возможные синтетические пары.
- MinPips - минимально учитываемая (как арбитраж) разница в пунктах (старых) между BIDx и ASKy.
- SlipPage - допустимое проскальзывание в пипсах (брокера) для Market-запросов (у различных брокеров проскальзывание реализовано по разному).
- Lock - разрешать (TRUE) локи или нет (FALSE).
- Lots - объем позиции для открытия/закрытия по сгенерированному символу.
- MaxLot - максимально допустимый лот для одной позиции реального (брокер) символа.
- MinLot - минимально допустимый лот для одной позиции реального (брокер) символа.
- Monitoring - производить подробную запись (TRUE) всех случающихся арбитражных ситуаций в файл или нет (FALSE). Запись занимает время, которое критично для арбитража.
- TimeToWrite - Через какое время (в минутах) будут записываться в файл (ArbitrageStatistic.txt) статистические данные об арбитраже.
Советник учитывает (мультивалютный хэдж не нарушается):
- ошибки торговых приказов (Rejects и т.д.).
- частичное исполнение (Partial Fills). Некоторые брокеры поддерживают такой вид исполнения.
- нюанс, связанный с минимально разрешенным лотом брокера (MinLot).
- при Lock = TRUE количество критичных для арбитража торговых приказов минимально. При этом локированные позиции нивелируются.
- запрет локов (Lock = FALSE).
Возможные проблемы:
- Отрицательные проскальзывания и комиссии "съедают" прибыль.
- Длительные исполнения торговых приказов, во время которых цены на другие символы значительно меняются.
- Асинхронная обработка брокером торговых приказов.
- Малое время арбитража.
Возможные улучшения:
- Использование Limit-ордеров.
- Одновременная отправка по различным символам (эмуляция асинхронности) торговых приказов с нескольких терминалов на одном счету.
- Временной учет асинхронности брокера.
- Сбор и использование большей статистической информации для эксплуатации иных от MinPips условий арбитража. Например, BIDx - ASKy > SPREADx + SPREADy.
- Сбор и использование статистической информации о длительности арбитража.
- Приоритет в очереди выставления торговых Market-приказов (например, по символу с наибольшим тиковым объемом или находящимся в текущий момент в локальном ценовом экстремуме).
Особенности советника:
- Мультивалютный, поэтому для тестере стратегий не годится. Может запускаться, как скрипт.
- Совершенно не используется история цен. Теория арбитража использует неэффективность рынка (котирования), поэтому для работы советника не имеет значение природа котировок.
- Советник не "сливает".
![CLOCK MT4](https://c.mql5.com/i/code/indicator.png)
Индикатор показывают прибыль или убыток по валюте, диапазон валюты за последние периоды, и т.д.
![GG-RSI-CCI](https://c.mql5.com/i/code/indicator.png)
Предлагаемый индикатор информирует вас о текущем тренде. Полезен для входа в рынок.
![Простой советник](https://c.mql5.com/i/code/expert.png)
Часто просят написать "простенький советник" вот один из них.
![sumMA](https://c.mql5.com/i/code/indicator.png)
усредненная сумма разнопериодных скользящих средних.