概要:ATRトラッキングストップロズ戦略は,平均実波幅指標に基づいてストップロスを動的に設定する取引戦略である.この戦略は,価格変動が大きい外為取引品種に適用され,市場変動を動的に追跡してストップロスを設定し,大きなトレンドで利益を捕捉しながらリスクを制御する.
この戦略は,AVERAGE指標 ((価格の均線) を計算し,ATR指標をベースに計算された上線DIFFと下線DIFFLOWを計算することで,取引チャネルを形成する.価格が上線DIFFを突破するときに多頭し,価格が下線DIFFLOWを突破するときに空頭し,ATR動的にストップ・ロスを設定して,ストップ・ロスの平衡に達する.
具体的には,戦略はまず価格のシンプル移動平均AVERAGEとATR指標を計算し,ATR値の倍数係数で上線DIFFと下線DIFFLOWを計算する.これは,通路の上下境界がDIFFとDIFFLOWによって決定される取引チャネルを形成する.価格が上線を突破すると,多頭ポジションを行う.価格が下線を突破すると,空頭ポジションを行う.さらに,ストップロスはATR値の変化とともに動的に変化し,変化する.
このようにして,戦略は,大きなトレンドで継続的に多額の空白を行い,利益をキャプチャし,同時にATRのダイナミック・トラッキング・ストップでリスクを制御することができます.これは,大きな変動を持つ品種に適しています.
この戦略の利点は以下の通りです.
ATR指標を使用して動的ストップを行うことで,市場の波動程度に応じてストップを柔軟に設定し,ストップがあまりにも近くまたはあまりにも遠くないことを避けることができます.
取引チャネルを確立し,大きなトレンドの平均値回帰の機会を捕捉する.価格が停滞するチャネルで,この戦略は,より良い資金活用率を得ることができる.
継続的に多額の空調でトレンドに参加し,価格の上昇や下落を予測する必要なく,トレンドを追跡してよりよい利益を得る.
簡単なパラメータ設定と取引ルール,理解しやすく実行し,自動取引に適しています.
資金活用率が高いため,突破口を予測する必要がなく,継続的な取引により利益を得る機会が増える.
この戦略にはいくつかのリスクがあります.
ATRパラメータが大きすぎると,止損距離が遠すぎて,リスクを効果的にコントロールできない.ATR係数を1〜3倍の日間ATRに設定することが推奨されている.
整合市場では,交投が活発で,価格の変動が大きいため,頻繁にストップを触発する. ストップを触発する頻度を下げるためにATR係数を適切に調整することができる.
価格がチャネルを突破した後,逆転して戻ってくる場合もあります.この場合,戦略は損失を生じます. トレンドフィルターと組み合わせて,トレンド方向がチャネルを突破したときにのみ入場できます.
大幅な異動時,止損はあまり良い保護作用をしないかもしれない。最大止損設定を追加することを検討し,止損が過大にならないようにする。
この戦略は以下の方法で最適化できます.
ATRパラメータを最適化して,適切なATR倍数係数を見つけ,ストップロスを追跡し,ストップロスが過度に敏感にならないようにする.
トレンド判断指数に追加し,トレンドが上昇する時にだけ多額の取引を行い,トレンドが低下する時に空白を行い,非トレンド取引を避ける.
異なる品種に対して別々にテストパラメータを使用して,それぞれの品種に適したパラメータの組み合わせを見つけます.
入場機会を最適化するために,突破通路の中軸での入場を考慮することができる.
持株規模を拡大し,損失を抑えることが必要だ.
ATRトラッキングストップ戦略は,取引チャネルを確立し,大きなトレンドで継続的に取引して利益をキャプチャし,同時にATRの動的設定のストップを活用し,リスクを制御する.この戦略は,波動性の高い品種に適用され,より良い資金活用率を得ることができます.実践では,パラメータを最適化する必要があり,トレンド判断などの追加を検討してさらに完善することができます.全体的に,ATRトラッキングストップ戦略は,シンプルで実用的なトレンドトラッキング戦略です.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Investoz
//@version=4
strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input(26, type=input.integer, minval=1, title="Length")
mul = input(1, type=input.float, minval=0, title="Length")
mullow = input(2, type=input.float, minval=0, title="Length")
price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow
bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)
FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2019)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
startTimeOk() => true
if (startTimeOk())
strategy.entry("KOP", strategy.long, when=bull_cross)
strategy.close("KOP", when=bear_cross)
strategy.entry("SALJ", strategy.short, when=bear_cross)
strategy.close("SALJ", when=bull_cross)
plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)