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

作者: リン・ハーンチャオチャン,日付: 2023年11月23日 17:34:06
タグ:

img

概要

ダブル指数関数移動平均クロスオーバー戦略は,典型的なトレンドフォロー戦略である. 異なるパラメータを持つダブル指数関数移動平均 (DEMA) の黄金十字と死十字を使用して,市場のトレンドを決定し,対応するロングとショートポジションを作成する.

戦略の論理

この戦略は,異なるパラメータを持つ3つのDEMAを同時に使用しています.DEMA (8).DEMA (.) 20とDEMA (.) 63です.

  • DEMAは短期的な傾向を把握するために最も早く反応します.

  • DEMAは,中期トレンドを特定するために少しゆっくりと動いています.

  • DEMAは,長期的傾向の方向性を判断するのに最も遅い反応を示します.

急速線DEMA(8) が中間線DEMA(20) とスロー線DEMA(63を横切ると,市場は下から上へと回転し,ロングポジションを設定する.DEMA(8) がDEMA(20) とDEMA(63を下を通過すると,市場は上から下へと回転し,ショートポジションを設定する.

利点分析

単一移動平均と比較して,ダブル指数移動平均は価格変化により敏感であり,トレンドのターニングポイントを早期に検出することができます.この戦略は複数のタイムフレームのDEMAを組み合わせ,市場のトレンド方向性を効果的に追跡することができます.

多時間枠のDEMラインの組み合わせは,取引信号の質を向上させ,偽のブレイクを回避する.同時に,この戦略は,3つのラインが交差するときにのみ信号を生成し,過剰な取引頻度を回避する.

リスク分析

この戦略の主なリスクは,

  1. 3つの線が交差する信号が少なくなった場合 取引の機会を逃す可能性があります
  2. DEM線が遅刻して横断する場合は,市場の変動が激しくなる場合,価格変動に間に合う対応ができない可能性があります.
  3. 大規模な市場をうまく扱えません

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

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

戦略は以下の側面から最適化できます.

  1. 移動平均のパラメータを最適化し,異なる市場特性により適合させる.
  2. 誤った信号を避けるために 音量や変動などのフィルターを追加します
  3. MACD,KDJなどの他の指標を組み合わせて 偽信号をフィルターします
  4. ストップ・ロスの戦略を追加して 単一の損失を制御します
  5. ポジション管理を最適化して 損失比より利益比を大きくする

概要

DEMAクロスオーバー戦略は,明確な全体的な考えを持っています.マルチタイムフレームDEMAを組み合わせることで,市場のトレンド方向を効果的に決定することができ,典型的なトレンドフォロー戦略です.戦略は,より良い戦略結果を得るため,実際のニーズに応じてパラメータ最適化,フィルター追加,ストップ損失管理などにより改善することができます.


/*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 ')



もっと