Прилагаемые включаемые файлы предназначены для экспорта ордеров и сделок из одного советника и импорта их в другой (копирование сделок), который может быть запущен как в том же самом терминале, так и в другом терминале на том же самом компьютере. Также возможен обмен сделками между разными символами, например, копирование сделок инструмента спотового рынка на соответствующий фьючерс или любой другой коррелирующий с ним инструмент.
Необходимо подключить файл GRat_OrderExport.mqh к своему экспортирующему советнику следующей командой:
#include <GRat_OrderExport.mqh> Сделать это надо в области входных параметров именно в том месте, где должны быть параметры экспорта:
Далее в коде советника везде, где выполняются сделки функцией 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:
Пример реализации экспортирующего советника - GRat_OrderExport.
Необходимо подключить файл GRat_OrderImport.mqh к своему импортирующему советнику следующей командой:
#include <GRat_OrderImport.mqh>
Сделать это надо в области входных параметров именно в том месте, где должны быть параметры импорта:
Далее для импорта сделок надо вызвать функцию 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 - удобный инструмент для тех, кто применяет в торговле технический анализ и использует такие инструменты, как Трендовая линия и Прямоугольник.