이 전략은
이 전략은 주로 트레이딩 신호를 생성하기 위해 듀얼 익스포넌셜 이동 평균 (DEMA) 과 트리플 익스포넌셜 이동 평균 (TEMA) 의 크로스오버를 사용합니다.
DEMA의 공식은
DEMA = 2*EMA1 - EMA2
여기서 EMA1과 EMA2는 N 기간의 기하급수적인 이동 평균입니다. DEMA는 EMA의 부드러움과 반응성을 결합합니다.
TEMA의 공식은
TEMA = 3*(EMA1 - EMA2) + EMA3
여기서 EMA1, EMA2 및 EMA3는 기간 N의 기하급수적인 이동 평균입니다. TEMA는 세 배 평평화로 가짜 브레이크오프를 필터링합니다.
DEMA가 TEMA를 넘을 때 구매 신호가 생성됩니다. DEMA가 TEMA를 넘을 때 판매 신호가 생성됩니다. 크로스오버 원칙에 따라 주기 변환을 적시에 캡처 할 수 있습니다.
이 전략은 DEMA와 TEMA의 크로스오버에서 거래 신호를 생성하여 정확성을 향상시키기 위해 DEMA의 반응성과 TEMA의 필터링 기능을 결합합니다. 그러나 단일 지표 조합은 착각에 시달립니다. 장기적인 안정적인 이익을 위해 체계적인 거래 시스템을 형성하기 위해 멀티 검증 도구가 여전히 필요합니다.
/*backtest start: 2023-12-03 00:00:00 end: 2024-01-02 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DEMA-TEMA Cross Strategy", shorttitle="DEMA-TEMA Cross", overlay=true) // Input options for Double EMA (DEMA) dema_length = input.int(10, title="DEMA Length", minval=1) dema_src = input(close, title="DEMA Source") // Calculate Double EMA (DEMA) dema_e1 = ta.ema(dema_src, dema_length) dema_e2 = ta.ema(dema_e1, dema_length) dema = 2 * dema_e1 - dema_e2 // Input options for Triple EMA (TEMA) tema_length = input.int(8, title="TEMA Length", minval=1) tema_src = input(close, title="TEMA Source") // Calculate Triple EMA (TEMA) tema_ema1 = ta.ema(tema_src, tema_length) tema_ema2 = ta.ema(tema_ema1, tema_length) tema_ema3 = ta.ema(tema_ema2, tema_length) tema = 3 * (tema_ema1 - tema_ema2) + tema_ema3 // Crossover signals for long (small green arrow below candle) crossover_long = ta.crossover(dema, tema) // Crossunder signals for short (small red arrow above candle) crossunder_short = ta.crossunder(dema, tema) plotshape(crossunder_short ? 1 : na, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) plotshape(crossover_long ? -1 : na, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plot(dema, "DEMA", color=color.green) plot(tema, "TEMA", color=color.blue) if (crossover_long) strategy.entry("Long", strategy.long) if (crossunder_short) strategy.entry("Short", strategy.short)