이 전략은 코럴 트렌드 지표와 돈치안 채널을 결합한 트렌드 다음 거래 시스템이다. 시장 추진력을 정확하게 포착하고 트렌드 브레이크의 여러 확인을 제공함으로써 오스실레이션 시장에서 잘못된 신호를 효과적으로 필터링하고 거래 정확도를 향상시킵니다. 이 전략은 다양한 시장 조건에서 안정적인 성능을 유지하기 위해 매개 변수를 동적으로 조정할 수있는 적응적인 이동 평균 기술을 사용합니다.
핵심 논리는 두 가지 주요 지표의 시너지 효과에 기반합니다. 1. 코럴 트렌드 지표: (고위 + 낮 + 닫) / 3의 평평한 값을 계산하고 현재 폐쇄 가격과 비교하여 트렌드 방향을 결정합니다. 2. 돈치안 채널: 사용자가 정의한 기간 내에 가장 높고 가장 낮은 가격을 계산하여 가격이 핵심 수준을 넘을지 여부를 결정합니다.
이 시스템은 양쪽 지표가 상승 추세를 확인 할 때 긴 신호를 생성합니다 (coralTrendVal == 1 및 donchianTrendVal == 1), 양쪽이 하락 추세를 확인 할 때 짧은 신호를 생성합니다 (coralTrendVal == -1 및 donchianTrendVal == -1). 전략은 현재 트렌드 상태를 추적하고 중복 신호를 피하기 위해 상태 기계 (트렌드 스테이트) 를 사용합니다.
이 전략은 다중 트렌드 확인 메커니즘과 유연한 매개 변수 설정을 통해 강력한 트렌드 다음 시스템을 달성합니다. 적응력 있는 기능과 명확한 신호 논리는 다양한 거래 시간 프레임 및 시장 환경에 적합하게 만듭니다. 제안된 최적화 방향을 통해 전략 성능의 추가 개선이 가능합니다. 라이브 트레이딩에 적용 할 때 특정 거래 도구의 특성에 따라 위험 관리 조치를 통합하고 매개 변수를 최적화하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Coral Tides Strategy", shorttitle="CoralTidesStrat", overlay=true) // === Inputs === dlen = input.int(defval=20, title="Donchian Channel Period", minval=10) coralPeriod = input.int(defval=14, title="Coral Trend Period") // === Functions === // Coral Trend Calculation coralTrend(period) => smooth = (high + low + close) / 3 coral = ta.ema(smooth, period) trend = 0 trend := close > coral ? 1 : close < coral ? -1 : trend[1] [trend, coral] // Donchian Trend Calculation donchianTrend(len) => hh = ta.highest(high, len) ll = ta.lowest(low, len) trend = 0 trend := close > hh[1] ? 1 : close < ll[1] ? -1 : trend[1] trend // === Trend Calculation === [coralTrendVal, coralLine] = coralTrend(coralPeriod) donchianTrendVal = donchianTrend(dlen) // === Signal Logic === var int trendState = 0 buySignal = false sellSignal = false if (coralTrendVal == 1 and donchianTrendVal == 1 and trendState != 1) buySignal := true sellSignal := false trendState := 1 else if (coralTrendVal == -1 and donchianTrendVal == -1 and trendState != -1) sellSignal := true buySignal := false trendState := -1 else buySignal := false sellSignal := false // === Strategy Execution === // Entry Signals if (buySignal) strategy.entry("Long", strategy.long) if (sellSignal) strategy.entry("Short", strategy.short) // === Plots === // Coral Trend Line plot(coralLine, color=color.green, linewidth=2, title="Coral Trend Line") // Buy/Sell Signal Labels if buySignal label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.normal) if sellSignal label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.normal)