Свечной трейдинг: полное руководство по паттернам и стратегиям.

В недавней статье я обсуждал комбинирование свечных паттернов с индикаторами, однако вопрос их прибыльности как отдельных элементов очень сомнительный. Но это не мешает нам проводить обратное тестирование в рамках системы управления рисками, которая оптимизирует прибыль.

Я только что опубликовал новую книгу после успеха Новые технические индикаторы в Python. Он содержит более полное описание и добавление сложных торговых стратегий со страницей Github, посвященной постоянно обновляемому коду. Если вы считаете, что это вас заинтересует, не стесняйтесь перейти по приведенной ниже ссылке или если вы предпочитаете купить версию в формате PDF, вы можете связаться со мной в Linkedin.



В этой статье мы протестируем некоторые свечные модели и оценим их на основе следующих критериев, которые я называю трехточечной системой:

  • Частота сигналов: когда сигналы редки, мы не можем реально оценить, как сработала наша стратегия. В зависимости от охваченного временного горизонта должно быть минимум сигналов, чтобы можно было с уверенностью судить о том, насколько хорошо работает стратегия. По статистике, на ум приходит цифра 30, но я предпочитаю больше в год. Если мы возьмем пример стратегии и захотим ее оценить, то мы можем установить цель - 400–500 сигналов в год для внутридневных сделок. Конечно, если мы торгуем на очень коротком временном горизонте, таком как одноминутные графики, то нам следует ожидать не менее 15 000–20 000 сигналов в год. Однако в этом исследовании мы будем проводить исследования и бэк-тесты на часовых графиках в течение целого года.
  • Прибыльность: цель разработки стратегий - зарабатывать деньги, и если мы сможем правильно оценить доходность наших стратегий, то сможем установить некоторые цели по прибыли, которые необходимы для того, чтобы мы были удовлетворены этой стратегией. Примером показателя прибыльности является ожидаемая величина. Положительное ожидание означает, что с учетом среднего коэффициента успешности мы можем рассчитывать на получение определенной суммы денег за каждую сделку. Это средневзвешенная прибыль / убыток на сделку.
  • Стабильность: если в один период времени стратегия дает отличные результаты, а в другой - ужасные, вряд ли она будет желаемой. Конечно, все стратегии время от времени имеют периоды застоя, но последовательность является ключевым моментом в торговле и инвестировании, а слишком высокая волатильность доходности снижает коэффициент Шарпа. Есть много способов измерить стабильность, например, количество прибыльных лет и волатильность прибылей и убытков. В этой статье мы будем придерживаться показателей прибыльности P / L.

Таким образом, если мы найдем хороший паттерн, мы сможем объединить его с нашим любимым индикатором и создать более надежную стратегию. До конца статьи торговые условия будут такими же. Уровни входа указаны для каждого паттерна, выход основан на методе среднего истинного диапазона с вознаграждением за риск 2: 1 (остановка на 1x ATR и фиксация прибыли на 2x ATR), а спред составляет 0,2 пункта за раунд сделки. Обратите внимание, что спред обычно не доступен для розничных трейдеров и больше подходит для институциональных инвесторов, однако, увеличив временные рамки, мы можем установить обычные розничные спреды, такие как 1 пункт на раунд сделки, и это не повлияет на результаты. .

Молотковая система

Молоток возникает при нисходящем тренде и обычно является сигналом о том, что покупатели берут на себя контроль. Название происходит от того, что он похож на молоток. Перевёрнутый молот - тоже бычий паттерн, но перевернутый. Это похоже на молот, направленный в землю. Паттерн повешенный выглядит как молот, но является медвежьей свечой и встречается в бычьих тенденциях, он сигнализирует о медвежьем развороте. Наконец, падающую звезду можно рассматривать как перевернутого повешенного человека, а также свечу медвежьего разворота.

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

