資源の読み込みに... 荷物...

MACD DEMA トレーディング戦略

作者: リン・ハーンチャオチャン, 日時: 2023-09-19 16:10:19
タグ:

概要

この戦略は,MACDとDEMAのデュアルレール指標を組み合わせて,クロスオーバーから取引信号を生成する.MACD指標のターニングポイントを捕捉し,より良いエントリを達成するためにフィルタリングのためにDEMAを使用する.

戦略原則

  1. 期間長さ fastmacd の価格の DEMA 値として速線 DEMAfast を計算する.

  2. 期間長さ slowmacd の価格の DEMA 値としてゆっくり線 DEMAslow を計算する.

  3. MACD線は,速い線と遅い線の違いです. DEMAfast - DEMAAslow.

  4. シグナルラインは,周期シグナルマックドのMACDラインのDEMA値です.

  5. MACDとシグナルラインのクロスオーバーは,金色のクロスでロング,デッドクロスでショートでトレードシグナルを生成します.

  6. 指定された日付範囲内でのみ信号を生成するために日付フィルターを追加します.

利点分析

この戦略の主な利点は以下の通りです.

  1. MACDとDEMAを組み合わせると,インディケーターが補完されます.MACDはターンを記録し,DEMAはシグナル品質を改善するためにフィルターをします.

  2. DEMAの二重レール設計により MACD指標の遅延とノイズが減少します

  3. MACDのクロスオーバー信号は 解釈しやすく 清潔でシンプルです

  4. 日付フィルターの柔軟な設定は,異なる戦略のニーズに対応します.

  5. MACDパラメータは,市場の条件に合わせて柔軟性のために最適化できます.

リスク分析

この戦略の主なリスクは

  1. MACDは動揺する横向市場における 傾向指標として苦戦しています

  2. クロスオーバーは 誤った信号を生成し 効果的なフィルタリングが必要です

  3. ストップ・ロスの戦略は堅牢ではない ストップが大きすぎる傾向がある

  4. パラメータの最適化が 十分ではありません 製品ごとに 性能が大きく異なります

  5. 日付フィルタが硬すぎます 動的調整が必要です

解決策:

  1. 市場を横向きにしないように インディケーターを追加します.

  2. 偽のクロスをフィルタリングするために価格条件を追加します.

  3. 合理的な初期ストップ・ロスを設定します

  4. 製品間のテストパラメータ ダイナミック最適化

  5. リアルタイム条件に基づいてフィルター日付を調整します

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

戦略の潜在的改善:

  1. クロスオーバー信号の音量フィルターを追加します

  2. MACD パラメータの組み合わせを様々な製品で最適化する.

  3. ストップ・ロスのストップ・ストラテジーを追加します

  4. 市場変動に基づいてストップロスを動的に調整する.

  5. ポジションのサイズを測るためのトレンド強さを追跡する.

概要

MACD DEMA戦略は,トレンドを把握するためにクロスオーバーを使用して,両方の指標の強みを組み合わせています.しかし,MACDは本質的に遅れ,偽信号に注意してください.また,不合理な清算を避けるためにストップを最適化してください.ライブ取引では,最適化されたパラメータと継続的な改善に基づいた慎重なエントリーが推奨されます.


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

//@version=2
strategy(" MACD DEMA STRATEGY ", overlay=true)

source=close
price=source



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = ema(close,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(close,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )


MACDSignal = SignalLine-MACDLine


colorbar= MACDSignal>0?green:red




yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(MACDLine,SignalLine) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(MACDLine,SignalLine) ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    
    
    
    
    
    
    
    
    


もっと