DEMA 双指数指数移動平均戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-26 20:28:11
タグ:

概要

DEMAのダブル指数関数移動平均戦略は,DEMA (ダブル指数関数移動平均) をベースとした短期取引戦略である.DEMAのクロスオーバーで取引することで短期的な価格動向を把握し利益を生むことを目的とした,移動平均のスムーズ性とEMAの迅速な応答を組み合わせている.

戦略の論理

この戦略は主に DEMAの高速線と DEMAの遅い線との間の 金色の十字と死の十字を頼りに 購入・販売信号を決定します

具体的には,高速線は以下のように計算されます.

demaFast = 2 * ema(close, fastPeriod) - ema(ema(close, fastPeriod), fastPeriod)

遅いラインは

demaSlow = 2 * ema(close, slowPeriod) - ema(ema(close, slowPeriod), slowPeriod)

fastPeriod と slowPeriod は,順番の速行と遅行の期間を表しています.

速い線がスローラインを横切ると,買い信号が生成され,速い線がスローラインを横切ると,売り信号が生成されます.

buy = crossover(demaSlow, demaFast)
sell = crossunder(demaSlow, demaFast) 

戦略はDEMAラインクロスオーバーに基づいて取引方向を決定します

利点分析

従来の移動平均値と比較して,DEMA線はより敏感であり,価格変動により早く反応することができます. これにより,戦略はより短期的な取引機会を把握することができます.

また,DEMA線は 移動平均のスムーズさを組み込み, 市場のノイズの一部をフィルタリングし, 誤った信号を避けるのに役立ちます.

さらに,高速線と遅い線のコンボは,一定の範囲で偽クロスオーバーを回避する.異なるパラメータ設定により,クロスオーバーはより信頼性がある.

簡単に言うと,DEMAの二重指数移動平均戦略は,迅速な応答,ノイズフィルタリング,安定した信頼性の高い信号の利点があります.

リスク分析

EMAよりも安定しているにもかかわらず,DEMA線は誤った信号を生成する偽クロスオーバーに苦しめられる.これは十分な敏感性と安定性を確保するために,高速線と遅い線の周期パラメータを微調整することによって対処することができます.

また,短期戦略として,取引コストに敏感である.高取引頻度または小取引サイズが利益を損なう可能性があります.コストを制御するために合理的な取引パラメータを設定する必要があります.

最後に,技術指標戦略は停止損失を完全に回避することはできません.下向きを制限するために適切なリスク管理を実施する必要があります.

オプティマイゼーションの方向性

まだ最適化できる余地があります

  1. 最適なパラメータを見つけるために 異なる期間の組み合わせをテストします

  2. RSIのような他の指標を組み込み 信号を確認し 誤った信号を避ける

  3. ストップ・ロスのメカニズムを最適化します ストップ・ロスの後を追って 利益を得ることです

  4. 資本管理を最適化します 例えば 口座サイズに基づいて ポジションサイズを調整したり 変動調整されたサイズを調整したり

結論

DEMAのダブル指数関数移動平均戦略は,全体的に安定した短期取引戦略である.迅速な応答とスムージング機能を有する.SMAと比較して,より短期的な機会を把握することができる.パラメータ調整と適切なメカニズムにより,戦略の収益性と安定性がさらに向上することができる.高周波の短期取引を希望する投資家に適している.


/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

strategy(title = "DEMA Strategy", shorttitle = "DEMA Strategy",initial_capital=1000, commission_value=0.2, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)
//@Moneros 2017
//Based on The DEMA is a fast-acting moving average that is more responsive to market changes than a traditional moving average
// !!!!  IN ORDER TO AVOID REPAITING ISSUES !!!!
// !!!!  DO NOT VIEW IN LOWER RESOLUTIONS THAN res/2 PARAMETER  !!!!
// for example res = 120 view >= 60m  res = 60 view >= 30m
// the length of the DEMA sampling shouldn't be longer than a candle 



// Best profits tested on BTCUSD
//res = 105 slowPeriod = 2 fastPeriod = 32
//res = 125 slowPeriod = 3 fastPeriod = 21
//res = 120 slowPeriod = 2 fastPeriod = 32 
//res = 130 slowPeriod = 1 fastPeriod = 24 
//res = 40 slowPeriod = 4 fastPeriod = 93 
//res = 60 slowPeriod = 1 fastPeriod = 67 

fastPeriod    = input(defval = 32, title = "DEMA FAST Period", minval = 2)
slowPeriod = input(defval = 2, title = "DEMA SLOW Period", minval = 1)
res = input(title="Resolution  - not lower than chart", defval="120")


demaFast =  request.security(syminfo.tickerid, res, 2 * ta.ema(close, fastPeriod) - ta.ema(ta.ema(close, fastPeriod), fastPeriod)  )
demaSlow  = request.security(syminfo.tickerid,res, 2 * ta.ema(close, slowPeriod) - ta.ema(ta.ema(close, slowPeriod), slowPeriod)  )



plot(demaFast,color=color.red)
plot(demaSlow,color=color.lime)

buy = ta.crossover(demaSlow, demaFast)
sell = ta.crossunder(demaSlow, demaFast)


// value [1] for avoid repaiting bottom bars
bgcolor( buy[1] ? color.lime : na, transp=0)
bgcolor( sell[1] ? color.red : na, transp=0)


strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell ) 




もっと