def hammer_scanner(Data, buy, sell):
    
    for i in range(len(Data)):
        
        # Hammer
        if Data[i, 3] < Data[i - 5, 3] and \
            Data[i, 3] > Data[i, 0] and \
            Data[i, 1] == Data[i, 3]:
            Data[i, buy] = 1
            
        # Inverted Hammer
        if Data[i, 3] < Data[i - 5, 3] and \
            Data[i, 3] > Data[i, 0] and \
            Data[i, 2] == Data[i, 0]:
            Data[i, buy] = 1
        # Hanging Man
        if Data[i, 3] > Data[i - 5, 3] and \
            Data[i, 3] < Data[i, 0] and \
            Data[i, 1] == Data[i, 0]:
            Data[i, sell] = -1
            
        # Shooting Star
        if Data[i, 3] < Data[i - 5, 3] and \
            Data[i, 3] < Data[i, 0] and \
            Data[i, 2] == Data[i, 0]:
            Data[i, sell] = -1

График сигналов показывает, что для автоматизированной системы сигналы, вероятно, встречаются не так часто. На графике показаны все сигналы, сгенерированные в прошлом году.

Давайте интерпретируем следующие результаты трехбалльной системы, которую мы обозначили в начале главы:

  • Частота сигналов: с частотой 352 и 401 в год, этот шаблон довольно распространен и вряд ли принесет что-то значимое. За 10 лет после выполнения вышеуказанной функции было получено 3515 и 4007 сигналов по EURUSD и USDCHF соответственно. Использование временного горизонта M30 может лучше подходить для увеличения частоты сигнала, но это ничего не говорит о прибыльности.
  • Прибыльность. Коэффициент успешности в системе EURUSD Hammer при правильном соотношении риска и прибыли 2: 1 составил 44,75% с ожиданием 0,39 доллара и коэффициентом прибыли 1,03. К сожалению, реализованное соотношение риска и прибыли составило 1,28 из-за того, что позиции закрываются перед открытием новых, и если мы не достигли нашей цели или стопа, это повлияет на соотношение риска и прибыли. Коэффициент успешности по USDCHF составил 44,17% с ожиданием -0,18 доллара США и коэффициентом прибыли 0,98. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность. Стабильность можно измерить по волатильности доходности и количеству прибыльных лет. Прибыльные годы - это субъективный показатель, который дает нам лишь беглый взгляд, но на самом деле не является обычным показателем. Например, мы можем сказать, что за последние 10 лет у нас было 5 лет, в течение которых мы зарабатывали деньги, по сравнению с 5 годами убытков, что дает нам 50% -ный шанс получить прибыльный год на основе исторических данных. Однако в этой статье мы будем придерживаться волатильности доходности и сравнивать ее с ожиданием. Система EURUSD имела волатильность P / L в размере 7,36 доллара, в то время как USDCHF имела волатильность P / L в размере 6,24 доллара. Нестабильная доходность - признак нестабильности системы.

Если вас также интересуют другие технические индикаторы и использование Python для создания стратегий, то моя книга-бестселлер по техническим индикаторам может вас заинтересовать:



Система трех свечей

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

Мы будем кодировать логику этих функций на Python как обычно.

def three_candles__scanner(Data, buy, sell):
   for i in range(len(Data)):
        # Three White Soldiers
        if Data[i, 3] > Data[i - 1, 3] and \
            Data[i - 1, 3] > Data[i - 2, 3] and \
            Data[i - 2, 3] > Data[i - 3, 3]:
            Data[i, buy] = 1
        # Three Black Crows
        if Data[i, 3] < Data[i - 1, 3] and \
            Data[i - 1, 3] < Data[i - 2, 3] and \
            Data[i - 2, 3] < Data[i - 3, 3]:
            Data[i, sell] = -1

Давайте интерпретируем следующие результаты трехбалльной системы, которую мы обозначили в начале главы:

  • Частота сигналов: с частотой от 1141 до 1100 в год, этот шаблон является обычным и, вероятно, принесет что-то значимое. За 10 лет, после выполнения вышеупомянутой функции, всего было 11408 и 11003 сигналов по EURUSD и USDCHF соответственно.
  • Прибыльность: коэффициент успешности по системе EURUSD Hammer при правильном соотношении риска и прибыли 2: 1 составил 51,10% с ожиданием - 0,57 доллара и коэффициентом прибыли 0,92. Отношение реализованного риска к прибыли составило 0,88. Коэффициент успешности по USDCHF составил 50,35% с ожиданием -0,64 доллара и коэффициентом прибыли 0,89. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность: система EURUSD имела волатильность P / L в размере 7,17 доллара, тогда как USDCHF имела волатильность P / L в размере 6,14 доллара. Нестабильная доходность - признак нестабильности системы.

