
이 전략은 코럴 트렌드 지표와 돈키안 채널을 결합한 추세 추종 거래 시스템입니다. 시장 모멘텀과 추세 돌파에 대한 여러 가지 확인을 정확하게 포착함으로써 변동성이 큰 시장에서의 거짓 신호가 효과적으로 걸러지고 거래 정확도가 향상됩니다. 이 전략은 시장 상황에 따라 매개변수를 동적으로 조정할 수 있는 적응형 이동 평균 기술을 사용하여 다양한 시장 환경에서 안정적인 성과를 유지할 수 있습니다.
전략의 핵심 논리는 두 가지 주요 지표의 시너지 효과에 기초합니다.
두 지표가 모두 상승 추세를 확인하면(coralTrendVal == 1 및 donchianTrendVal == 1) 시스템은 롱 신호를 생성합니다. 두 지표가 모두 하락 추세를 확인하면(coralTrendVal == -1 및 donchianTrendVal == -1) 시스템은 다음을 생성합니다. 짧은 신호. 이 전략은 상태 머신(trendState)을 사용하여 현재 추세 상태를 추적하고 중복 신호를 방지합니다.
이 전략은 다양한 추세 확인 메커니즘과 유연한 매개변수 설정을 통해 강력한 추세 추적 시스템을 구현합니다. 적응형 특성과 명확한 신호 논리로 인해 다양한 거래 주기와 시장 환경에 적합합니다. 추천된 최적화 방향을 통해 전략의 성과를 더욱 개선할 수 있습니다. 실제 거래에 적용할 경우, 특정 거래 상품의 특성에 따라 위험 관리 대책을 결합하고 매개변수를 최적화하는 것이 좋습니다.
/*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)