Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
GRat Order Exchange - библиотека для MetaTrader 5
- Просмотров:
- 1327
- Рейтинг:
- Опубликован:
- 2022.11.30 17:37
- Обновлен:
- 2024.12.05 05:05
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Прилагаемые включаемые файлы предназначены для экспорта ордеров и сделок из одного советника и импорта их в другой (копирование сделок), который может быть запущен как в том же самом терминале, так и в другом терминале на том же самом компьютере. Также возможен обмен сделками между разными символами, например, копирование сделок инструмента спотового рынка на соответствующий фьючерс или любой другой коррелирующий с ним инструмент.
Экспорт
Необходимо подключить файл 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) { ... } ... }
Прилагается пример реализации импортирующего советника, который открывает требуемые сделки на символе своего графика.
Простейший советник, который устанавливает отложенные ордера на некотором расстоянии Indent от экстремумов предыдущего дня.
The Roofing Filter"The Roofing Filter Indicator" был создан John Ehlers и опубликован в "Cycle Analytics for Traders" pg. 80 - 82
Индикатор показывает уровень безубытка открытых позиций с учётом свопа и комиссии за сделки.
Color LevelsColor Levels - удобный инструмент для тех, кто применяет в торговле технический анализ и использует такие инструменты, как Трендовая линия и Прямоугольник.