この戦略は,スーパートレンド指標とカウフマン適応動向平均 (KAMA) を組み合わせたトレンドフォローする取引システムである. 市場のトレンド変化を動的に特定し,上向きのトレンドで長期機会を探し,リスク管理のための柔軟なストップロスのメカニズムを使用する. 核心コンセプトは,スーパートレンド指標のトレンド方向決定能力,KAMAの市場変動適応特性と組み合わせて,上向きの市場トレンドでロングポジションを確立することに依存する.
この戦略は2つの技術指標の確認システムを採用している.第一に,スーパートレンドインジケーターはATRとカスタム係数を使用してトレンド方向を計算し,インジケーターラインが価格を下回るときに上昇傾向を示す.第二に,KAMAインジケーターは適応メカニズムを通じて移動平均感度を調整し,異なる市場条件により適している.エントリーシグナルには,2つの同時条件が必要である:上昇傾向を示すスーパートレンドとKAMAライン上の価格.同様に,出口シグナルには2つの確認が必要である:スーパートレンドがダウントレンドに切り替わり,価格がKAMAラインを下回る.この2つの確認メカニズムは誤ったシグナルを効果的に減少させる.
この戦略は,スーパートレンドと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")