
動的ストップ追及戦略 ストップ追及策の目的は,株の平均実際の変動範囲ATRを基準として計算し,ユーザが設定したATR系数と組み合わせて,動的にストップラインと追及ラインを設定し,ストップ追及の目的を達成する. 株価が追及ラインを破るとき,従来のトレンド追跡戦略を使用して多頭位を確立し,株価がストップラインを破るとき,逆転戦略を使用して空頭位を確立し,双方向取引を利用して利益を得る.
この戦略は主にATR技術指標を用いて株価の平均実際の変動範囲を計算し,利用者の入力されたATR係数を株式のブレイク買いとストップセールの根拠として使用する.具体的には,戦略は,まず株式の過去120日のATR値を計算し,次に利用者が設定した売り出品ATR係数を止損売り出品レファレンス価格,すなわちストップスローラインに掛け,購入ATR係数を買い入品レファレンス価格,すなわちフォローアップラインに掛けます.今日の最高価格がフォローアップラインを突破したときに,トレンドフォロー戦略を採用し,多項ポジションを確立する.今日の最低価格がストップスローラインを突破し,多項ポジションを保有しているときに,逆転戦略を採用し,空頭ポジションを確立する.
この戦略は,停止線と追及線を同時に描画し,この2つの線の位置は,株価の変動に応じて変化し,一定の動的追跡機能を有する.ATR指標は,株の平均的な実際の変動の程度をよく反映し,ATR指標を使用して停止追及線を設定し,株の大幅な変動による損失を一定程度回避することができる.
この戦略は,一般的に典型的なストップ・フォロー・戦略であり,その核心構想は,ATR指数に基づいてストップ・ラインとフォロー・ラインを設定し,トレンドを追跡することである.この戦略の優点は,双方向取引が可能であり,ポジションを柔軟に保持することであり,ATR指数を使用してリスクを制御し,高波動の株に適している.しかし,買取り規則が単純であるため,ある種の盲目追跡のリスクが存在する.数値の設定が不適切であることも,戦略の効果に影響を与える.将来,買取りの機会の判断,ポジションの規模の管理,過度の取引の削減などの観点から最適化することができ,戦略の効果をより安定させる.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © phobo3s
//@version=4
strategy("ATR Stop Buy Strategy",shorttitle="ATR-ST",initial_capital=1000, overlay = true, default_qty_type = strategy.percent_of_equity, pyramiding = 5, default_qty_value = 20, commission_type = strategy.commission.cash_per_order, commission_value = 1, calc_on_every_tick = true)
daysBack = input(defval=120, title="Days Back", type=input.integer)
sellCoeff = input(defval=1.5, title="Selling Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)
buyCoeff = input(defval=1.2, title = "Buying Coefficent For ATR", type=input.float, minval= 0.01, step=0.1)
fromDate = timenow - (daysBack*24*60*60*1000)
toDate = timenow
ATR = atr(14)
stopLossPoint = ATR * sellCoeff
buyPoint = ATR * buyCoeff
StoplossLine = close[1] - stopLossPoint[1]
BuyLine = close[1] + buyPoint[1]
if (high > BuyLine and time >= fromDate and time <= toDate )
strategy.entry("GG", strategy.long, comment="Gir")
if (low < StoplossLine and strategy.position_avg_price < close and time >= fromDate and time <= toDate )
strategy.entry("GG", strategy.short, comment="Çık")
//longFlags = close < StoplossLine
//shortFlags = close > BuyLine
//plotshape(shortFlags, style=shape.triangledown, location=location.abovebar, color=color.red)
//plotshape(longFlags, style=shape.triangleup, location=location.belowbar, color=color.blue)
plot(StoplossLine)
plot(BuyLine)