Помощник по графическим паттернам

Введение

Помощник по графическим паттернам (Chart Pattern Helper) — не автоматический торговый советник. В нем не реализована никакая торговая стратегия. Его единственное предназначение — исполнять сделки с помощью отложенных ордеров, основанных на некоторых объектах графика: трендовые линии, горизонтальные линии и равноудаленные каналы. В дополнение обычному исполнению сделок на прорывах, данный экспертный советник может совершать сделки на откатах, если вы по какой-то причине пропустили точку прорыва.

Основное достоинство Помощника по графическим паттернам — его способность устанавливать и настраивать отложенные ордера в соответствии с рядом объектов, помещенных на Форекс-график, включая объекты с наклоном. Это позволяет упростить торговлю на таких популярных фигурах как треугольники (восходящие, нисходящие и симметричные), каналы, флаги, вымпелы, прямоугольники, "Голова-плечи", "Двойное дно/вершина" и т.д.

Прорыв определяется как простое касание. Экспертный советник не будет ждать, пока цена закроется выше или ниже заданное линии. Он будет размещать отложенные ордера, которые будут исполнены, как только цена коснется заданного уровня.

У этого экспертного советника есть ряд входных параметров для регулировки его работы, но он может начать функционировать сразу, как только вы добавите его на график и разместите правильно названные графические объекты. Эти объекты можно будет затем свободно перемещать. ЭС продолжит определять их местоположение и поправлять параметры ордеров соответственно. По умолчанию, данный советник сообщает о своем текущем статусе с помощью комментария на графике.

Так как все объекты рисуются на цене спроса (Bid), то, когда нужно использовать цену предложения (Ask), советник прибавляет текущее значение спреда к уровням входа, стоп-лосса и тейк-профита. Такое поведение можно отключить с помощью входных параметров, уменьшив тем самым поток ордеров на изменение, отправляемых на торговый сервер.

Помощник по графическим паттернам способен рассчитывать размер позиции, основываясь на заданных параметрах, уровне стоп-лосса и балансе/средствах счета — точно так же как Калькулятор размера позиции для МетаТрейдера. Вы можете отключить этот модуль и задать фиксированный объем сделки.

Операционный процесс

Этот экспертный советник проходит следующие шаги после инициализации:

  1. Обнаружить объекты в соответствии с названиями, заданными во входных параметрах.
  2. Уровень входа для ордера на покупку устанавливается на объект входа + спред (чтобы получилась цена предложения).
  3. Уровень входа для ордера на продажу устанавливается на объект входа (цена спроса).
  4. Уровень стоп-лосса для ордера на покупку устанавливается на минимум последнего бара, большая часть которого находится ниже объекта границы.
  5. Уровень стоп-лосса для ордера на продажу устанавливается на максимум последнего бара, большая часть которого находится выше объекта границы; затем к нему прибавляется спред.
  6. Уровень тейк-профита для ордера на покупку устанавливается на объект ТП (цена спроса).
  7. Уровень тейк-профита для ордера на продажу устанавливается на объект ТП + спред (чтобы получилась цена предложения).
  8. Рассчитанные значения постоянно отображаются в комментарии к графику, если входной параметр Silent не установлен в true.
  9. Отложенные ордера размещаются в соответствии с этими рассчитанными значениями. Если отсутствует объект входа для покупки или продажи, размещается только один ордер. Ордера удаляются автоматически по истечению срока действия, когда закрывается текущий бар. В МТ4 минимальный срок годности — 11 минут; в МТ5 — 2 минуты.
  10. Если текущая цена ниже уровня входа для покупки и выше уровня входа для продажи, используются отложенные стоп-ордера. Если текущая цена ниже уровня входа для покупки или выше уровня входа для продажи, используется только один отложенный лимит-ордер.
  11. Отслеживать текущие значения объектов и подстраивать уровни входа, стоп-лосса и тейк-профита ордеров соответственно.
  12. Если используется расчет размера позиции, когда нужно, обновляется объем ордера. В этом случае ордер со старым объемом удаляется и создается новый ордер с новым объемом. Внимание: это может вызвать значительный поток отложенных ордеров, что может быть против правил вашего брокера. Чтобы предотвратить такое поведение, вы можете задать входной параметр UpdatePendingVolume равным false.
  13. Ордера с истекшим сроком действия воссоздаются с новым объемом (если необходимо) и обновленными уровнями входа/СЛ/ТП.
  14. Если один из ордеров срабатывает, другой (противоположный) удаляется (если только входной параметр OneCancelsOther не равен false). Все объекты переименовываются с помощью добавления к исходному названию «волшебного» номера экспертного советника. Таким образом, предотвращается открытие новых отложенных ордеров.
  15. Если PostEntrySLAdjustment установлен равным true, попытаться обновить стоп-лосс, когда откроется следующая свеча после прорыва.
  16. Продолжать обновлять уровень тейк-профита позиции в соответствии с объектом ТП.
  17. Прекратить активность по закрытии позиции.
  18. Перейти к первому шагу, как только контрольные объекты будут переименованы обратно в исходные названия.