Каким образом этот паттерн стал одним из самых известных? Если мы поменяем условия на противоположные (например, покупка черного ворона и продажа белых солдат), мы получим следующие кривые эквити:

Похоже, нам следует пересмотреть реальное определение и потенциал этих трех паттернов свечей, поскольку они явно лучше работают в перевернутом виде (на двух протестированных валютных парах).

Система вечерних и утренних звезд

Утренняя звезда - это модель бычьего разворота, возникающая, таким образом, в нижней части рынка. Он состоит из трех подсвечников:

  • Первая свеча должна иметь большое тело и быть медвежьей.
  • Вторая свеча имеет небольшое тело, которое не касается тела первой свечи.
  • Третья свеча должна быть бычьей и иметь тело, которое находится внутри тела первой свечи.

Это двойник утренней звезды, и это модель медвежьего разворота. По сути, он имеет те же шаги, что и утренняя звезда:

  • Первая свеча должна иметь большое тело и быть бычьей.
  • Вторая свеча имеет небольшое тело, которое не касается тела первой свечи.
  • Третья свеча должна быть медвежьей и иметь тело, которое находится внутри тела первой свечи.

Мы будем кодировать логику этих функций на Python как обычно.

def star_scanner(Data, buy, sell):
    
   for i in range(len(Data)):
        # Morning Star
        if Data[i, 3] > Data[i, 0] and Data[i, 0] > Data[i - 1, 3]   and Data[i - 1, 3] > Data[i - 1, 0] and Data[i - 1, 3] < Data[i - 2, 3]:
            Data[i, buy] = 1
        # Evening Star
        if Data[i, 3] < Data[i, 0] and Data[i, 0] < Data[i - 1, 3]     and Data[i - 1, 3] < Data[i - 1, 0] and Data[i - 1, 3] > Data[i - 2, 3]:
            Data[i, sell] = -1

Давайте интерпретируем следующие результаты трехбалльной системы, которую мы обозначили в начале главы:

  • Частота сигналов: с периодичностью 11-15 в год, эта модель встречается редко и вряд ли принесет что-то значимое. За 10 лет, после выполнения вышеупомянутой функции, всего было 106 и 152 сигналов по EURUSD и USDCHF соответственно.
  • Прибыльность: коэффициент успешности в системе EURUSD при правильном соотношении риска и прибыли 2: 1 составил 27,36% с ожиданием - 2,50 доллара США и коэффициентом прибыли 0,77. Реализованное соотношение риска и прибыли составило 2,04. Коэффициент успешности по USDCHF составил 26,97% с ожиданием -2,63 доллара и коэффициентом прибыли 0,71. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность. Система EURUSD имела волатильность прибыли на один убыток в размере 0,86 доллара, в то время как у USDCHF была волатильность на уровне 0,80 доллара на прибыль.

Система проникающих и темных облаков

Темное облако - это медвежий паттерн, образованный двумя свечами. Первая свеча - бычья, а следующая - медвежья. Обычно цена открытия медвежьей свечи выше цены закрытия предыдущей свечи, и она должна закрыться вокруг своего тела. Чем больше пробитие медвежьей свечи, тем больше вероятность возникновения вершины. Пронзительный узор - аналог темного облака. Это бычья модель. Мы видим эту модель на падающем рынке, первая свеча - медвежья, а вторая - бычья. Обычно вторая (бычья) свеча открывается ниже первой и должна закрыться примерно на половине длины предыдущей свечи.

Мы будем кодировать логику этих функций на Python как обычно.

