Обратная стратегия Хайкина-Аши

Автор:Чао Чжан, Дата: 2023-11-16 15:44:14
Тэги:

img

Обзор

Эта стратегия в основном использует улучшенные свечи Хайкина-Аши для выявления обратных точек в цене и обнаружения значительных изменений тренда. Она относится к краткосрочным торговым стратегиям. Стратегия рассчитывает открытые, высокие, низкие и закрытые цены свечей с использованием HA и определяет конечный цвет на основе ценовой зависимости. Зеленые свечи представляют собой растущие цены, а красные свечи представляют собой падающие цены. Стратегия использует изменение цвета свечи HA в качестве торговых сигналов, чтобы пойти коротко на зеленое к красному изменению и идти долго на красное к зеленому изменению.

Логика стратегии

Основная логика стратегии заключается в обнаружении изменения цвета в свечах HA для определения переворота цены.

Во-первых, получите открытые, высокие, низкие и закрытые цены из данных HA или оригинальных данных на основе входного параметра.

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close

haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open  

haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high

haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

Затем вычислить текущий ГА открытия и закрытия в соответствии с формулами.

haclose = (haOpen + haHigh + haLow + haClose) / 4  

haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2

Далее получать HA самые высокие и самые низкие цены.

hahigh = max(haHigh, max(haopen, haclose))

halow = min(haLow, min(haopen, haclose))  

Определить цвет свечи HA на основе открытой/близкой связи.

hacolor = haclose > haopen ? color.green : color.red

Определить сигналы обратного движения на основе изменения цвета HA между полосками.

turnGreen = haclose > haopen and haclose[1] <= haopen[1]  

turnRed = haclose <= haopen and haclose[1] > haopen[1] 

Открыть длинные/короткие позиции, когда сигналы запускаются.

strategy.entry("long", 1, when=turnGreen)
  
strategy.entry("short", 0, when=turnRed) 

Закрыть позиции на противоположные сигналы.

strategy.close("long", when=turnRed)

Замечая изменения цвета свечи HA, стратегия фиксирует точки перемены цены для переменной торговли.

Преимущества

Основными преимуществами этой стратегии являются:

  1. Использование улучшенных свечей HA фильтрует шум и более четко определяет обратные действия.

  2. Простая логика, основанная на изменении цвета HA, легко понять и реализовать.

  3. Обратная торговля быстро улавливает изменения тренда для получения прибыли.

  4. Настраиваемая для использования свечей HA или нет для разных рынков.

  5. Стрелки на свечах визуально указывают на обратный ход.

  6. Параметры, такие как временные рамки, могут быть оптимизированы для различных продуктов.

Риски

Следует также отметить некоторые риски:

  1. Торговля с обратным движением может быть уязвимой для ловушек.

  2. Частые сбои могут происходить на различных рынках.

  3. Невозможно определить длительность тренда, возможно, обратный, а затем продолжить тренд.

  4. Один индикатор, склонный к ложным сигналам, должен сочетаться с другими.

  5. Превышение необходимо избежать путем оптимизации.

Решения:

  1. Оптимизируйте параметры для надежных сигналов.

  2. Добавьте трендовый фильтр, чтобы избежать колебаний рынков.

  3. Используйте стоп-лосс для контроля потери на торговле.

  4. Подтвердите сигналы другими индикаторами, чтобы избежать ложных сигналов.

  5. Тщательное обратное тестирование для оптимизации параметров и предотвращения перенастройки.

Улучшение

Стратегия может быть улучшена следующими способами:

  1. Оптимизировать сроки для различных продуктов.

  2. Испытывать использование ГА свечей по характеристикам продукта.

  3. Добавьте трендовый фильтр, чтобы избежать сбоев на рыночных рынках.

  4. Внедрять динамические остановки, основанные на волатильности рынка.

  5. Подтвердите сигналы дополнительными показателями.

  6. Включить размеры позиций на основе управления рисками.

  7. Расширить для многопродуктовой арбитражной торговли.

  8. Регулировать параметры на основе результатов обратных испытаний для предотвращения переустановки.

Заключение

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


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Heikin-Ashi Change Strategy", overlay=true)

UseHAcandles    = input(true, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===

// === BASE FUNCTIONS ===

haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh  = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow   = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low

// Calculation HA Values 
haopen = 0.0
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red

// Signals
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]

// Plotting
bgcolor(hacolor)

plotshape(turnGreen, style=shape.arrowup, location=location.belowbar, color=color.green)
plotshape(turnRed, style=shape.arrowdown, location=location.abovebar, color=color.red)

// Alerts
alertcondition(turnGreen, "ha_green", "ha_green")
alertcondition(turnRed, "ha_red", "ha_red")

strategy.entry("long", 1, when=turnGreen)
//strategy.entry("short", 0, when=turnRed)
strategy.close("long", when=turnRed)


Больше