この戦略は,トレンド指向を決定するために,複数のEMA間の傾斜方向と交差関係を利用し,ノンストップトレンド取引を行う.常に長または短に保持することができます.
EMA の 3 つのグループを計算します.快速,中間,遅い EMA.
速いEMAが中間EMAを横切り,中間EMAの傾きが正になるとき,ロング信号が生成されます.
急速EMAが中期EMAを下回り,中期EMA傾斜がマイナスになると,ショート信号が生成されます.
価格がEMAを下回るとショートします.
EMA傾斜関係は傾向の変化を反映する.価格クロスオーバーはエントリーを確認する.
複数の EMA は,トレンド判断の精度を向上させます.
急速,中,遅い EMA は,傾向と統合を合理的に区別します.
EMAの傾斜の変化は,トレンド変化の初期ヒントを提示します.
価格クロスオーバーは 偽のブレイクを避けるために 更に確認されます
常にポジションを保つことで トレンドの機会を完全に把握できます
EMA にのみ頼るということは,範囲限定期間に大きなポジションリスクをもたらす.
誤ったEMAパラメータは ターニングポイントを見逃す可能性があります
トレンド強さを判定できないので 早期に逆転するリスクがあります
効果的な単一の取引損失制御がない
最適パラメータを見つけるために EMAの異なる組み合わせをテストします.
MACDのような他の指標を追加して強さを決定します.
リスク管理のためのストップ・ロスのメカニズムを追加する.
傾向の強さを評価して,早急な逆転を避ける.
資本管理のためのポジションサイズを最適化する.
トレンドが揺れ動いているときに一時的に取引を停止します.
この戦略は,トレンドを決定するためにEMAコンボを賢明に使用する.しかし,EMAだけに依存することは制限があるため,より多くの指標を組み込むための大きな最適化空間を残している.安定性を向上させるためにリスク制御メカニズムも必要である.全体として,フレームワークは科学的に設計されており,継続的な改善後に強力なトレンド取引戦略に成長する可能性がある.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("EMA Slope + EMA Cross Strategy (by ChartArt)", shorttitle="CA_-_EMA_slope_cross", overlay=true) // ChartArt's EMA Slope + EMA Cross Strategy // // Version 1.0 // Idea by ChartArt on March 10, 2018. // // This strategy uses divergences between // three moving averages and their slope // directions as well as crosses between // the price and the moving averages // to switch between long/short positions. // // The strategy is non-stop in the market // and always either long or short. // // In addition the moving averages are colored // depending if they are trending up or down. // // List of my work: // https://www.tradingview.com/u/ChartArt/ // Input price = input(close) MA1_Length = input(2,step=1, title="EMA 1 Length") MA2_Length = input(4,step=1, title="EMA 2 Length") MA3_Length = input(20,step=1, title="EMA 3 Length") switch1=input(true, title="Show Bar Color?") switch2=input(true, title="Show Moving Averages?") // Calculation MA1 = ema(price, MA1_Length) MA2 = ema(price, MA2_Length) MA3 = ema(price, MA3_Length) // Strategy long = crossunder(price, MA3) or ( change(price)<0 and change(MA1)<0 and crossunder(price,MA1) and change(MA2)>0 ) short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1) and change(MA2)<0 ) if long strategy.entry("Long", strategy.long, comment="Long") if short strategy.entry("Short", strategy.short, comment="Short") // Strategy Alert alertcondition(long, title='EMA Slope + EMA Cross Strategy, Long Alert', message='Go Long!') alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!') // MA trend bar color up = change(MA2)>0 and change(MA3)>0 dn = change(MA2)<0 and change(MA3)<0 bar_color = up?green:dn?red:blue barcolor(switch1?bar_color:na) // MA trend output color MA2_color = change(MA2)>0?lime:change(MA2)<0?red:blue MA3_color = change(MA3)>0?lime:change(MA3)<0?red:blue // MA output EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color) EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color) fill(EMA2, EMA3, color=silver, transp=50) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)