ドンチアン運河を脱出する戦略 ATRSLの追跡停止

作者: リン・ハーンチャオチャン,日付: 2024-03-22 16時13分58秒
タグ:

img

戦略の概要

ドンチアンチャネルブレイクアウト戦略は,トレンドをフォローする定量的な取引戦略である.リスク管理のためにATRSLトレーリングストップを使用しながら,市場トレンドを把握するためにドンチアンチャネルを使用する.価格がドンチアンチャネル上部帯を超えると,戦略はロングポジションに入ります.価格がATRSLトレーリングストップラインを下回ると,戦略はポジションを閉じる.

戦略原則

  1. ドンチアンチャネルを計算する: ユーザが定義したdonLengthパラメーター,過去最高と最低を計算しますdonLength上部帯としてdonUpper下帯donLowerドンチアン運河の中央線はdonBasis上部と下部帯の平均です
  2. ATRSL トレイリングストップを計算する: ユーザが定義した値に基づいてAP2そしてAF2パラメータ,ATR値を計算するSL2ストップ価格を動的に調整します.Trail2現在の閉店価格との関係によってSCそして,前のトレーリングストップ価格Trail2[1].
  3. 入場条件:現在の閉じる価格がドンキアン運河上部帯を超えると,ロングポジションを入力します.
  4. 出口条件:現在の閉じる価格がATRSLの後続ストップラインを下回ると,ポジションを閉じる.

戦略 の 利点

  1. トレンドフォロー: ドンチアンチャネルを使用してトレンド方向を決定することで,戦略は市場のトレンドを効果的に把握することができます.
  2. ダイナミックストップ・ロース: ATRSLのトレーリング・ストップは,市場の変動に基づいてストップ・ロースレベルをダイナミックに調整し,リスクを管理するのに役立ちます.
  3. パラメータの柔軟性: ユーザはパラメータを調整することができます.donLength, AP2そしてAF2戦略のパフォーマンスを最適化するためのニーズに応じて

戦略リスク

  1. パラメータリスク:異なるパラメータ設定は,戦略のパフォーマンスに重大な違いをもたらし,徹底的なバックテストとパラメータ最適化が必要です.
  2. 市場リスク: 市場が動揺したり,傾向が逆転する時,戦略は大幅な引き下げを経験する可能性があります.
  3. スリッパージと取引コスト:頻繁な取引は,戦略の収益性に影響を与える高いスリッパージと取引コストを引き起こす可能性があります.

オプティマイゼーションの方向性

  1. トレンドフィルターを追加:エントリー条件では,ADXなどの指標を追加してトレンド強さを評価し,トレンドが強いときにのみポジションを入力し,エントリー品質を改善することができます.
  2. ストップ・ロスの最適化: ストップ・ロスの柔軟性を高めるため,パーセントベースのストップ・ロスやATRストップ・ロスのような他のストップ・ロスの方法を試すか,複数のストップ・ロスのアプローチを組み合わせる.
  3. ポジション・サイジングを組み込む: 市場の変動と口座リスクに基づいてポジションサイズを動的に調整し,リスクの管理を行う.

概要

ドンチアンチャネルブレイクアウト戦略は,ドンチアンチャネルを使用してトレンドを把握し,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")

もっと