ドンチャンチャネルブレイクアウト戦略


作成日: 2024-03-22 16:13:58 最終変更日: 2024-03-22 16:13:58
コピー: 0 クリック数: 856
1
フォロー
1617
フォロワー

ドンチャンチャネルブレイクアウト戦略

戦略概要

唐津通路突破策は,トレンドを追跡型の量化取引策である.この策は,唐津通路を利用して市場トレンドを捉え,同時にATRSL移動ストップを活用してリスクを制御する.価格が唐津通路を突破すると,戦略はポジションを多く開く.価格がATRSL移動ストップラインを下回ると,戦略は平仓する.

戦略原則

  1. 唐津通路の計算: ユーザーからの入力donLengthパラメータを計算するdonLength周期的最高値と最低値が,唐通路の上線としてそれぞれdonUpperそして下線donLower中央線donBasis軌道上下の平均値である.
  2. ATRSL移動ストップを計算する:ユーザ入力によるAP2 そして AF2ATR値を計算するパラメータSL2価格が上がると,SCストップ価格を移動するTrail2[1]動的調整 移動ストップ価格Trail2
  3. ポジション開設条件:当面の閉盘価格で唐津通路を走行する際,ポジションを開設する.
  4. 平仓条件:現在の閉店価格の下でのATRSL移動止損ラインを横断すると平仓.

戦略的優位性

  1. トレンド追跡: トンチアン通路のトレンド方向を判断し,市場トレンドを効果的に捉える.
  2. ダイナミックストップ:ATRSLの移動ストップを使用し,市場の変動に応じてストップポジションを動的に調整してリスクをコントロールできます.
  3. ユーザが自分のニーズに合わせて調整できるdonLengthAP2 そして 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")