この戦略は,MACD
この戦略は主に2つの技術分析指標に基づいています.
EMAクロスオーバー: 傾向を決定し,エントリーとアウトリーシグナルとして,高速EMA (3),遅いEMA (11) と遅いEMA (18) のクロスオーバーを使用します.
MACDインジケーターとゼロラインクロスオーバー. MACDはDIFFとDEAで構成される. DIFFは高速EMA (3) マイナススローEMA (11) によって構築される. DEAはMACDのEMA (27) である. MACD>0は上昇傾向を示し,MACD<0は下落傾向を示します.ゼロラインクロスオーバーはエントリーと出口信号として機能します.
EMA・クロスオーバーとMACD・ゼロライン・クロスオーバーの組み合わせによると,入場可能性が3つ,出口可能性が2つあります.
要するに,この戦略は,EMAクロスオーバーシステムとMACDインジケーターの両方の利点を完全に利用しています.移動平均値とMACDのパラメータを動的に調整することで,戦略の収益性を向上させることができます.
EMAクロスオーバーとMACDの両方の強みを活用し,デュアルインジケーターによる確認により精度を向上させます.
3つの長期入場機会と2つの退出機会があり,取引頻度と利益の可能性を増加させる.
ダイナミックパラメータの最適化のための広い空間. 速いEMA,遅いEMA,ゼロラインEMAとMACDの長さはすべて最適化することができます.
明確な論理により デバッグと最適化が容易になります
EMAクロスオーバーとMACDの両方の指標には 誤った信号があり,不必要な損失につながる可能性があります.
取引頻度が高く,ストップ・ロスの大きさが小さいため,損失が蓄積する可能性があります.
パラメータ最適化における困難.不適切な最適化によりオーバーフィッティングが発生する.
貿易コストの影響は完全に考慮する必要があります.
リスクを軽減するために
適切なストップロスを設定して,単一の取引での損失を制限します.
オーバーフィッティングを避けるために 適切なパラメータを調整します
取引の頻度を減らすなど 取引コストの影響を考慮してください
ボリンジャー帯,KDJなどなどのテスト代替品
EMAのクロスオーバーパラメータを最適化: 速いEMAと遅いEMAの長さを変更する.
MACD パラメータを最適化: DIFF と DEA 計算 EMA 長さを変更する.
ストップ・ロスの戦略を追加します. ストップ数,タイムストップ,トライリングストップなど.
取引コストを考慮して入場頻度を調整する.
この戦略は,二重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)