def piercing_cloud_scanner(Data, buy, sell):
  for i in range(len(Data)):
    
    # Piercing Pattern   
    if Data[i, 3] > Data[i, 0] and Data[i - 1, 3] < Data[i - 1, 0]   and Data[i, 3] < Data[i - 1, 0] and Data[i, 3] > Data[i - 1, 3] and  Data[i, 0] < Data[i - 1, 3]:
            Data[i, buy] = 1
    
    # Dark Cloud Pattern    
    if Data[i, 3] < Data[i, 0] and Data[i - 1, 3] > Data[i - 1, 0] and Data[i, 3] > Data[i - 1, 0] and Data[i, 3] < Data[i - 1, 3] and Data[i, 0] > Data[i - 1, 3]:
            Data[i, sell] = -1

Давайте интерпретируем следующие результаты трехбалльной системы, которую мы обозначили в начале главы:

  • Частота сигналов: с частотой 595 и 591 в год, этот шаблон является обычным и, вероятно, принесет что-то значимое. За 10 лет, после выполнения вышеупомянутой функции, всего было 5946 и 5906 сигналов по EURUSD и USDCHF соответственно.
  • Прибыльность: коэффициент успешности по паре EURUSD при правильном соотношении риска и прибыли 2: 1 составил 35,92% с ожиданием - 0,90 доллара США и коэффициентом прибыли 0,90. Отношение реализованного риска к прибыли составило 1,60. Коэффициент успешности по USDCHF составил 36,69% ​​с ожиданием -0,66 доллара и коэффициентом прибыли 0,91. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность. Нестабильная доходность - признак нестабильности системы.

Система Доджи

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

Мы будем кодировать логику этих функций на Python как обычно. Логика кодирования доджи чрезвычайно проста. Мы просто напишем условие, которое находит бары (свечи), где цена открытия равна цене закрытия. Поскольку пары FX указываются с точностью до 5 знаков после запятой, такое может случиться очень редко, поэтому мы округлим числа до 4 знаков после запятой.

Data = np.round(Data, 4)
def doji_scanner(Data, buy, sell):
  for i in range(len(Data)):
   # Bullish Doji    
   if Data[i - 1, 3] < Data[i - 1, 0 ] and Data[i, 3] == Data[i, 0]:
    Data[i, buy] = 1
   # Bearish Doji     
   if Data[i - 1, 3] > Data[i - 1, 0 ] and Data[i, 3] == Data[i, 0]:
    Data[i, sell] = -1

Давайте теперь интерпретируем следующие результаты трехбалльной системы, которую мы обрисовали в начале главы:

  • Частота сигналов. С частотой 353 и 404 в год, этот шаблон является обычным и, вероятно, принесет что-то значимое. За 10 лет после выполнения вышеупомянутой функции было получено 3526 и 4037 сигналов в целом по EURUSD и USDCHF соответственно.
  • Прибыльность: коэффициент успешности по паре EURUSD при правильном соотношении риска и прибыли 2: 1 составил 37,38% с ожиданием - 0,42 доллара и коэффициентом прибыли 0,95. Отношение реализованного риска к прибыли составило 1,58. Коэффициент успешности по USDCHF составил 38,77% с ожиданием -0,15 доллара США и коэффициентом прибыли 0,98. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность: система EURUSD имела волатильность 4,08 доллара за литр, в то время как USDCHF - 3,59 доллара за литр.

Система Марубозу

Марубозу - это модель продолжения, которая сигнализирует о силе одной стороны. Интуиция «бычьего» (зеленого) Марубозу заключается в том, что покупатели были достаточно сильны, чтобы рынок не достиг более низкого минимума. У бычьего Марубозу нет фитилей, его минимум - это цена открытия, а его максимум - это цена закрытия.

Интуиция медвежьего (красного) Марубозу заключается в том, что продавцы были достаточно сильны, чтобы рынок не достиг более высокого максимума. У медвежьего Марубозу нет фитилей, его минимум - это цена закрытия, а его максимум - это цена открытия.

Мы будем кодировать логику этих функций на Python как обычно.

