골든 비율의 평균 진정한 범위 브레이크업 전략

저자:차오장, 날짜: 2024-02-26 15:02:26
태그:

img

전반적인 설명

이 전략은 트레이딩 신호를 생성하기 위해 ATR 지표를 활용하는 브레이크아웃 전략이다. 이 전략은 엔트리 신호를 생성하기 위해 이동 평균 시스템을 사용하고 긴 및 짧은 포지션을 구축하기 위해 황금 비율에 기반한 증폭 된 ATR 채널을 사용합니다. 트렌드에 크게 이익을 얻고 범위 제한 시장에서 작지만 안정적인 이익을 얻을 수 있습니다.

원칙

코드는 폐쇄 가격의 기간 동안 ATR을 계산하고, 상위 대역으로 1.618로 증폭하고, 하위 대역으로 2.618로 증폭합니다. EMA와 결합하면 볼링거 채널 브레이크아웃 시스템을 형성합니다. 가격이 하위 대역을 상향으로 돌파할 때 길게 이동하고, 상위 대역을 하향으로 돌파할 때 짧게 이동하여 트렌드를 따르십시오.

장점

  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)

더 많은