Установка
Файлы необходимо сохранить: | |
trade_lib&info_lib.mqh | — в директорию «…\MetaTrader 4\experts\include\« |
InternalBarEnter.mq4 | — в директорию «…\MetaTrader 4\experts\« |
Алгоритм работы
1. Если есть внешний бар:
-
- после формирования внешнего бара еще не было открытых позиций;
- нет установленного BuyStop ордера;
- нет позиции на покупку, открытой до формирования текущего внешнего бара;
- ордер возможно установить строго на рассчитанный уровень.
-
- после формирования внешнего бара еще не было открытых позиций;
- нет установленного SellStop ордера;
- нет позиции на продажу, открытой до формирования текущего внешнего бара;
- ордер возможно установить строго на рассчитанный уровень.
-
- для Buy: если СЛ позиции находится ниже противоположного сигнального уровня,
- для Sell: если СЛ позиции находится выше противоположного сигнального уровня,
-
- удаляем все остаточные отложенные стоп-ордера;
- для позиции определяется величина Paritet: расстояние от цены открытия позиции до изначально установленного СЛ;
- если уровень паритета еще не достигнут:
- если текущая цена позволяет, СЛ переносится на этот уровень;
- если перенести СЛ на уровень паритета невозможно:
- для Buy:
- СЛ переносится на уровень Low[2] — Luft — Spread при этом:
- СЛ переносится только вверх;
- перенос возможен только, если СЛ будет расположен в зоне прибыли (безубытка);
- если перенести СЛ строго на заданный уровень невозможно, используем ближайший допустимый;
- СЛ переносится на уровень Low[2] — Luft — Spread при этом:
- для Sell:
- СЛ переносится на уровень High[2] + Luft + Spread*2.0 при этом:
- СЛ переносится только вниз;
- перенос возможен только, если СЛ будет расположен в зоне прибыли (безубытка);
- если перенести СЛ строго на заданный уровень невозможно, используем ближайший допустимый;
- СЛ переносится на уровень High[2] + Luft + Spread*2.0 при этом:
- для Buy:
- если уровень паритета уже достигнут:
- для Buy:
- СЛ переносится на уровень High[2] + Luft + Spread*2.0 при этом:
- СЛ переносится только вверх;
- если перенести СЛ строго на заданный уровень невозможно, используем ближайший допустимый;
- СЛ переносится на уровень High[2] + Luft + Spread*2.0 при этом:
- для Sell:
- СЛ переносится на уровень Low[2] — Luft — Spread при этом:
- СЛ переносится только вниз;
- если перенести СЛ строго на заданный уровень невозможно, используем ближайший допустимый.
- СЛ переносится на уровень Low[2] — Luft — Spread при этом:
- для Buy:
2. Если цена достигает сигнального уровня:
2.1. Если есть противоположная позиция советника, открытая до формирования текущего внешнего бара, она закрывается. (Если не удалось вовремя подтащить СЛ).
3. Параметры позиций:
3.1. Лот задается переменной Lot (0.1) при этом:
-
- лот не может быть больше максимально допустимого лота;
- лот не может быть меньше минимального допустимого лота;
- для открытия указанным лотом на счету должно быть достаточно средств.
-
- для Sell & SellStop: High внешнего бара + Step (1) пунктов;
- для Buy & BuyStop: Low внешнего бара — Step (1) пунктов.
-
- работает только на указанных счетах;
- время работы может быть ограничено.
4.3. Если СЛ или ТП открытой позиции были изменены из вне, советник переходит в пассивный режим:
-
- удаляет все отложенные ордера (для избежания лишних входов);
- перестает сопровождать открытую позицию;
- не устанавливает новых ордеров;
- не открывает новых позиций.
4.4. В обычный режим работы советник переходит после того, как остаточная позиция закрывается.
Внешние переменные
Параметры советника | |
UseLang | Язык сообщений в журнале эксперта. 0 — Русский, 1 — English. |
Expert_Id | Уникальный идентификатор эксперта. Если на 2-х графиках с одинаковым символом должно работать 2 эксперта, надо установить им разные Expert_Id. Новый Expert_Id также необходимо использовать в том случае, когда советник должен игнорировать предыдущую историю сделок. |
ScanDepth | Индекс бара в истории до которого проходит поиск внешнего бара при первом запуске советника. 1 — проверяется только последний сформированный бар. |
Step | Расстояние в пунктах от High/Low внешнего бара до уровней входа. |
Lot | Размер открываемой позиции. |
TakeProfit | Значение ТП в пунктах. 0 — отключить ТП. |
Luft | Расстояние в пунктах от High[2]/Low[2] до уровня СЛ позиции. |
Общие параметры | |
Slippage | Максимальное отклонение от запрошеной цены при открытии и закрытии позиции. |
PauseBeforeTrade | Пауза между торговыми операциями в секундах. Если последняя торговая операция прошла меньше, чем PauseBeforeTrade секунд назад, эксперт будет ждать. |
MaxWaitingTime | Максимальное время ожидания в секундах. Эксперт будет ждать завершения операции (например, освобождения торгового потока, паузы между торговыми операциями и т.д.) максимум MaxWaitingTime секунд. |
IgnorIsConnected | true — разрешить проверку наличия соединения с сервером (IsConnected) перед торговой операцией , false — запретить. |
OrderBuyColor | Цвет стрелочки, создаваемой при установке, модификации, закрытии или удалении ордеров на покупку (Buy, BuyStop и BuyLimit). |
OrderSellColor | Цвет стрелочки, создаваемой при установке, модификации, закрытии или удалении ордеров на продажу (Sell, SellStop и SellLimit). |
Allow_Info | true — разрешить вывод информации на график, false — запретить. |
Allow_LogFile | true — разрешить запись информации в личный лог-файл эксперта, false — запретить. Файлы создаются в директории «…\MetaTrader 4\experts\files\_ExpertLogs\Имя эксперта(Символ, Период )\» и называются «год.месяц.день.txt». |
Allow_TradeLogFile | true — разрешить запись информации в лог-файл торговых операций, false — запретить. Файлы создаются в директории «…\MetaTrader 4\experts\files\_TradeLog\» и называются «год.месяц.день.csv». |
Allow_ErrorMail | true — разрешить отправку короткого сообщения об ошибке на электронную почту, false — запретить. |
Allow_ErrorLogFile | true — разрешить запись подробного отчёта об ошибке в текстовый файл, false — запретить. Файлы создаются в директории «…\MetaTrader 4\experts\files\_ErrorLogs\Имя эксперта( Символ, Период )\» и называются «год.месяц.день.txt». |
EnglishInfo | true — выводить всю информацию на английском языке, false — на русском. |
Font_Size_Variant | Вариант размера шрифта для вывода информации на экран (от 1 до 10). При использовании разрешения экрана 1280*960 рекомендуется использовать Font_Size_Variant = 5. |
Standart_Color | Цвет нейтральной (обычной, не критической) информации. |
Warning_Color | Цвет информации об ошибках. |
Price_Up_Color | Цвет, ассоциирующийся с восходящим трендом и с позициями на покупку. |
Price_Down_Color | Цвет, ассоциирующийся с нисходящим трендом и с позициями на продажу. |
Важно:
1. Поиск внешних баров при первом запуске:
Переменная ScanDepth отвечает за то, как будет проводится поиск внешнего бара при первом запуске советника. Если необходимо, чтобы советник просмотрел историю при первом запуске, укажите в переменной количество баров, на которое необходимо углубиться.
2. Пересечение сигнальных уровней при открытой позиции:
Если новый сигнальный уровень пересекается ценой в то время, когда со направленная с ним позиция все еще открыта, считается, что этот уровень уже отработал и после закрытия позиции входа по нему не будет. Это сделано для того, чтобы избежать открытий с задержкой.
3. Советник умеет находить свои предыдущие позиции в истории, поэтому, если требуется начать анализ «с нуля», не забывайте указывать советнику новый Expert_Id.