이 전략은 변형된 하이킨-아시 촛불에 기반한 트렌드 다음 시스템이다. 전통적인 하이킨-아시 촛불에 두 배의 기하급수적 이동 평균 (EMA) 평평화를 적용함으로써 시장 소음을 효과적으로 줄이고 더 명확한 트렌드 신호를 제공합니다. 전략은 단장 모드에서 작동하며 상승 추세 동안 포지션을 유지하고 하락 추세 동안 시장에서 벗어나 효율적인 트렌드 탐지를 통해 시장 수익을 캡처합니다.
핵심 논리는 다음의 핵심 단계를 포함합니다.
이 전략은 이중 평형화 및 수정 된 하이킨-아시 촛불을 핵심 구성 요소로 사용하여 강력한 트렌드 추적 시스템을 구축합니다. 전략 디자인은 깨끗하고 간단하며 이해하기 쉽고 실행하기 쉽고 다양한 시장 환경에 적응하기 위해 여러 최적화 방향을 제공합니다. 특정 지연 및 인출 위험이 있지만 적절한 돈 관리 및 위험 통제 조치를 통해이 전략은 투자자에게 신뢰할 수있는 트렌드 추적 도구를 제공할 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Smoothed Heiken Ashi Strategy Long Only", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) len = input.int(10, title="EMA Length") len2 = input.int(10, title="Smoothing Length") start_date = input(defval=timestamp("2020-01-01"), title="Backtest Start Date") o = ta.ema(open, len) c = ta.ema(close, len) h = ta.ema(high, len) l = ta.ema(low, len) haclose = (o + h + l + c) / 4 var float haopen = na haopen := na(haopen[1]) ? (o + c) / 2 : (haopen[1] + haclose[1]) / 2 hahigh = math.max(h, math.max(haopen, haclose)) halow = math.min(l, math.min(haopen, haclose)) o2 = ta.ema(haopen, len2) c2 = ta.ema(haclose, len2) h2 = ta.ema(hahigh, len2) l2 = ta.ema(halow, len2) col = o2 > c2 ? color.red : color.lime // Plot candles without visible wicks plotcandle(o2, o2, c2, c2, title="Heikin Smoothed", color=col, wickcolor=color.new(col, 100)) // Delayed Buy and Sell signals colorChange = col != col[1] buySignal = colorChange[1] and col[1] == color.lime sellSignal = colorChange[1] and col[1] == color.red plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small) plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // Strategy entry and exit if (true) if (buySignal) strategy.entry("Long", strategy.long) if (sellSignal) strategy.close("Long") // Add a vertical line at the start date // if (time == start_date) // line.new(x1=bar_index, y1=low, x2=bar_index, y2=high, color=color.blue, width=2) // Alert conditions alertcondition(colorChange[1], title="Color Change Alert", message="Heiken Ashi Candle Color Changed") alertcondition(buySignal, title="Buy Signal Alert", message="Buy Signal: Color changed from Red to Green") alertcondition(sellSignal, title="Sell Signal Alert", message="Sell Signal: Color changed from Green to Red")