Входные параметры

Объекты

  • UpperBorderLine (по умолчанию = "UpperBorder") — название объекта (горизонтальной или трендовой линии), используемой для определения верхней границы паттерна. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • UpperEntryLine (по умолчанию = "UpperEntry") — название объекта (горизонтальной или трендовой линии), используемой для определения уровня входа для ордера на покупку. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • UpperTPLine (по умолчанию = "UpperTP") — название объекта (горизонтальной или трендовой линии), используемой для определения уровня тейк-профита ордера на покупку. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • LowerBorderLine (по умолчанию = "LowerBorder") — название объекта (горизонтальной или трендовой линии), используемой для определения нижней границы паттерна. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • LowerEntryLine (по умолчанию = "LowerEntry") — название объекта (горизонтальной или трендовой линии), используемой для определения уровня входа для ордера на продажу. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • LowerTPLine (по умолчанию = "LowerTP") — название объекта (горизонтальной или трендовой линии), используемой для определения уровня тейк-профита ордера на продажу. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • BorderChannel (по умолчанию = "Border") — название объекта «Равноудаленный канал», используемого для определения верхней и нижней границы паттерна. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • EntryChannel (по умолчанию = "Entry") — название объекта «Равноудаленный канал», используемого для определения уровней входа для ордеров покупки и продажи. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.
  • TPChannel (по умолчанию = "TP") — название объекта «Равноудаленный канал», используемого для определения уровней тейк-профита для ордеров покупки и продажи. Вы можете или назвать объект в соответствии со значением этого параметра, или изменить значение параметра так, чтобы оно подходило под название объекта, который вы использовали на графике.

Управление ордерами

  • OneCancelsOther (по умолчанию = true) — если true, то срабатывание одного отложенного ордера будет означать закрытие противоположного ордера. Если false, то противоположный ордер останется нетронутым и может сработать после того, как первая позиция закроется.
  • UseSpreadAdjustment (по умолчанию = true) — если true, то спред будет добавлен к уровню входа покупки и к уровням стоп-лосса/тейк-профита продажи. Это позволит компенсировать разницу, когда используется цена предложения (Ask), в то время, как все графические объекты отрисованы на уровне спроса (Bid). Установив false, вы, тем самым, уменьшите количество запросов на изменение ордера, отправляемых на торговый сервер брокера.
  • UseExpiration (по умолчанию = true) — если true, то отложенные ордера будут закрываться по истечению срока действия по закрытии текущего бара или через 11 минут (МТ4), или 2 минуты (МТ5) после создания — что дальше. Если ваш брокер не поддерживает срок действия у ордеров, то надо будет установить этот параметр равным false.
  • DisableBuyOrders (по умолчанию = false) — если true, то новые ордера на покупку не будут создаваться, а существующие бычьи ордера и позиции будут игнорироваться.
  • DisableSellOrders (по умолчанию = false) — если true, то новые ордера на продажу не будут создаваться, а существующие медвежьи ордера и позиции будут игнорироваться.
  • PostEntrySLAdjustment (по умолчанию = false) — если true, то советник попробует исправить стоп-лосс при появлении новой свечи после прорывной. Он проверит, подходит ли до сих пор максимальный/минимальный уровень прорывной свечи для стоп-лосса. Это может привести к нарушению заданных правил расчета размера позиции, но зато поможет точнее определить уровень стоп-лосса для более точного следования правилам выхода из торговых позиций.

