ドンチアンチャネルブレイクアウト戦略は,トレンドをフォローする定量的な取引戦略である.リスク管理のためにATRSLトレーリングストップを使用しながら,市場トレンドを把握するためにドンチアンチャネルを使用する.価格がドンチアンチャネル上部帯を超えると,戦略はロングポジションに入ります.価格がATRSLトレーリングストップラインを下回ると,戦略はポジションを閉じる.
donLength
パラメーター,過去最高と最低を計算しますdonLength
上部帯としてdonUpper
下帯donLower
ドンチアン運河の中央線はdonBasis
上部と下部帯の平均ですAP2
そしてAF2
パラメータ,ATR値を計算するSL2
ストップ価格を動的に調整します.Trail2
現在の閉店価格との関係によってSC
そして,前のトレーリングストップ価格Trail2[1]
.donLength
, AP2
そしてAF2
戦略のパフォーマンスを最適化するためのニーズに応じてドンチアンチャネルブレイクアウト戦略は,ドンチアンチャネルを使用してトレンドを把握し,ATRSLトレーリングストップでリスクを管理するクラシックなトレンドフォロー戦略である.この戦略の利点は,シンプルで明確な論理,実装の容易さ,最適化の可能性を含む.しかし,その欠点は,不安定な市場やトレンド逆転のときにパフォーマンスが低下し,パラメータ設定が戦略パフォーマンスに大きな影響を与える.実用的な応用では,トレンドフィルターを追加し,ストップロスを最適化し,ポジションサイズモジュールを組み込み,安定性と収益性を向上させることで戦略を強化することができる.同時に,取引頻度と戦略コストを制御し,市場特性と個人のリスク好みに基づいてパラメータを柔軟に調整することが重要です.
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Stock Trend USE THIS", overlay = true) donLength = input(100, minval=1) //Donchian Long donLower = lowest(donLength) donUpper = highest(donLength) donBasis = avg(donUpper,donLower) // ATRSL SC = close // Slow Trail // AP2 = input(10, title="Slow ATR period") // ATR Period AF2 = input(3, title="Slow ATR multiplier") // ATR Factor SL2 = AF2 * atr(AP2) // Stop Loss Trail2 = 0.0 iff_3 = SC > nz(Trail2[1], 0) ? SC - SL2 : SC + SL2 iff_4 = SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0) ? min(nz(Trail2[1], 0), SC + SL2) : iff_3 Trail2 := SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0) ? max(nz(Trail2[1], 0), SC - SL2) : iff_4 // Long and Short Conditions longCondition = (crossover(close,donUpper[1])) // Close Conditions closeLongCondition = crossunder(close,Trail2) // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) alert("Open Long position") if (closeLongCondition) strategy.close("Long") alert("Close Long position") // Plot Donchian l = plot(donLower, color=color.blue) u = plot(donUpper, color=color.blue) plot(donBasis, color=color.orange) fill(u, l, color=color.blue) plot(Trail2, color=color.blue, title="ATRSL Trail")