ATRとフィボナッチリトレースメントストップロスに基づくトレンドフォロー戦略


作成日: 2024-02-28 17:09:12 最終変更日: 2024-02-28 17:09:12
コピー: 0 クリック数: 993
1
フォロー
1617
フォロワー

ATRとフィボナッチリトレースメントストップロスに基づくトレンドフォロー戦略

概要

この策略は,平均実際の波動範囲 ((ATR) とフィボナッチ・リターンラインを組み合わせて,ストップ・プロテクションのあるトレンド・トラッキング策略を設計する.価格がATR・リターン・ストップ・ラインを破るとき,トレンド・トラッキングを行う.同時に,フィボナッチ・リターンラインを使用して価格目標を設定し,トレンド・トラッキングとストップ・ストップの有機的な配合を実現する.

戦略原則

  1. ATR値とATR撤回ストップラインを計算する. ATR撤回ストップラインはATR値を ((例えば3.5) の因数で掛けると得られる.
  2. 3つのフィボナッチ・リトラクションラインをストップ目標として計算する.フィボナッチ・リトラクションラインの位置は,ATRリトラクション・ストップラインから新高/新低の間のフィボナッチ比率である (例えば61.8%,78.6%,88.6%).
  3. 価格がATRの撤回ストップラインを突破すると,買/売シグナルが生み出され,トレンド追跡が行われます.
  4. 目標は3つのフィボナッチ撤退線である.

戦略的優位性

  1. ATRの止損は,リスクを効果的に制御し,損失の拡大を防ぐことができます.
  2. Fibonacciの目標は,トレンドの中でより多くを稼ぐことであり,同時に,上昇と下落を追いかけるのを避けることです.
  3. 戦略操作の論理は明確でシンプルで,実行しやすい.
  4. ATR比率因子とフィボナッチ設定は,異なる市場に対応するために柔軟に調整できます.

戦略リスク

  1. 震動状態では,ATR停止が頻繁に誘発され,操作が頻繁になる危険性がある.
  2. 誤った調整や調整の危険性がある.
  3. ATR周期パラメータなどの合理的なパラメータ最適化が必要である.

最適化の方向

  1. 動向を判断する指標を組み合わせて,震動の状況で操作することを避ける.
  2. 再入学メカニズムが追加されれば,再入学を逃すリスクが軽減されます.
  3. ATR周期,ATR倍数,フィボナッチパラメータのテストと最適化.

要約する

この戦略はATRのストップとフィボナッチ目標の2つの重要な技術分析方法を統合し,トレンドの中で利益を最適化することも,ストップを使用してリスクを制御することもできます.これは非常に実用的なトレンド追跡戦略です.さらなる最適化により,戦略をより安定させ,実態に適応させることができます.

ストラテジーソースコード
/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ATR TrailStop with Fib Targets", overlay=true)

// Input parameters
atrPeriod = input(5, title="ATR Period")
ATRFactor = input(3.5, title="ATR Factor")
Fib1Level = input(61.8, title="Fib1 Level")
Fib2Level = input(78.6, title="Fib2 Level")
Fib3Level = input(88.6, title="Fib3 Level")

// ATR Calculation
atrValue = ta.atr(atrPeriod)

// ATR TrailStop Calculation
loss = ATRFactor * atrValue
trendUp = close[1] > close[2] ? (close - loss > close[1] ? close - loss : close[1]) : close - loss
trendDown = close[1] < close[2] ? (close + loss < close[1] ? close + loss : close[1]) : close + loss
trend = close > close[2] ? 1 : close < close[2] ? -1 : 0
trailStop = trend == 1 ? trendUp : trendDown

// Fibonacci Levels Calculation
ex = trend > trend[1] ? high : trend < trend[1] ? low : na
fib1 = ex + (trailStop - ex) * Fib1Level / 100
fib2 = ex + (trailStop - ex) * Fib2Level / 100
fib3 = ex + (trailStop - ex) * Fib3Level / 100

// Plotting
plot(trailStop, title="TrailStop", color=color.red)
plot(fib1, title="Fib1", color=color.white)
plot(fib2, title="Fib2", color=color.white)
plot(fib3, title="Fib3", color=color.white)

// Buy and Sell Signals
longCondition = close > trailStop and close[1] <= trailStop
shortCondition = close < trailStop and close[1] >= trailStop

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)