Размер позиции

  • CalculatePositionSize (по умолчанию = true) — если true, то размер позиции рассчитывается по заданному допустимому риску, размеру счета (балансу или средствам), валюте счета и валютной паре. Процесс расчета — точно такой же как и в Калькуляторе размера позиции. Если false, то используется фиксированный размер позиции.
  • UpdatePendingVolume (по умолчанию = true) — если true, то объем отложенного ордера обновляется, как только рассчитывается новый размер позиции. Это может вызвать избыточно большое количество ордеров, отправляемых на торговый сервер потому, что невозможно изменить объем существующего ордера; вместо этого, надо удалить ордер и создать новый с новым объемом. Если false, то объем ордера остается постоянным до истечения его срока действия и последующего воссоздания. Этот параметр игнорируется, если CalculatePositionSize = false.
  • FixedPositionSize (по умолчанию = 0.01) — если CalculatePositionSize = false, экспертный советник будет использовать значение этого параметра в качестве объема создаваемых отложенных ордеров.
  • Risk (по умолчанию = 1) — допустимый риск в процентных пунктах от баланса/средств счета. Работает только если CalculatePositionSize = true. Этот параметр игнорируется, если UseMoneyInsteadOfPercentage = true.
  • MoneyRisk (по умолчанию = 0) — допустимый риск в валюте счета. Работает только если CalculatePositionSize = true и UseMoneyInsteadOfPercentage = true.
  • UseMoneyInsteadOfPercentage (по умолчанию = false) — если true, то размер позиции рассчитывается на основании допустимого риска в валюте счета (MoneyRisk) вместо процентных пунктов от баланса/средств счета (Risk). Работает только если CalculatePositionSize = true.
  • UseEquityInsteadOfBalance (по умолчанию = false) — если true, то размер позиции рассчитывается на основании средств (equity) доступных на счете вместо баланса счета. Работает только если CalculatePositionSize = true. Игнорируется, если UseMoneyInsteadOfPercentage = true.
  • FixedBalance (по умолчанию = 0) — если равен ненулевому значению, то будет использоваться вместо текущего баланса/средств счета при расчете размера позиции. Работает только если CalculatePositionSize = true.
  • LotDigits (по умолчанию = 2) — количество знаков после запятой, разрешенных вашим брокером при задании объема ордера. Например, если ваш брокер допускает торговлю микро-лотами (0,01), тогда этот параметр должен быть равен 2. Если ваш брокер разрешает только мини-лоты (0,1), то этот параметр должен быть установлен в 1. Требуется только если CalculatePositionSize = true.

