
これは,三重指数移動平均 ((EMA) の交差信号に基づくトレンド追跡戦略である.この戦略は,9周期,15周期および50周期のEMA指標を総合的に使用し,短期平均線と中期平均線の交差信号を判断し,長期平均線をトレンドフィルターとして使用し,ダイナミックなストップダウンのメカニズムと組み合わせて取引リスクを管理する.この戦略は,トレンド追跡とリスク管理のニーズを十分に考慮して設計され,中長期取引に適しています.
戦略の核心的な論理は,9周期EMAと15周期EMAの交差信号を監視して取引のタイミングを決定し,50周期EMAをトレンド確認指標として使用することです.具体的には:
これは合理的で論理的に明確なトレンド追跡戦略である.複数の均線の組み合わせによる使用は,信号の信頼性を保証するとともに,トレンドの効果的な追跡を実現している.内蔵されたリスク管理機構は,戦略の安定した動作を保証している.推奨された最適化方向によって,戦略は,さらに向上する余地がある.安定した利益を追求する取引ユーザには適しているが,使用する前に十分なテストと特定の市場特性に合わせてパラメータの最適化が必要である.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true)
// Customizable Inputs
ema9Length = input(9, title="EMA 9 Length")
ema15Length = input(15, title="EMA 15 Length")
ema50Length = input(50, title="EMA 50 Length")
stopLossPoints = input(100, title="Stop Loss Points")
takeProfitPoints = input(200, title="Take Profit Points")
// Calculate EMAs
ema9 = ta.ema(close, ema9Length)
ema15 = ta.ema(close, ema15Length)
ema50 = ta.ema(close, ema50Length)
// Detect crossovers
crossover_above = ta.crossover(ema9, ema15)
crossover_below = ta.crossunder(ema9, ema15)
// Plot EMAs
plot(ema9, color=color.blue, title="EMA 9")
plot(ema15, color=color.red, title="EMA 15")
// Make the 50 EMA invisible
plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none)
// Plot buy and sell signals as shapes
plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Execute trades
if (crossover_above and close > ema50)
strategy.entry("Buy", strategy.long)
if (crossover_below and close < ema50)
strategy.close("Buy")
// Apply stop loss and take profit
if (crossover_above and close > ema50)
strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints)
// Alerts for notifications
if (crossover_above and close > ema50)
alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close)
if (crossover_below and close < ema50)
alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)