この戦略は"二倍および三倍指数関数移動平均交差戦略"と呼ばれる.入口と出口を決定するために,二倍指数関数移動平均 (DEMA) と三倍指数移動平均 (TEMA) の交差信号を組み合わせます.
この戦略では,主に二重指数関数移動平均値 (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)