Разное

  • Magic (по умолчанию = 20130116) — «волшебный» номер, используемый экспертом для того, чтобы отличать свои ордера (МТ4 и МТ5) и позиции (только МТ4). Вам может понадобиться изменить его, если вы пользуетесь другим советником с таким же номером или, если вы хотите использовать больше одного Помощника по графическим паттернам с одной и той же валютной парой.
  • Slippage (по умолчанию = 30) — максимально допустимое значение проскальзывания; в пунктах брокера.
  • Silent (по умолчанию = false) — если true, то информация о текущем состоянии не будет отображаться в комментарии графика. Это может быть полезно, если вы пользуетесь каким-нибудь индикатором или ЭС, которые изменяют комментарий к графику, и вы хотите отдать приоритет в этом вопросе им.
  • ErrorLogging (по умолчанию = true — если true, ЭС будет сохранять сообщения об ошибках и прочих нестандартных ситуациях в файл-журнал. Он будет называться «CPH-Errors-<дата-время>» и может быть найден в подпапке /experts/files/ установочной папки вашего МетаТрейдера 4 или подпапке /MQL5/Files/ установочной папки вашего МетаТрейдера 5 (или же в папке с данными приложений пользователя, отведенной для МетаТрейдера 5, если вы работаете в Windows Vista или более поздней версии).

МиниFAQ

Безопасно ли отключать советник, как только были размещены ордера?

Да, но у ордеров истечет срок действия, если они не сработают раньше. Запущенный советник нужен, чтобы воссоздавать и обновлять их.

Он использует трейлинг-стоп?

Нет, стоп-лосс фиксируется при открытии позиции. Но вы можете использовать свой собственный трейлинг-стоп, даже в виде отдельного экспертного советника.

Могу ли я модифицировать уровни стоп-лосса и тейк-профита позиции после срабатывания отложенного ордера?

Конечно! Вы можете начинать изменять стоп-лосс сразу же, а тейк-профит — как только переименуете/удалите соответствующий объект ТП или отключите экспертный советник.

Я рисую паттерны с помощью каналов, но хочу, чтобы советник торговал только на покупку или только на продажу. Как этого добиться?

Вы можете запретить экспертному советнику использовать ордера на покупку или ордера на продажу, установив входные параметры DisableBuyOrders или DisableSellOrders равными true.

Можете поменять кое-что для меня, пожалуйста?

Нет. Есть тысячи способов изменить данный советник, чтобы он соответствовал чьим-нибудь предпочтеням. Я не собираюсь реализовывать никакую модификацию потому, что всем все равно не угодишь. Однако, исходный код — открыт и хорошо закомментирован, так что можете сами попытаться воплотить любые изменения.

Примеры

MT4

Нижеприведенный график с примером демонстрирует торговый процесс Помощника по графическим паттернам. Этот нисходящий канал на графике EUR/USD @ M15 помечен тремя объектами типа «Равноудаленный канал»: граница (желтая), вход (бирюзовый) и ТП (лайм). Экспертный советник обнаружил все объекты и рассчитал соответствующие уровни входа, стоп-лосса и тейк-профита. Рассчитанные значения отображаются в комментарии графика (верхний левый угол). Были размещены отложенные стоп-ордера; их уровни СЛ/ТП также видны на графике.

Помощник по графическим паттернам — пример графика, показывающий стоп-ордера на МетаТрейдере 4.

MT5

Следующий график показывает, как Помощник по графическим паттернам размещает отложенный ордер на покупку, чтобы открыть сделку, пропущенную при прорыве фигуры «Двойное дно». Недельный график GBP/JPY использует горизонтальные линии, чтобы обозначить границу (желтая), вход (бирюзовый) и тейк-профит (лайм). Так же как и в предыдущем примере, комментарий к графику в верхнем левом углу экрана показывает найденные уровни. Так как нижние объекты отсутствуют, рассчитываются только те уровни, которые имеют отношение к покупке. Был размещен один отложенный лимит-ордер на покупку, потому что текущая цена выше уровня входа.

Помощник по графическим паттернам — пример графика, показывающий лимит-ордер на МетаТрейдере 5.

Этот советник нейтрален к ECN. Вы можете свободно торговать этим советником с ECN-брокерамирыночным исполнением торговых ордеров), так как он или вообще не использует уровни стоп-лосс и тейк-профит в своих ордерах, или использует, но только в отложенных ордерах.

Скачать

Скачать «Помощник по графическим паттернам» для MT4

Скачать «Помощник по графическим паттернам» для MT4 в zip-архиве

Скачать «Помощник по графическим паттернам» для MT5

Скачать «Помощник по графическим паттернам» для MT5 в zip-архиве

Обсудить

У вас есть собственные результаты тестирования или замечания к этому экспертному советнику? Обсудите их на форуме!