Распознавание образов - это поиск и идентификация повторяющихся паттернов с примерно одинаковыми результатами. Это означает, что когда нам удается найти паттерн, у нас есть ожидаемый результат, который мы хотим видеть и действовать в соответствии с нашей торговой стратегией. Например, паттерн «голова и плечи» - это классический технический паттерн, который сигнализирует о неизбежном развороте тренда. Литературные источники расходятся по поводу предсказательной способности этой известной конфигурации. В этой статье мы обсудим некоторые экзотические объективные закономерности. Я говорю «объективные», потому что у них есть четкие правила, в отличие от классических моделей, таких как голова и плечи и двойная вершина/дно. Мы обсудим три связанных шаблона, созданных Томом Демарком:
TD Differential.
TD Reverse-Differential.
TD Anti-Differential.
Том Демарк, известный технический аналитик, создал множество успешных индикаторов и моделей.
Группа индикаторов TD Differential была создана (или найдена?) для того, чтобы находить краткосрочные развороты или продолжения. Они должны помочь подтвердить наши предубеждения, давая нам дополнительный фактор уверенности. Например, предположим, что вы ожидаете роста пары USDCAD в течение следующих нескольких недель. У вас есть свои оправдания для сделки, и вы находите некоторые закономерности на более высоком таймфрейме, которые, кажется, подтверждают ваши мысли. Это определенно сделает для вас более комфортным совершение сделки. Ниже представлена сводная таблица условий для срабатывания трех различных паттернов.
Сводка условий для трех ценовых моделей. (Image by Author)
Прежде чем мы начнем представлять модели по отдельности, нам необходимо понять концепцию давления покупателей и продавцов, исходя из восприятия группы Differentials. Для расчета давления покупателей мы используем следующие формулы:
Для расчета давления продавцов мы используем следующие формулы:
Теперь мы рассмотрим их один за другим, сначала показав реальный пример, затем закодировав функцию на python, которая их ищет, и, наконец, мы создадим стратегию торговли на основе паттернов. Стоит отметить, что мы будем проводить бэктест на очень краткосрочном таймфрейме M5 (с ноября 2019 года) со спредом спроса/предложения 0,1 пункта на сделку (таким образом, стоимость 0,2 на круг).
TD Differential Pattern
Этот паттерн пытается найти краткосрочные развороты тренда; поэтому его можно рассматривать как предсказатель небольших корректировок и консолидаций. Ниже приведен пример свечного графика паттерна TD Differential.
Пример паттерна. Обратите внимание на краткосрочную тенденцию Reaction. (изображение автора)
Если мы хотим закодировать условия в Python, у нас должна быть функция, аналогичная приведенной ниже:
Триггер покупки:
- Два закрытия каждое меньше предыдущего.
- Текущее давление покупателей > предыдущего давления покупателей.
- Текущее давление продавцов < предыдущего давления продавцов.
Триггер продажи:
- Два закрытия, каждое из которых больше предыдущего.
- Текущее давление покупателей < предыдущего давления покупателей.
- Текущее давление продавцов > предыдущего давления продавцов.
def TD_differential(Data, true_low, true_high, buy, sell):
for i in range(len(Data)):
# True low
Data[i, true_low] = min(Data[i, 2], Data[i - 1, 3])
Data[i, true_low] = Data[i, 3] - Data[i, true_low]
# True high
Data[i, true_high] = max(Data[i, 1], Data[i - 1, 3])
Data[i, true_high] = Data[i, 3] - Data[i, true_high]
# TD Differential
if Data[i, 3] < Data[i - 1, 3] and Data[i - 1, 3] < Data[i - 2, 3] and \
Data[i, true_low] > Data[i - 1, true_low] and Data[i, true_high] < Data[i - 1, true_high]:
Data[i, buy] = 1if Data[i, 3] > Data[i - 1, 3] and Data[i - 1, 3] > Data[i - 2, 3] and \
Data[i, true_low] < Data[i - 1, true_low] and Data[i, true_high] > Data[i - 1, true_high]:
Data[i, sell] = -1
Теперь давайте протестируем эту стратегию на истории, соблюдая систему управления рисками, которая использует ATR для размещения стоп-ордеров и тейк-профит ордеров. Я обнаружил, что алгоритм оптимизируется при использовании стопа, равного 4x ATR, и цели 1x ATR. Ясно, что это явное нарушение основного правила соотношения риска и доходности, однако помните, что это систематическая стратегия, которая стремится максимизировать коэффициент успешности за счет соотношения риска и прибыли.
Напоминание: соотношение риска и доходности (или соотношение доходности и риска) в среднем измеряет, сколько дохода вы ожидаете за каждую единицу риска, на который готовы пойти. Например, вы хотите купить акцию по 100 долларов, у вас есть цель на уровне 110 долларов и вы размещаете стоп-лосс на уровне 95 долларов. Каково ваше соотношение риска и доходности? Ясно, что вы рискуете 5 долларами, чтобы получить 10 долларов, и, следовательно, 10/5 = 2,0. Таким образом, ваше соотношение риска и прибыли составляет 2. Обычно рекомендуется всегда иметь соотношение выше 1,0, при этом 2,0 считается оптимальным. В этом случае, если вы торгуете равными объемами (размером позиции) и рискуете половиной того, что ожидаете заработать, вам потребуется только коэффициент успешности 33,33% для безубыточности. Хорошее соотношение риска и прибыли снимет стресс от стремления к высокому коэффициенту успешности.
Пример сигнального графика на EURUSD - TD Differential (изображение автора).
Кривые капитала стратегии TD Differential по 10 основным валютным парам (изображение автора).
Похоже, она хорошо работает на AUDCAD и EURCAD с некоторыми промежуточными периодами, когда она проседает. Кроме того, общая тенденция кривых капитала направлена вверх, за исключением AUDUSD, GBPUSD и USDCAD. Для стратегии, основанной только на одном паттерне, есть некоторый потенциал, если мы добавим другие элементы. Показатели эффективности для AUDCAD были неплохими, достигая коэффициента успешности 69,72% и ожидаемого результата в 0,44 доллара за сделку.
TD Reverse-Differential Pattern
Этот паттерн стремится найти краткосрочные продолжения тренда; следовательно, его можно рассматривать как предиктор того момента, когда тренд станет достаточно сильным для продолжения. Это полезно, потому что, как мы знаем, тренд - наш друг, и добавив еще одного друга в группу, у нас может быть больше шансов разработать прибыльную стратегию. Давайте проверим условия и то, как это закодировать:
Пример паттерна
Триггер покупки:
- Два закрытия, каждое меньше предыдущего.
- Текущее давление покупателей < предыдущего давления покупателей.
- Текущее давление продавцов > предыдущего давления продавцов.
Триггер продажи:
- Два закрытия, каждое из которых больше предыдущего.
- Текущее давление покупателей > предыдущего давления покупателей.
- Текущее давление продавцов < предыдущего давления продавцов.
def TD_reverse_differential(Data, true_low, true_high, buy, sell):
for i in range(len(Data)):
# True low
Data[i, true_low] = min(Data[i, 2], Data[i - 1, 3])
Data[i, true_low] = Data[i, 3] - Data[i, true_low]
# True high
Data[i, true_high] = max(Data[i, 1], Data[i - 1, 3])
Data[i, true_high] = Data[i, 3] - Data[i, true_high]
# TD Differential
if Data[i, 3] < Data[i - 1, 3] and Data[i - 1, 3] < Data[i - 2, 3] and \
Data[i, true_low] < Data[i - 1, true_low] and Data[i, true_high] > Data[i - 1, true_high]:
Data[i, buy] = 1if Data[i, 3] > Data[i - 1, 3] and Data[i - 1, 3] > Data[i - 2, 3] and \
Data[i, true_low] > Data[i - 1, true_low] and Data[i, true_high] < Data[i - 1, true_high]:
Data[i, sell] = -1
Пример сигнального графика на паре EURUSD - TD Reverse-Differential Pattern (изображение автора).
Кривые капитала стратегии TD Reverse-Differential по 10 основным валютным парам (изображение автора).
Похоже, она хорошо работает на GBPUSD и EURNZD с некоторыми промежуточными периодами, когда она проседает. Общая тенденция кривых капитала менее впечатляющая, чем для первого паттерна. Если мы поищем некоторые достойные упоминания, показатели эффективности для GBPUSD тоже были не так уж плохи, достигнув 67,28% коэффициента успешности и 0,34 доллара на сделку.
TD Anti-Differential Pattern
Этот паттерн также направлен на обнаружение краткосрочных разворотов тренда, поэтому его можно рассматривать как предсказатель небольших коррекций и консолидаций. Он похож на схему TD Differential. Ниже приведены условия, за которыми следует функция Python.
Пример паттерна
Триггер покупки:
- Два закрытия, каждое из которых ниже предыдущего, затем,
- Закрытие выше, чем предыдущее, затем,
- Более низкое закрытие относительно закрытия предыдущего бара.
Триггер продажи:
- Два закрытия, каждое из которых выше предыдущего, затем,
- Закрытие ниже, чем предыдущее, затем,
- Закрытие выше по сравнению с закрытием предыдущего бара.
def TD_anti_differential(Data, true_low, true_high, buy, sell):
for i in range(len(Data)):
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] and Data[i - 3, 3] < Data[i - 4, 3]:
Data[i, buy] = 1if 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] and Data[i - 3, 3] > Data[i - 4, 3]:
Data[i, sell] = -1
Пример сигнального графика паттерна TD Anti-Differential Pattern для EURUSD (изображение автора).
Кривые капитала стратегии TD Anti-Differential Pattern по 10 основным валютным парам (изображение автора).
Она выглядит гораздо менее впечатляюще, чем две предыдущие стратегии. Общая тенденция кривых капитала неоднозначна. Показатели эффективности для EURNZD были не так уж и плохи, достигнув коэффициента успешности 64,45% и ожидания 0,38 доллара за сделку.
Помните, причина того, что у нас такой высокий коэффициент успешности, связана с плохим соотношением риска и прибыли, которое мы установили в начале бэк-тестов. С целью на уровне 1x ATR и стопе на уровне 4x ATR коэффициент попадания должен быть достаточно высоким, чтобы компенсировать большие потери.
Заключение
Я всегда советую вам проводить надлежащие бэк-тесты и понимать любые риски, связанные с торговлей. Например, приведенные выше результаты не очень показательны, поскольку использованный нами спред очень конкурентоспособен и может считаться труднодостижимым в мире розничной торговли. Однако с помощью институциональных спредов спроса и предложения можно снизить затраты, например, если систематическая среднечастотная стратегия станет прибыльной.
Комментариев нет:
Отправить комментарий