
この戦略は,双指数移動平均と三指数移動平均の交差戦略と呼ばれる.この戦略は,双指数移動平均と三指数移動平均の交差信号を組み合わせて,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の波動作用を組み合わせて,取引の精度を向上させることができます.しかし,単一の指標の組み合わせは錯覚の影響を受けやすく,依然として複数の検証ツールの補助が必要で,長期にわたって安定した利益を得るために,システム的な取引システムを形成します.
/*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)