ATR トレイリングストップ戦略とフィボナッチリトレースメント目標

作者: リン・ハーンチャオチャン開催日:2024年2月28日 17:09:12
タグ:

img

概要

この戦略は,ストップ損失保護のトレンドフォロー戦略を設計するために,平均真の範囲 (ATR) トレイリングストップとフィボナッチリトレースメントラインを組み合わせます.価格がATR トレイリングストップラインを突破すると,戦略はトレンドをフォローし始めます.同時に,フィボナッチリトレースメントラインは価格目標を設定するために使用され,トレンドフォロー,ストップ損失および利益の有機的な組み合わせを達成します.

戦略の論理

  1. ATR値とATR遅延停止線を計算する.ATR遅延停止線は,ATR値を因数 (例えば3.5) で掛けることで計算される.
  2. 利益目標として3つのフィボナッチリトレースメントラインを計算する.フィボナッチリトレースメントラインは,フィボナッチ比率 (例えば61.8%,78.6%,88.6%) に基づいて,ATRのトレーリングストップラインと新しい高低点の間に位置する.
  3. 価格がATRのストップラインを突破してトレンドを追うときに 買い/売る信号を生成する.
  4. 3つのフィボナッチリトレースラインで 利益目標を設定します

利点

  1. ATRストップロスはリスクを効果的に制御し,損失の拡大を防ぐことができます.
  2. フィボナッチ目標では トレンド期に適正な利益が得られ トップとボトムを追いかけるのは避けられます
  3. 戦略の論理はシンプルで 実行も簡単です
  4. ATR 因数とフィボナッチ 設定を異なる市場に合わせて調整する柔軟性

リスク

  1. ATRの頻繁なストップ・ロスは,変動市場でのストップ・ロスを誘発し,過剰な取引につながります.
  2. 引き下げや調整が欠けている可能性
  3. ATR 期間等に必要となるパラメータ最適化

強化

  1. トレンドフィルタを組み込み,変動市場での取引を避ける.
  2. 欠落した引き下げを減らすため 再入力のメカニズムを追加します
  3. ATR 期間,ATR マルチプリキュア,フィボナッチパラメータ等をテストし最適化します

概要

この戦略は,トレンドフォロー,リスクコントロール,利益ターゲティングのための2つの重要な技術分析方法,ATRトレーリングストップとフィボナッチリトラセーションを統合している.さらなる最適化により,より堅牢で市場状況に適応する非常に実践的なトレンド取引戦略になり得る.


/*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)


もっと