이 전략은 평형 하이킨-아시 촛불과 단순 이동 평균 (SMA) 크로스오버를 기반으로 한 트렌드 다음 시스템이다. 이 전략은 시장의 주요 트렌드 기회를 포착하기 위해 EMA 평형 하이킨-아시 촛불과 44 기간 SMA의 교차를 통해 트렌드 변화를 식별합니다. 이 전략은 동적인 위치 관리 메커니즘을 통합하여 가격이 장기 이동 평균에 너무 가까워지면 자동으로 포지션을 닫고 시장 통합에서 오스실레이션 위험을 피합니다.
핵심 논리는 세 가지 핵심 요소로 구성되어 있습니다. 첫째, 오픈, 고, 낮은, 닫는 가격의 수학적 평균을 계산하여 전통적인 촛불을 하이킨-아시 촛불로 변환하여 시장 소음을 필터합니다. 둘째, 하이킨-아시를 매끄럽게하기 위해 6 기간 EMA를 사용하여 신호 신뢰성을 더욱 향상시킵니다. 마지막으로 매끄러운 하이킨-아시 폐쇄 가격을 44 기간 SMA와 결합하여 상승 크로스에 긴 신호와 하락 크로스에 짧은 신호를 생성합니다.
이 전략은 하이킨-아시 촛불을 SMA 시스템과 결합하여 강력한 트렌드 다음 거래 시스템을 구축합니다. 포괄적인 신호 생성 메커니즘과 합리적인 위험 통제를 갖추고 있으며, 특히 트렌드 특성이 명확한 시장에 적합합니다. 제안된 최적화 방향을 통해 전략의 실질적 효과는 더욱 향상 될 수 있습니다. 전반적으로 명확한 논리로 잘 설계된 트렌드 다음 전략을 나타냅니다.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true) // Input parameters for SMAs s1 = input.int(11, title="Short SMA Period") s2 = input.int(44, title="Long SMA Period") noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001) // Calculate the original Heikin-Ashi values haClose = (open + high + low + close) / 4 var float haOpen = na haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 haHigh = math.max(high, math.max(haOpen, haClose)) haLow = math.min(low, math.min(haOpen, haClose)) // Smoothing using exponential moving averages smoothLength = input.int(6, title="Smoothing Length") smoothedHaClose = ta.ema(haClose, smoothLength) smoothedHaOpen = ta.ema(haOpen, smoothLength) smoothedHaHigh = ta.ema(haHigh, smoothLength) smoothedHaLow = ta.ema(haLow, smoothLength) // Calculate SMAs smaShort = ta.sma(close, s1) smaLong = ta.sma(close, s2) // Plotting the smoothed Heikin-Ashi values plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi") plot(smaShort, color=color.blue, title="SMA Short") plot(smaLong, color=color.red, title="SMA Long") // Generate buy/sell signals based on SHA crossing 44 SMA longCondition = ta.crossover(smoothedHaClose, smaLong) shortCondition = ta.crossunder(smoothedHaClose, smaLong) noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (noPositionCondition and strategy.position_size != 0) strategy.close_all("No Position") // Plot buy/sell signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)