ATR 기반의 슈퍼트렌드 전략

저자:차오장, 날짜: 2024-01-18 12:26:33
태그:

img

전반적인 설명

이 전략은 가격이 채널을 통과 할 때 구매 및 판매 신호를 생성하기 위해 평균 진정한 범위 (ATR) 인디케이터를 기반으로 슈퍼 트렌드 채널을 구축합니다. 트렌드 추적 및 스톱 로스 관리의 장점을 결합합니다.

전략 논리

슈퍼트렌드 채널의 상위 및 하위 대역은 다음과 같이 계산됩니다.

상단역 = (최고 가격 + 최저 가격) / 2 + ATR (n) * 요인 하위 대역 = (최고 가격 + 최저 가격) / 2 - ATR (n) * 요인

여기서 ATR (n) 는 n기 평균 진 범위이고 인수는 조절 가능한 매개 변수이며 기본값은 3입니다.

올림 신호는 폐쇄 가격이 상단 범위를 넘을 때 생성됩니다. 폐쇄 가격이 하단 범위를 넘을 때 하림 신호가 생성됩니다. 전략은 이러한 신호에 따라 입출구를 결정합니다.

이점 분석

  • ATR을 사용하여 시장 변동성을 기반으로 채널 범위를 결정하고 효과적으로 트렌드를 추적합니다.
  • 입력 시기를 결정하기 위해 채널 브레이크오웃을 찾고 가짜 브레이크오웃을 피합니다.
  • 변동성이 다른 시장에 적응할 수 있는 요인 매개 변수를 통해 조정 가능한 채널 범위
  • 트렌드 추적 및 중지 손실 관리의 장점을 통합

위험 분석

  • 부적절한 인수 매개 변수 설정은 적당한 수익 취득 또는 과도한 스톱 로스로 이어질 수 있습니다.
  • 시장 통합 도중 자주 거래 신호가 발생할 수 있으며, 잠재적으로 거래가 과잉 될 수 있습니다.
  • ATR 기간과 요소 매개 변수 사이의 일치 최적화 필요

위험 해결 방법:

  • 과도한 스톱 손실을 줄이기 위해 다른 시장에 기반한 요인 매개 변수를 조정합니다.
  • 컨시디션 필터링을 추가하여 통합 중 빈번한 거래를 피합니다.
  • ATR 기간과 일치하기 위해 변동성, 보유 기간 등을 포괄적으로 고려합니다.

최적화 방향

  • 신호를 필터링하고 항목을 최적화하기 위해 다른 지표를 통합
  • 더 많은 수익을 잠금하기 위해 이동 중지 손실 추적을 추가
  • 다른 제품과 시간 프레임에 대한 매개 변수 최적화
  • ATR 기간과 요인 매개 변수 사이의 일치 최적화

요약

이 전략은 트렌드 추적 및 스톱 로스 관리를 위해 슈퍼 트렌드 채널을 사용합니다. ATR 기간과 요인 매개 변수 사이의 일치는 매우 중요합니다. 다음 단계는 매개 변수 조정, 신호 필터링 등을 통해 전략을 더 최적화하여 더 복잡한 시장 환경에 적응 할 수 있습니다.


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

//@version=5
strategy("Supertrend Backtest", shorttitle="STBT", overlay=true)

// Input for ATR Length
atrLength = input.int(10, title="ATR Length", minval=1)
atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01)

// Calculate SuperTrend
[supertrend, direction] = ta.supertrend(atrFactor, atrLength)
supertrend := barstate.isfirst ? na : supertrend

// Define entry and exit conditions
longCondition = ta.crossover(close, supertrend)
shortCondition = ta.crossunder(close, supertrend)

// Plot the SuperTrend
plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend")

// Plot Buy and Sell signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Strategy Entry and Exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)



더 많은