이중 이동 평균 변동성 추적 전략

저자:차오장, 날짜: 2024-02-29 11:15:08
태그:

img

전반적인 설명

이중 이동 평균 변동성 추적 전략은 골든 크로스 데드 크로스 및 이동 평균 변동성 추적 전략의 아이디어를 통합합니다. 다른 기간과 간단한 이동 평균 (SMA) 의 교차를 계산함으로써 트렌드를 판단하기 위해 황금 십자가와 죽은 십자가를 실현합니다. 한편, 볼링거 밴드와 VIDYA 인덱스를 결합하여 시장 추세와 변동성을 판단하여 효과적인 트렌드 식별과 주요 전환점을 효율적으로 캡처합니다.

전략 논리

이 전략의 핵심 지표는 단순 이동 평균 (SMA), 볼링거 밴드 및 변수 지수 동적 평균 (VIDYA) 이다. 이 전략은 서로 다른 기간으로 빠른 SMA와 느린 LMA를 설정한다. 빠른 및 느린 라인의 황금 십자가는 긴 신호로 작용하고, 죽음의 십자가는 출구 신호로 작용한다. 한편, 그것은 보유 기간 동안 볼링거 밴드 이상 또는 아래에 가격의 돌파를 모니터링한다. 변동성 정보를 통합하는 VIDYA는 현재 트렌드 방향과 힘을 판단한다.

특히, 긴 신호 논리는 빠른 SMA가 느린 LMA를 넘어서고 가격이 VIDYA 곡선 위에있을 때 발생하며 상승 추세와 변동성 확장을 나타냅니다. 빠른 SMA가 느린 LMA를 넘어서거나 가격이 VIDYA 곡선 아래에 떨어지면 출구 신호가 발생하여 트렌드 역전 또는 변동성 수축을 암시합니다.

이점 분석

이 전략의 가장 큰 장점은 시장 상황을 판단하기 위해 이중 지표를 결합하여 의사 결정의 정확성을 향상시키는 것입니다. 구체적으로 장점은 다음과 같습니다.

  1. 황금색 십자와 죽은 십자 전략은 트렌드 전환점을 식별하는 데 간단하고 효과적입니다.
  2. VIDYA 인덱스는 시장 변동성의 변화를 동적으로 추적합니다.
  3. 볼링거 밴드는 가격 변동에 신속히 반응합니다.

요약하자면,이 전략은 트렌드, 리버전 및 변동성 차원의 정보를 통합합니다. 시장 변화에 더 빨리 반응하고 알파를 생성 할 수있는 가능성이 더 높습니다.

위험 분석

이 전략은 많은 장점을 가지고 있지만, 여전히 주의해야 할 몇 가지 위험이 있습니다.

  1. 부적절한 매개 변수 설정은 과잉 거래, 비용 증가 및 미끄러짐을 유발할 수 있습니다.
  2. 이중 지표들 사이의 충돌 신호는 가장 좋은 입구 지점을 놓치는 결과를 초래할 수 있습니다.
  3. 백테스트 과잉 적합성 위험이 존재합니다. 실제 거래 성과는 백테스트 결과와 크게 다를 수 있습니다.

위의 위험을 완화하기 위해 매개 변수 최적화, 신호 간의 우선 순위 규칙, 미끄러짐 제어 및 다른 시장 환경에서 견고성 테스트가 권장됩니다.

최적화 방향

주요 최적화 차원은 매개 변수 조정 및 필터 상태 설정에 있습니다.

  1. SMA와 LMA 기간 매개 변수를 최적화합니다.
  2. 볼링거 밴드의 대역폭 매개 변수를 조정합니다.
  3. VIDYA에서 알파 평형 매개 변수를 최적화하세요.
  4. 가격 또는 부피 필터 조건을 추가합니다.

매개 변수 최적화와 규칙 정밀화 조합은 안정성과 수익성을 더욱 향상시킬 수 있습니다.

결론

이중 이동 평균 변동성 추적 전략은 시장 조건을 결정하기 위해 여러 지표를 활용하여 가격 변동 상황을 모니터링하는 동안 트렌드 전환점을 포착합니다. 위험과 수익을 균형 잡는 매력적인 전략입니다. 매개 변수 최적화 및 워크 포워드 분석에 대한 더 많은 탐구는 라이브 거래에서 만족스러운 수익을 얻을 것으로 예상됩니다.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Golden Cross and Progressive Trend Tracker", shorttitle="GCC-PTT", overlay=true)

// Inputs
fastMA_period = input(50, title="Fast MA Period")
slowMA_period = input(200, title="Slow MA Period")
src = input(close, title="Source")
lengthBB = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
mavType = input.string(title="Moving Average Type", defval="VAR", options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// Calculate Moving Averages for Golden Cross
fastMA = ta.sma(src, fastMA_period)
slowMA = ta.sma(src, slowMA_period)
bullish_cross = ta.crossover(fastMA, slowMA)
bearish_cross = ta.crossunder(fastMA, slowMA)

// Progressive Trend Tracker Components (Adjusted for NA assignment issue)
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = math.sum(vud1, length)
    vDD = math.sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    VAR = 0.0 // Adjusted here, assign an initial value
    VAR := ta.ema(src * math.abs(vCMO), length)
    VAR

VAR = Var_Func(src, 14) // Example VAR calculation, adjust as needed

// Bollinger Bands for dynamic support and resistance
BBandTop = fastMA + mult * ta.stdev(src, lengthBB)
BBandBot = fastMA - mult * ta.stdev(src, lengthBB)

// Plotting
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plot(BBandTop, color=color.green, title="Bollinger Band Top")
plot(BBandBot, color=color.red, title="Bollinger Band Bottom")
plot(VAR, color=color.purple, title="VAR", linewidth=2)

// Strategy Logic (Adjusted for strategy use)
// Long Entry when bullish cross and close above VAR
// Exit when bearish cross or close below VAR
if (bullish_cross and close > VAR)
    strategy.entry("CGC_PTT_Long", strategy.long)
if (bearish_cross or close < VAR)
    strategy.close("CGC_PTT_Long")


더 많은