
동적 중단 추적 전략은 주식의 평균 실제 변동 범위 ATR을 기준으로 계산하여 사용자 설정 ATR 계수 동적으로 중지 라인 및 추적 라인을 설정하여 중지 추적의 목적을 달성합니다. 주식 가격이 추적 라인을 돌파 할 때, 전통적인 트렌드 추적 전략을 사용하여 다단계 입장을 구축합니다. 주식 가격이 중지 라인을 넘어서는 경우, 역전 전략을 사용하여 빈 상위 입장을 구축하고, 양방향 거래를 사용하여 이익을 얻습니다.
이 전략은 주로 ATR 기술 지표의 평균 실제 변동 범위를 계산하고, 사용자 입력된 ATR 계수를 주식의 브레이크 구매 및 스톱 판매의 기초로 사용합니다. 구체적으로, 전략은 먼저 주식의 지난 120 일 ATR 값을 계산하고, 사용자 설정한 판매 ATR 계수를 곱하면 스톱 판매 참조 가격, 즉 스톱 손실 라인을 얻습니다. 구매 ATR 계수를 곱하면 구매 참조 가격, 즉 추적 라인을 얻습니다.
이 전략은 동시에 중단 선과 추적 선을 그리는데, 이 두 선의 위치는 주가 변동에 따라 변한다. 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)