ATR의 동적 수익 목표 및 중단 손실 전략

저자:차오장, 날짜: 2023-09-14 16:22:53
태그:

전략 논리

이 전략은 동적인 수익 목표와 현재 가격과 변동성에 따라 조정되는 손해를 멈추는 것을 사용합니다.

논리는 다음과 같습니다.

  1. 한 기간 (예를 들어 20일) 동안의 평균 실제 범위 (ATR) 를 계산합니다.

  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)
    
    

더 많은