仕事が完了した
指定
Пожалуйста, прочитайте внимательно.
Введение
Для сеточной стратегии на разворот от уровней нужен советник, который будет:
- выставлять Sell-Limit выше текущей цены, Buy-limit ниже текущей цены,
- а также помогать трейдеру сопровождать позиции.
Уровни, на которых выставлять limit ордера, определяет индикатор FXSSI Stop Loss Clusters (SLC), работающий на данных из сторонних источников.
Уровни SLC в среднем обновляются раз в 20 минут. Индикатор показывает уровень - советник ставит на него ордер, уровень пропадает - ордер отменяется.
Фиксированные тейк-профиты и стоп-лоссы не нужны.
Для выхода из позиций в советнике должно быть предусмотрено 2 взаимоисключающих режима:
- Manual (по умолчанию). Трейдер вручную выставляет тейк-профиты и стоп-лоссы.
- Automatic. Советник тралит тейк-профиты и стоп-лоссы по скользящей средней. Этот готовый компонент прилагается в файле cm_tral_MA.mq4.
По выходу вроде понятно, дальше - про входы.
Есть 2 сценария - когда позиций нет, и когда есть хотя бы один ордер сработал.
Сценарий 1. Если нет открытых позиций:
Для постановки Sell-Limit нужно выполнение всех 3 условий:
- Если выше есть уровень SLC (может быть или один, или ни одного);
- Если этот уровень SLC выше, чем верхняя граница индикатора Envelopes 1.
- Allow_Sell = true
Аналогично для buy-limit - нужно выполнение всех условий:
- Если ниже есть уровень SLC;
- Если этот уровень SLC ниже, чем нижняя граница индикатора Envelopes 2.
- Allow_Buy = true
Обратите внимание, это два разных Envelopes.
Итак, если нет открытых позиций, то результат работы индикатора может дать 3 варианта:
- выставлено по одному ордеру - выше и ниже;
- выставлен один ордер, если выполняются описанные условия;
- не выставлено ордеров вообще. Или уровней SLC нет, или они внутри границ Envelopes.
Сценарий 2. Если есть открытые позиции.
Допустим, сработал sell-limit, открылась позиция шорт.
В таком случае советник “смотрит выше”, чтобы выставить еще один sell-limit. То есть, реализуется динамическая сетка “на разворот”.
Для нового sell-limit нужно выполнение всех 4 условий:
- Allow_Sell = true;
- выше появился еще один SLC уровень;
- этот новый уровень находится выше, чем ранее открытая позиция на значение, заданное в переменной Step. Это нужно, чтобы сетка не была слишком “сжатой”.
- не было достигнуто максимальное количество ордеров в одну сторону. Его задает параметр Maxorders (по умолчанию = 5).
Аналогично; если есть позиция лонг, то советник выставляет ниже дополнительный ордер buy-limit по тем же 4 условиям, но наоборот, в “зеркальном отражении”.
Таким образом, если есть открытая позиция, то советник усредняет ее дополнительными ордерами с учетом Allow, SLC, Step, Maxorders.
Для понимания - примеры нестрогой торговли на вложенных картинках.
Переменные.
Помимо настроек из cm_tral_MA.mq4, используются следующие переменные:
параметры индикатора Envelopes 1 (верхняя граница);
параметры индикатора Envelopes 2 (нижняя граница);
Step;
Maxorders;
Tune_buy, Tune_sell - эта переменная нужна, чтобы чуть сдвинуть ордер относительно SLC. Например, выше текущей цены появляется SLC на круглом уровне 1.18500. Трейдер хочет, чтобы sell-limit был выставлен ниже на 30 пипсов. Он открывает настройки, указывает Tune_sell = -30, нажимет ОК. Советник опускает sell-limit на 1,18470 на случай “недолета”.
vol1, vol2, vol3, vol4, vol5 - объемы выставляемых ордеров.
Allow_Buy = true/false, Allow_Sell = true/false - позволяет разрешить/запретить одно из направлений.
Итого.
Я постарался написать суть подробно. Если что непонятно - готов дополнительно обсудить.
Хотелось бы получить работающий советник с открытым оформленным кодом. Чтобы рационально использовал ресурсы компьютера.
Насчет индикатора FXSSI Stop Loss Clusters. Он платный. Если понадобится доступ к индикатору - предоставлю, обсудим в личке. Если захотите себе такой, могу помочь.