더블 지수 이동 평균 교차 전략


생성 날짜: 2023-11-23 17:34:06 마지막으로 수정됨: 2023-11-23 17:34:06
복사: 3 클릭수: 762
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 지수 이동 평균 교차 전략

개요

이중 지수 이동 평균 크로스 오버 전략 (Dual Exponential Moving Average Crossover Strategy) 은 전형적인 트렌드 추적 전략이다. 그것은 상이한 파라미터의 이중 지수 이동 평균의 골드 포크와 데드 포크를 사용하여 시장의 흐름을 판단하고 그에 따라 더 많은 코스 오버한다.

전략 원칙

이 전략은 동시에 3개의 다른 파라미터의 이중 지수 이동 평균을 사용한다: DEMA(8), DEMA(20) 및 DEMA(63) ᆞ 이중:

  • DEMA ((8)) 는 단기적 추세를 파악하기 위해 가장 빠르게 반응합니다.
  • DEMA ((20) 는 좀 더 느려서 중기 트렌드를 파악하기 위해 사용된다.
  • DEMA ((63) 는 가장 느리게 반응하여 장기적인 트렌드 방향을 판단한다.

단선 DEMA(8) 위가 중선 DEMA(20) 과 느린 DEMA(63) 을 통과할 때, 아래에서 위쪽으로 역전되는 것을 나타내고, 더 많은 것을 한다. 단선 DEMA(8) 아래가 중선 DEMA(20) 과 느린 DEMA(63) 을 통과할 때, 위에서 아래로 역전되는 것을 나타내고, 공백을 한다.

우위 분석

단일 이동 평균에 비해 쌍 지수 이동 평균은 가격 변화에 더 민감하여 트렌드 전환점을 더 일찍 발견 할 수 있습니다. 이 전략은 여러 시간 동안 쌍 지수 라인을 통합하여 시장 추세 방향을 효과적으로 추적 할 수 있습니다.

여러 시간 동안 DEM 라인을 조합하여 거래 신호 품질을 향상시키고 가짜 돌파구를 피합니다. 동시에, 전략은 세 개의 라인이 교차 할 때만 신호를 생성하여 너무 자주 거래를 피합니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 3선 교차 신호가 적어 거래 기회를 놓칠 수 있습니다.
  2. 급격한 변동이 있을 때, DEM의 교차선이 지연되어 가격 변화에 적절하게 대응할 수 없습니다.

이동 평균 변수를 최적화하고 필터링 조건을 추가함으로써 위험을 더 개선하고 제어 할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 이동 평균의 변수를 최적화하여 다른 시장의 특성에 더 적합하게 만듭니다.
  2. 거래량, 변동율 등의 필터링 조건을 높여서 잘못된 신호를 방지합니다.
  3. MACD, KDJ 등과 같은 다른 지표와 함께 가짜 신호를 필터링합니다.
  4. 단편적 손실을 통제하기 위한 손실을 막는 전략을 강화하고,
  5. 포지션 관리를 최적화하여 수익률이 손실률보다 높게 유지됩니다.

요약하다

쌍 지수 이동 평균 경로 전략은 전체적인 아이디어가 명확하고, 여러 시간 동안 DEM의 조합을 사용하여 시장 추세 방향을 효과적으로 판단하는 전형적인 추세 추적 전략이다. 이 전략은 실제 필요에 따라 파라미터 최적화, 필터 조건 추가, 손실 관리 등의 방법으로 개선될 수 있으므로 더 나은 전략 효과를 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Noldo

//@version=4
//Quoted by Author HighProfit

//Lead-In
strategy("Double Exponential Moving Average 8-20-63 Strategy", 
         shorttitle="DEMA-8-20-63", 
         overlay=true,
         max_bars_back = 5000,
         initial_capital=100000, 
         max_bars_back = 5000,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1,
         pyramiding = 0)

short = input(8, minval=1)
srcShort = input(ohlc4, title="Source Dema 1")

long = input(20, minval=1)
srcLong = input(low, title="Source Dema 2")

long2 = input(63, minval=1)
srcLong2 = input(close, title="Source Dema 3")
e1 = ema(srcShort, short)
e2 = ema(e1, short)
dema1 = 2 * e1 - e2
plot(dema1, color=color.green, linewidth=2)

e3 = ema(srcLong, long)
e4 = ema(e3, long)
dema2 = 2 * e3 - e4
plot(dema2, color=color.blue, linewidth=2)

e5 = ema(srcLong2, long2)
e6 = ema(e5, long2)
dema3 = 2 * e5 - e6
plot(dema3, color=color.black, linewidth=2)

longC  = dema1 > dema2 and dema1 > dema3
shortC = dema1 < dema2 and dema1 < dema3 

alertlong  = longC and  not longC[1]
alertshort = shortC and not shortC[1]


strategy.entry("Long" , strategy.long , when = longC ,comment="Long")
strategy.entry("Short", strategy.short, when = shortC,comment="Short")

// Alerts 

alertcondition(longC  , title='Long' , message=' Buy  Signal ')
alertcondition(shortC , title='Short', message=' Sell Signal ')