Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 1566
- Рейтинг:
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Прилагаемые включаемые файлы предназначены для экспорта ордеров и сделок из одного советника и импорта их в другой (копирование сделок), который может быть запущен как в том же самом терминале, так и в другом терминале на том же самом компьютере. Также возможен обмен сделками между разными символами, например, копирование сделок инструмента спотового рынка на соответствующий фьючерс или любой другой коррелирующий с ним инструмент.
Экспорт
Необходимо подключить файл GRat_OrderExport.mqh к своему экспортирующему советнику следующей командой:
#include <GRat_OrderExport.mqh> Сделать это надо в области входных параметров именно в том месте, где должны быть параметры экспорта:
- Common - true - нужен экспорт в другой терминал на этом же компьютере; false - нужен экспорт в этот же терминал.
- KeepSeconds - сколько секунд экспортируемые сделки доступны для импорта. 0 - неограниченно.
Далее в коде советника везде, где выполняются сделки функцией OrderSend() (или методами класса CTrade), необходимо добавить вызов функции ExportOrder(), например:
MqlTradeRequest request = {}; // Рыночная продажа request.action = TRADE_ACTION_DEAL; request.symbol = Symbol(); request.volume = 0.2; request.type = ORDER_TYPE_SELL; request.price = SymbolInfoDouble(Symbol(), SYMBOL_BID); request.magic = 20000; OrderExport(request);
Структуру MqlTradeRequest можно использовать ту же самую, что и для функции OrderSend(), но необходимо помимо обязательных заполнить дополнительные поля для действий
TRADE_ACTION_DEAL(закрытие позиции), TRADE_ACTION_SLTP, TRADE_ACTION_REMOVE и TRADE_ACTION_MODIFY:
- type (для модификации позиций должно быть ORDER_TYPE_BUY - для длинной позиции и ORDER_TYPE_SELL - для короткой)
- volume
- price (только для отложенных ордеров)
- stoplimit (только для ордеров Stop Limit)
- sl
- tp
- position (положительное значение, только для закрытия позиций)
Пример реализации экспортирующего советника - GRat_OrderExport.
Импорт
Необходимо подключить файл GRat_OrderImport.mqh к своему импортирующему советнику следующей командой:
#include <GRat_OrderImport.mqh>
Сделать это надо в области входных параметров именно в том месте, где должны быть параметры импорта:
- Common - true - нужен импорт из другого терминал на этом же компьютере; false - нужен импорт из этого же терминала.
- VolumeFactor - множитель для объема. Можно использовать для изменения риска торговли, либо в случае, когда лоты инструментов отличаются, например при копировании сделок со спота на фьючерс и наоборот.
- PriceFactor - множитель для цены. Можно использовать в случае, когда цены коррелирующих инструментов отличаются, например при копировании сделок со спота на фьючерс и наоборот.
- DeleteAfter - true - удалить все сделки из файла обмена сразу после импорта. Для случая, когда сделки импортируются только в один советник. Если в несколько - задать false.
Далее для импорта сделок надо вызвать функцию ImportOrder(). Пример вызова:
MqlTradeRequest aReq[]; OrderImport(aReq, Magic, Symbol());
В результате в массив aReq считаются все последние необработанные сделки с магическим числом Magic и символом текущего графика. В последнем параметре задайте другой символ, если он отличается в импортируемых сделках.
Далее в цикле необходимо выполнить считанные сделки по нужному символу, при необходимости корректируя параметры ордера:
for (int i = 0; i < ArraySize(aReq); i++) { aReq[i].symbol = _Symbol; aReq[i].price = NormalizeDouble(aReq[i].price, _Digits); aReq[i].stoplimit = NormalizeDouble(aReq[i].stoplimit, _Digits); aReq[i].sl = NormalizeDouble(aReq[i].sl, _Digits); aReq[i].tp = NormalizeDouble(aReq[i].tp, _Digits); if (aReq[i].action == TRADE_ACTION_DEAL) { ... } ... }
Прилагается пример реализации импортирующего советника, который открывает требуемые сделки на символе своего графика.
Simple_High_Low_Day_Pending_Order
Простейший советник, который устанавливает отложенные ордера на некотором расстоянии Indent от экстремумов предыдущего дня.
The Roofing Filter
"The Roofing Filter Indicator" был создан John Ehlers и опубликован в "Cycle Analytics for Traders" pg. 80 - 82
Breakeven line
Индикатор показывает уровень безубытка открытых позиций с учётом свопа и комиссии за сделки.
Color Levels
Color Levels - удобный инструмент для тех, кто применяет в торговле технический анализ и использует такие инструменты, как Трендовая линия и Прямоугольник.