이 전략은 슈퍼트렌드 지표와 카우프만 적응형 이동평균 (KAMA) 을 결합한 트렌드를 따르는 거래 시스템이다. 시장 트렌드 변화를 동적으로 식별하고, 상승 트렌드에서 긴 기회를 찾고, 리스크 통제를 위해 유연한 스톱 로스 메커니즘을 사용합니다. 핵심 개념은 슈퍼트렌드 지표의 트렌드 방향 결정 능력과 KAMA의 시장 변동성 적응 특성을 결합하여 상승 시장 트렌드에서 긴 포지션을 설정하는 데 의존합니다.
이 전략은 이중 기술 지표 확인 시스템을 사용합니다. 첫째, 슈퍼트렌드 지표는 ATR 및 사용자 정의 계수를 사용하여 트렌드 방향을 계산하여 지표 라인이 가격 이하일 때 상승세를 나타냅니다. 둘째, KAMA 지표는 적응 메커니즘을 통해 이동 평균 감수성을 조정하여 다른 시장 조건을 더 잘 수용합니다. 입시 신호는 두 가지 동시 조건이 필요합니다: 상승세를 나타내는 슈퍼트렌드 및 KAMA 라인 위의 가격. 마찬가지로 출구 신호는 하락 추세로 전환하는 슈퍼트렌드 및 KAMA 라인 아래에 떨어지는 가격을 나타내는 이중 확인이 필요합니다. 이 이중 확인 메커니즘은 잘못된 신호를 효과적으로 감소시킵니다.
이 전략은 슈퍼트렌드 및 KAMA 기술 지표를 결합하여 견고한 트렌드 다음 거래 시스템을 구축합니다. 주요 장점은 적응력과 위험 통제 능력에 있으며, 이중 확인을 통해 거래 신호 신뢰성을 향상시킵니다. 불안정한 시장에서 도전에 직면하면서 적절한 매개 변수 설정 및 최적화 구현을 통해 전략의 전반적인 성능을 더욱 향상시킬 수 있습니다. 특히 중장기 트렌드 거래에 적합하며 명확한 트렌드가있는 시장에서 잘 수행합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("Supertrend + KAMA Long Strategy", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // User-defined inputs for date range startDate = input(timestamp("2018-01-01 00:00:00"), title="Start Date") endDate = input(timestamp("2069-12-31 23:59:59"), title="End Date") inDateRange = true // Inputs for KAMA and Supertrend kamaLength = input.int(21, title="KAMA Length", minval=1) atrPeriod = input.int(10, title="Supertrend ATR Length", minval=1) factor = input.float(3.0, title="Supertrend Factor", minval=0.01, step=0.01) //------------------------- Kaufman Moving Average Adaptive (KAMA) ------------------------- xPrice = close xvnoise = math.abs(xPrice - xPrice[1]) Length = kamaLength nfastend = 0.666 nslowend = 0.0645 nsignal = math.abs(xPrice - xPrice[Length]) float nnoise = 0.0 for i = 0 to Length - 1 nnoise := nnoise + xvnoise[i] nefratio = nnoise != 0.0 ? nsignal / nnoise : 0.0 nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2) var float nAMA = na nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1])) plot(nAMA, color=color.blue, linewidth=2, title="Kaufman KAMA") //------------------------- Supertrend Calculation ------------------------- [stValue, dirValue] = ta.supertrend(factor, atrPeriod) upTrend = dirValue < 0 downTrend = dirValue >= 0 plot(dirValue < 0 ? stValue : na, "Up Trend", color=color.green, style=plot.style_linebr) plot(dirValue >= 0 ? stValue : na, "Down Trend", color=color.red, style=plot.style_linebr) //------------------------- Strategy Logic ------------------------- // Entry condition: Supertrend is in uptrend AND price is above KAMA canLong = inDateRange and upTrend and close > nAMA // Exit condition (Take Profit): Supertrend switches to downtrend AND price is below KAMA stopLoss = inDateRange and downTrend and close < nAMA if canLong strategy.entry("Long", strategy.long) label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.normal) if stopLoss strategy.close("Long", comment="Stop Loss") label.new(bar_index, high, "STOP LOSS", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.normal) //------------------------- Alerts ------------------------- alertcondition(canLong, title="Long Entry", message="Supertrend + KAMA Long Signal") alertcondition(stopLoss, title="Stop Loss", message="Supertrend switched to Downtrend and Price below KAMA")