def marubozu_scanner(Data, buy, sell):
  for i in range(len(Data)):
     # Bullish Marubozu      
     if Data[i, 3] > Data[i, 0] and \
        Data[i, 3] == Data[i, 1] and \
        Data[i, 0] == Data[i, 2]:
         Data[i, buy] = 1
     # Bearish Marubozu      
     if Data[i, 3] < Data[i, 0] and \
        Data[i, 3] == Data[i, 1] and \
        Data[i, 0] == Data[i, 2]:
         Data[i, sell] = -1

Давайте теперь интерпретируем следующие результаты трехбалльной системы, которую мы обозначили в начале главы:

  • Частота сигналов. При частоте 4 и 5 в год эта закономерность встречается редко и вряд ли принесет что-то значимое. За 10 лет после выполнения вышеуказанной функции было получено 43 и 51 сигнал в целом по EURUSD и USDCHF соответственно.
  • Прибыльность: коэффициент успешности по паре EURUSD при правильном соотношении риска и прибыли 2: 1 составил 18,60% с ожиданием - 8,69 доллара и коэффициентом прибыли 0,38. Реализованное соотношение риска и прибыли составило 1,67. Коэффициент успешности по USDCHF составил 29,41% с ожиданием - 1,38 доллара и коэффициентом прибыли 0,85. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность. Система EURUSD имела волатильность P / L в размере 0,55 доллара, в то время как USDCHF имела волатильность P / L в 0,52 доллара.

Система Харами

Харами в переводе с японского означает «беременная» и представляет собой модель из двух свечей. Он имеет относительно небольшое тело, заключенное в предыдущую свечу, поэтому его называют харами.

Мы будем кодировать логику этих функций на Python как обычно. Принимая во внимание тот факт, что для бычьего Харами у нас должна быть цена закрытия выше цены открытия и предыдущая цена закрытия ниже предыдущей цены открытия. Мы не должны забывать, что фитили также должны быть меньше, и, следовательно, текущий максимум должен быть меньше предыдущего открытия, а текущий минимум должен быть больше предыдущего закрытия. Медвежий Харами прямо противоположен тому, что мы только что сказали.

def harami_scanner(Data, buy, sell):
for i in range(len(Data)):
        
  if Data[i - 1, 3] < Data[i - 1, 0] and \
     Data[i, 3] > Data[i, 0] and \
     Data[i - 1, 3] < Data[i, 2] and \
     Data[i - 1, 0] > Data[i, 1]:
      Data[i, buy] = 1
        
  if Data[i - 1, 3] > Data[i - 1, 0] and \
     Data[i, 3] < Data[i, 0] and \
     Data[i - 1, 3] > Data[i, 1] and \
     Data[i - 1, 0] < Data[i, 2]:
      Data[i, sell] = -1

Давайте теперь интерпретируем следующие результаты трехбалльной системы, которую мы обрисовали в начале главы:

  • Частота сигналов. При частоте 16 и 18 в год эта закономерность встречается редко и вряд ли принесет что-то значимое. За 10 лет, после выполнения вышеупомянутой функции, всего было 164 и 180 сигналов по EURUSD и USDCHF соответственно.
  • Прибыльность. Коэффициент успешности по паре EURUSD при правильном соотношении риска и прибыли 2: 1 составил 39,63% с ожиданием 3,41 доллара и коэффициентом прибыли 1,34. Реализованное соотношение риска и прибыли составило 2,05. Коэффициент успешности по USDCHF составил 32,78% с ожиданием - 0,90 доллара США и коэффициентом прибыли 0,90. По этим параметрам становится ясно, что эта система плохо работает с этими двумя парами.
  • Стабильность. Система EURUSD имела волатильность доходности на 1 доллар в 1,29 доллара, в то время как у USDCHF была волатильность на уровне 1,00 доллара.

Система трех методов

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

Мы будем кодировать логику этих функций на Python как обычно.

