二重指数移動平均クロスオーバー戦略


作成日: 2023-11-23 17:34:06 最終変更日: 2023-11-23 17:34:06
コピー: 3 クリック数: 762
1
フォロー
1617
フォロワー

二重指数移動平均クロスオーバー戦略

概要

二次指数移動平均クロスオーバー戦略は,典型的なトレンド追跡戦略である.これは,異なるパラメータの二次指数移動平均の金叉と死叉を使用して,市場動向を判断し,それに応じて多空を行う.

戦略原則

この戦略は3つの異なるパラメータの双指数移動平均を同時に使用します:DEMA(8),DEMA(20) およびDEMA(63) 〜のうち:

  • DEMAは,短期的なトレンドを捉えるために最も迅速に反応します.
  • DEMA ((20) は中期トレンドを特定するために少し遅い.
  • DEMA ((63) は,長期トレンドの方向性を判断するために最も遅い反応を示している.

快線DEMA(8) 上が中線DEMA(20) と慢線DEMA(63) を通るときは,下から上向きに逆転し,多作する.快線DEMA(8) 下が中線DEMA(20) と慢線DEMA(63) を通るときは,上から下向きに逆転し,空作る.

優位分析

単一の移動平均と比較して,双指数移動平均は価格の変化に敏感であり,トレンドの転換点をより早く発見することができる.この戦略は,複数の時間帯の双指数線を統合し,市場の傾向の方向を効果的に追跡することができる.

複数の時間帯のDEMラインの組み合わせにより,取引信号の質が向上し,偽突破を回避する.同時に,戦略は,3つのラインが交差する時にのみ信号を生成し,過度に頻繁な取引を避ける.

リスク分析

この戦略には以下のリスクがあります.

  1. 3つの線が交差する信号が少なく,取引の機会が逃れやすい.
  2. DEMの交差点の遅延は,物価の変動に及ばず,物価の変動に及ばず,物価の変動に及ばない.
  3. 発展途上国では,この状況に効果的に対応できない.

移動平均のパラメータを最適化したり,フィルタリング条件を追加したりなどによって,さらに改善し,リスクを制御することができます.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 移動平均のパラメータを最適化して,異なる市場の特性に合わせる.
  2. フィルタリング条件を高め,誤った信号を避けるため,取引量や波動率を増加させる.
  3. MACD,KDJなどの偽信号をフィルターする他の指標と組み合わせる.
  4. 単一損失を抑えるために ストップ・ロー戦略を強化する.
  5. ポジション管理の最適化により,利益比率が損失比率より高くなる.

要約する

双指数移動平均線交差戦略は,全体的な考え方が明確で,複数の時間段のDEMの組み合わせを使用して,市場トレンドの方向を効果的に判断する,典型的なトレンド追跡戦略です.この戦略は,実際の需要に応じて,パラメータ最適化,フィルタ条件の追加,ストップダスト管理などの方法で改善され,より良い戦略効果を得ることができます.

ストラテジーソースコード
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Noldo

//@version=4
//Quoted by Author HighProfit

//Lead-In
strategy("Double Exponential Moving Average 8-20-63 Strategy", 
         shorttitle="DEMA-8-20-63", 
         overlay=true,
         max_bars_back = 5000,
         initial_capital=100000, 
         max_bars_back = 5000,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1,
         pyramiding = 0)

short = input(8, minval=1)
srcShort = input(ohlc4, title="Source Dema 1")

long = input(20, minval=1)
srcLong = input(low, title="Source Dema 2")

long2 = input(63, minval=1)
srcLong2 = input(close, title="Source Dema 3")
e1 = ema(srcShort, short)
e2 = ema(e1, short)
dema1 = 2 * e1 - e2
plot(dema1, color=color.green, linewidth=2)

e3 = ema(srcLong, long)
e4 = ema(e3, long)
dema2 = 2 * e3 - e4
plot(dema2, color=color.blue, linewidth=2)

e5 = ema(srcLong2, long2)
e6 = ema(e5, long2)
dema3 = 2 * e5 - e6
plot(dema3, color=color.black, linewidth=2)

longC  = dema1 > dema2 and dema1 > dema3
shortC = dema1 < dema2 and dema1 < dema3 

alertlong  = longC and  not longC[1]
alertshort = shortC and not shortC[1]


strategy.entry("Long" , strategy.long , when = longC ,comment="Long")
strategy.entry("Short", strategy.short, when = shortC,comment="Short")

// Alerts 

alertcondition(longC  , title='Long' , message=' Buy  Signal ')
alertcondition(shortC , title='Short', message=' Sell Signal ')