ダイナミック・EMAとMACDクロスオーバー戦略

作者: リン・ハーンチャオチャン,日付: 2024-02-06 14:29:23
タグ:

img

概要

この戦略は,MACDのゼロラインクロスオーバーと組み合わせて,高速EMA線 (3),遅いEMA線 (11) および遅いEMA線 (18) のクロスオーバー状況に基づいてエントリーと出口を決定する.これは,二重EMAとMACD指標の組み合わせを使用して取引決定を行うダイナミックな戦略です.

戦略の論理

この戦略は主に2つの技術分析指標に基づいています.

  1. EMAクロスオーバー: 傾向を決定し,エントリーとアウトリーシグナルとして,高速EMA (3),遅いEMA (11) と遅いEMA (18) のクロスオーバーを使用します.

  2. MACDインジケーターとゼロラインクロスオーバー. MACDはDIFFとDEAで構成される. DIFFは高速EMA (3) マイナススローEMA (11) によって構築される. DEAはMACDのEMA (27) である. MACD>0は上昇傾向を示し,MACD<0は下落傾向を示します.ゼロラインクロスオーバーはエントリーと出口信号として機能します.

EMA・クロスオーバーとMACD・ゼロライン・クロスオーバーの組み合わせによると,入場可能性が3つ,出口可能性が2つあります.

  1. 最初のロング・オッチャンスはMACDがゼロ線上にあり 上向きのクロスオーバーがあるときに起こります
  2. 2番目の長チャンス (long opportunity) は,速いEMA (3) が遅いEMA (11) を越えるときに発生します.
  3. ポジションが満点の3番目のロング・オッチャンスは,高速EMA (3) が遅いEMA (18) を越えるときに起こります.
  4. 最初の出口信号は,高速EMA (3) が遅いEMA (11) の下を横切るときに発生します.
  5. 第二の出口信号は,MACDがゼロ線を下回り,下向きのクロスオーバーがあるときに発生します.

要するに,この戦略は,EMAクロスオーバーシステムとMACDインジケーターの両方の利点を完全に利用しています.移動平均値とMACDのパラメータを動的に調整することで,戦略の収益性を向上させることができます.

戦略 の 利点

  1. EMAクロスオーバーとMACDの両方の強みを活用し,デュアルインジケーターによる確認により精度を向上させます.

  2. 3つの長期入場機会と2つの退出機会があり,取引頻度と利益の可能性を増加させる.

  3. ダイナミックパラメータの最適化のための広い空間. 速いEMA,遅いEMA,ゼロラインEMAとMACDの長さはすべて最適化することができます.

  4. 明確な論理により デバッグと最適化が容易になります

戦略 の リスク

  1. EMAクロスオーバーとMACDの両方の指標には 誤った信号があり,不必要な損失につながる可能性があります.

  2. 取引頻度が高く,ストップ・ロスの大きさが小さいため,損失が蓄積する可能性があります.

  3. パラメータ最適化における困難.不適切な最適化によりオーバーフィッティングが発生する.

  4. 貿易コストの影響は完全に考慮する必要があります.

リスクを軽減するために

  1. 適切なストップロスを設定して,単一の取引での損失を制限します.

  2. オーバーフィッティングを避けるために 適切なパラメータを調整します

  3. 取引の頻度を減らすなど 取引コストの影響を考慮してください

最適化 に 関する 指示

  1. ボリンジャー帯,KDJなどなどのテスト代替品

  2. EMAのクロスオーバーパラメータを最適化: 速いEMAと遅いEMAの長さを変更する.

  3. MACD パラメータを最適化: DIFF と DEA 計算 EMA 長さを変更する.

  4. ストップ・ロスの戦略を追加します. ストップ数,タイムストップ,トライリングストップなど.

  5. 取引コストを考慮して入場頻度を調整する.

概要

この戦略は,二重EMAクロスオーバーシステムとMACD指標を組み合わせて,高い取引頻度と強い収益性を持つダイナミックパラメータ戦略を構築する.また,明確な論理は理解し最適化することを容易にする.しかし,適切なストップ損失,オーバーフィッティング対策などを通じて対処する必要がある偽信号とオーバーフィッティングのリスクもあります.全体として,この戦略は大きな実用的な有用性を持っています.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)

short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)

isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)

//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)

//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)

//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)

fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma

strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))

strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)

strategy.entry("all in", strategy.long, comment="all in",when=isCross2)

strategy.close("2nd in",when=isCrossSell) 
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0)) 
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) 
    
histColour = (delta > 0) ? green : (delta < 0) ? red :  #4169E1
    
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)






もっと