def three_methods_scanner(Data, buy, sell):
    for i in range(len(Data)):
        # Bullish Strike Method
        if Data[i, 3] > Data[i, 0] and Data[i - 1, 3] < Data[i - 1, 0] and Data[i - 2, 3] < Data[i - 2, 0] and \
            Data[i - 3, 3] < Data[i - 3, 0] and Data[i - 4, 3] > Data[i - 4, 0] and Data[i, 3] > Data[i - 3, 0] and \
            Data[i - 4, 0] < Data[i - 1, 3] and Data[i - 1, 3] < Data[i - 2, 3] and Data[i - 2, 3] < Data[i - 3, 3]:
            Data[i, buy] = 1
        # Bearish Strike Method
        if Data[i, 3] < Data[i, 0] and Data[i - 1, 3] > Data[i - 1, 0] and Data[i - 2, 3] > Data[i - 2, 0] and \
            Data[i - 3, 3] > Data[i - 3, 0] and Data[i - 4, 3] < Data[i - 4, 0] and Data[i, 3] < Data[i - 3, 0] and \
            Data[i - 4, 0] > Data[i - 1, 3] and Data[i - 1, 3] > Data[i - 2, 3] and Data[i - 2, 3] > Data[i - 3, 3]:
            Data[i, sell] = -1

Давайте теперь интерпретируем следующие результаты трехбалльной системы, которую мы обрисовали в начале главы:

  • Частота сигналов. При частоте, равной 11 в год для обоих, эта закономерность встречается редко и вряд ли принесет что-то значимое. За 10 лет, после выполнения вышеупомянутой функции, всего было 108 и 113 сигналов по EURUSD и USDCHF соответственно.
  • Прибыльность: коэффициент успешности по паре EURUSD при правильном соотношении риска и прибыли 2: 1 составил 25,00% с ожиданием - 3,55 доллара и коэффициентом прибыли 0,66. Реализованное соотношение риска и прибыли составило 1,99. Коэффициент успешности по USDCHF составил 24,78% с ожиданием -2,85 доллара и коэффициентом прибыли 0,68. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность: система EURUSD имела волатильность P / L в размере 0,79 доллара, в то время как USDCHF имела волатильность P / L в размере 0,69 доллара. Нестабильная доходность - признак нестабильности системы.

Система забастовок

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

Мы будем кодировать логику этих функций на Python как обычно.

def strike_scanner(Data, buy, sell):
for i in range(len(Data)):
        # Bullish Strike
        if Data[i, 3] > Data[i, 0] and Data[i - 1, 3] < Data[i - 1, 0] and Data[i - 2, 3] < Data[i - 2, 0] and \
            Data[i - 3, 3] < Data[i - 3, 0] and Data[i - 1, 3] <    Data[i - 2, 3] and Data[i - 2, 3] < Data[i - 3, 3] and \
            Data[i, 3] > Data[i - 3, 0]:
            Data[i, buy] = 1
         # Bearish Strike
         if Data[i, 3] < Data[i, 0] and Data[i - 1, 3] > Data[i - 1,  0] and Data[i - 2, 3] > Data[i - 2, 0] and \
            Data[i - 3, 3] > Data[i - 3, 0] and Data[i - 1, 3] > Data[i - 2, 3] and Data[i - 2, 3] > Data[i - 3, 3] and \
            Data[i, 3] < Data[i - 3, 0]:
            Data[i, sell] = -1

Давайте теперь интерпретируем следующие результаты трехбалльной системы, которую мы обрисовали в начале главы:

  • Частота сигналов. При частоте 81 и 83 в год эта закономерность встречается редко и вряд ли принесет что-то значимое. За 10 лет, после выполнения вышеупомянутой функции, всего было 812 и 829 сигналов по EURUSD и USDCHF соответственно.
  • Прибыльность. Коэффициент успешности по паре EURUSD при правильном соотношении риска и прибыли 2: 1 составил 33,25% с ожиданием - 0,66 доллара и коэффициентом прибыли 0,93. Реализованное соотношение риска и прибыли составило 1,87. Коэффициент успешности по USDCHF составил 30,04% с ожиданием - 1,38 доллара США и коэффициентом прибыли 0,83. По этим параметрам ясно, что эта система не работает на этих двух парах.
  • Стабильность: система EURUSD имела волатильность прибыли на один убыток в размере 2,33 доллара, в то время как USDCHF имела волатильность прибыли на один убыток в размере 1,91 доллара. Нестабильная доходность - признак нестабильности системы.

Заключение

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