2倍と3倍指数関数移動平均のクロスオーバー戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-03 16:47:08
タグ:

img

I. 戦略の概要

この戦略は"二倍および三倍指数関数移動平均交差戦略"と呼ばれる.入口と出口を決定するために,二倍指数関数移動平均 (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下を横切ると,販売信号が生成される.クロスオーバー原理に従って,周期変換をタイミングで捕捉することができる.

III. 利点

  1. DEMAとTEMAの両方が EMAを最適化し,取引精度を向上させる.
  2. DEMAは価格変動をスムーズにします TEMAは偽造をフィルタリングします 協調性を作り 勝率を向上させます
  3. DEMAとTEMAを組み合わせると 交差信号がより信頼できます
  4. クロスオーバー原則に基づいて 周期変換をタイムリーに記録する

IV リスクと解決策

  1. 波動の頻度で交差すると 誤った信号が出る パラメータ調整が必要
  2. 不適切なパラメータ設定は信号品質に影響します.パラメータ最適化が必要です.
  3. 基本的検証の欠如 他の指標やモデルが役立つ

V.最適化

  1. DEMAとTEMAのパラメータをテストして最適化して 最適な組み合わせを見つけます
  2. フィルタリングのための他の技術指標を追加します.例えば,トレンドのKDJ.
  3. 機械学習予測を追加して 信号を検証し 誤った信号を減らします
  4. 取引量や感情をチェックして 真のクロスオーバーと偽のクロスオーバーを判断します

VI.要約

この戦略は,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)


もっと