이동평균 골든비율 증폭 ATR 돌파전략


생성 날짜: 2024-02-26 15:02:26 마지막으로 수정됨: 2024-02-26 15:02:26
복사: 0 클릭수: 684
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동평균 골든비율 증폭 ATR 돌파전략

개요

이 전략은 ATR 지수를 사용하여 거래 신호를 만드는 돌파구 전략이다. 이 전략은 평선 시스템을 사용하여 거래 신호를 생성하고, 금분할을 확대한 후 ATR 지수에 상하 채널을 구축하는 다중 공백 포지션을 구축한다. 추세에서 큰 이익을 얻을 수 있으며, 불안정한 상황에서 작은 안정적인 이익을 얻을 수 있다.

전략 원칙

코드는 종결 가격의 ATR 주기 지표를 취하고, 1.618배를 상반도로 확대하고, 2.618배를 하반도로 확대하여, 평행선 e마와 결합하여 브린 통로 돌파 거래 시스템을 구축한다. 가격이 하반구에서 위로 돌파 할 때 더 많이하고, 가격이 상반구에서 하반구로 돌파 할 때 공백을 만들고, 트렌드 추적 수익을 얻는다.

전략적 이점

  1. ATR 지표는 시장의 변동성을 효과적으로 포착하고, 변동성을 사용하여 적응형 거래 통로를 구축하여 고정된 파라미터를 사용하여 발생하는 과도한 적합성을 피합니다.
  2. 금분할을 확대한 후 ATR의 상하철은 거래 빈도를 증가시키지 않고 수익 공간을 확장할 수 있다.
  3. 일선 시스템은 단기 노이즈를 필터링하고, ATR 채널과 함께 중장선 트렌드를 잠금할 수 있다.

전략적 위험

  1. ATR 지표는 극단적인 상황에 대응하는 데 지연되어 있습니다.
  2. 금을 분할할 때 부적절한 배수가 거래 빈도를 높일 수 있습니다.
  3. 긴 주기 평균선 전환 신호의 지연.

전략 최적화

  1. ATR 지표는 시장 변동률 지수 VIX와 결합하여 사용하거나 조정할 수 있는 확대 배수를 고려할 수 있다.
  2. 평균선 시스템은 다중 시간 주기 EMA를 도입하여 적응 거래 시스템을 구축할 수 있다.
  3. 한 거래의 최대 손실을 줄이기 위해 손해 방지 장치를 설정할 수 있습니다.

요약하다

이 전략은 일률적인 필터링, ATR 채널 추적 및 골드 분할 원칙을 종합적으로 적용한다. 중장선 트렌드를 효과적으로 추적할 수 있으며, 좋은 안정성을 가지고 있다. 파라미터를 조정하여 다양한 품종의 다른 주기적 응용에 적응할 수 있으며, 그것의 좋은 시장 적응성을 탐구할 가치가 있다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)