ATRの動的利益目標とストップ損失戦略

作者: リン・ハーンチャオチャン,日付: 2023-09-14 16:22:53
タグ:

戦略の論理

この戦略は,動的な利益目標と,現在の価格と変動に基づいて調整されるストップ損失を使用します.

論理的には

  1. 平均実範囲 (ATR) を計算する (例えば20日)

  2. 上昇傾向では,利益目標/ストップは最高価格マイナスATR倍数

  3. ダウントレンドでは,利益目標/ストップは最低価格加 ATR倍数

  4. 価格が利益目標/ストップを上回る場合の逆取引

  5. 価格が利益目標/ストップを超えると傾向が変化する

  6. 新動向状況に基づいて利益目標/停止調整

この戦略はATRを活用して ダイナミックな後続利益目標とストップを自動的に設定します これにより,利益を間に合って固定し,過度の損失を防ぐことができます

利点

  • ATRは自動的に利益/停止レベルを計算します

  • ダイナミックな調整トレイル リアルタイム価格

  • 利得の確保と停止の管理

リスク

  • ATRパラメータは最適化が必要です

  • 近づいて止まるなら 止められる

  • リアルタイムでATRの変化を監視する必要がある

概要

この戦略は,ATRを使用して自動トラッキングのために動的に利益/ストップレベルを設定する.ATRチューニングはストップパフォーマンスを改善することができます.しかし,過度に緊密なストップには注意が必要です.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Dhananjay Volatility stop strategy v1.0", overlay=true)


length = input(20)
mult = input(1)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=line, linewidth=2)

bearish = close < vstop 
bullish = close > vstop 


if (bullish)
    strategy.entry("Buy", strategy.long, 1)
    
    

if (bearish)
    strategy.entry("Sell", strategy.short, 1)
    
    

もっと