피보나치 리트레이싱 타겟과 함께 ATR 트레일링 스톱 전략

저자:차오장, 날짜: 2024-02-28 17:09:12
태그:

img

전반적인 설명

이 전략은 트렌드를 따르는 전략을 설계하기 위해 평균 참 범위 (ATR) 트레일링 스톱과 피보나치 리트레이스먼트 라인을 결합하여 스톱 손실 보호가 있습니다. 가격이 ATR 트레일링 스톱 라인을 통과하면 전략은 트렌드를 따라 시작합니다. 동시에 피보나치 리트레이스먼트 라인은 트렌드를 따르는, 스톱 손실 및 수익을 취하는 유기적인 조합을 달성하여 가격 목표를 설정하는 데 사용됩니다.

전략 논리

  1. ATR 값과 ATR 후속 정지 라인을 계산합니다. ATR 후속 정지 라인은 ATR 값을 인수로 곱하여 계산됩니다 (예를 들어 3.5).
  2. 이윤 목표로 세 개의 피보나치 리트레이싱 라인을 계산합니다. 피보나치 리트레이싱 라인은 피보나치 비율 (예를 들어 61.8%, 78.6%, 88.6%) 에 따라 ATR 후속 스톱 라인과 새로운 고위 / 낮은 지점 사이에 위치합니다.
  3. 가격이 트렌드를 따르기 위해 ATR 후속 스톱 라인을 통과할 때 구매/판매 신호를 생성합니다.
  4. 3개의 피보나치 리트레이스먼트 라인에 수익을 취하는 목표를 설정합니다.

장점

  1. ATR 스톱 로스는 위험을 효과적으로 통제하고 손실이 확대되는 것을 방지할 수 있습니다.
  2. 피보나치 타겟은 트렌드 도중 적당한 수익을 허용하면서 정상과 바닥을 추구하고 있습니다.
  3. 전략 논리는 간단하고 쉽게 구현할 수 있습니다.
  4. 다양한 시장에 적응하기 위해 ATR 요인 및 피보나치 설정을 조정하는 유연성.

위험성

  1. ATR의 빈번한 스톱 로즈는 다양한 시장에서 발생하여 과도한 거래로 이어집니다.
  2. 회수 및 조정을 놓칠 가능성.
  3. ATR 기간 등에 필요한 파라미터 최적화

강화

  1. 트렌드 필터를 포함해서 다양한 시장에서 거래를 피합니다.
  2. 미흡한 후퇴를 줄이기 위해 재입구 메커니즘을 추가합니다.
  3. ATR 기간, ATR 곱셈, 피보나치 매개 변수 등을 테스트하고 최적화합니다.

요약

이 전략은 두 가지 중요한 기술적 분석 방법을 통합합니다. 트렌드 추적, 위험 통제 및 수익 타겟팅을 위해 ATR 트레일링 스톱 및 피보나치 리트레이싱. 추가 최적화로 더 견고하고 시장 조건에 적응 할 수있는 매우 실용적인 트렌드 거래 전략이 될 수 있습니다.


/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ATR TrailStop with Fib Targets", overlay=true)

// Input parameters
atrPeriod = input(5, title="ATR Period")
ATRFactor = input(3.5, title="ATR Factor")
Fib1Level = input(61.8, title="Fib1 Level")
Fib2Level = input(78.6, title="Fib2 Level")
Fib3Level = input(88.6, title="Fib3 Level")

// ATR Calculation
atrValue = ta.atr(atrPeriod)

// ATR TrailStop Calculation
loss = ATRFactor * atrValue
trendUp = close[1] > close[2] ? (close - loss > close[1] ? close - loss : close[1]) : close - loss
trendDown = close[1] < close[2] ? (close + loss < close[1] ? close + loss : close[1]) : close + loss
trend = close > close[2] ? 1 : close < close[2] ? -1 : 0
trailStop = trend == 1 ? trendUp : trendDown

// Fibonacci Levels Calculation
ex = trend > trend[1] ? high : trend < trend[1] ? low : na
fib1 = ex + (trailStop - ex) * Fib1Level / 100
fib2 = ex + (trailStop - ex) * Fib2Level / 100
fib3 = ex + (trailStop - ex) * Fib3Level / 100

// Plotting
plot(trailStop, title="TrailStop", color=color.red)
plot(fib1, title="Fib1", color=color.white)
plot(fib2, title="Fib2", color=color.white)
plot(fib3, title="Fib3", color=color.white)

// Buy and Sell Signals
longCondition = close > trailStop and close[1] <= trailStop
shortCondition = close < trailStop and close[1] >= trailStop

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


더 많은