Strategi ini adalah sistem perdagangan kuantitatif yang berasaskan crossover rata-rata bergerak indeks 5 kitaran dan 15 kitaran (EMA). Dengan menetapkan tahap stop loss dan stop loss yang munasabah, mengejar keuntungan yang stabil sambil melindungi keselamatan dana. Strategi ini menggunakan isyarat crossover garisan klasik untuk mengenal pasti perubahan trend pasaran, dan menggabungkan mekanisme pengurusan risiko untuk mengawal kadar keuntungan dan kerugian setiap perdagangan.
Inti strategi adalah memantau persilangan rata-rata bergerak cepat (EMA 5 kitaran) dengan rata-rata bergerak perlahan (EMA 15 kitaran). Apabila EMA 5 kitaran melintasi EMA 15 kitaran ke atas, sistem menghasilkan banyak isyarat; Apabila EMA 5 kitaran melintasi EMA 15 kitaran ke bawah, sistem menghasilkan isyarat kosong.
Ini adalah strategi perdagangan kuantitatif yang lengkap dan logik yang jelas. Strategi ini mudah digunakan, sesuai untuk pemula, dan menyediakan asas yang baik untuk pengoptimuman lanjut.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-26 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("5 EMA and 15 EMA Crossover with Stop Loss and Target", overlay=true)
// Define EMAs
ema5 = ta.ema(close, 5)
ema15 = ta.ema(close, 15)
// Plot EMAs on the chart
plot(ema5, title="5 EMA", color=color.blue)
plot(ema15, title="15 EMA", color=color.red)
// Crossover conditions
longCondition = ta.crossover(ema5, ema15)
shortCondition = ta.crossunder(ema5, ema15)
// Stop-loss and take-profit percentage
stopLossPercent = 1.5 // Stop-loss at 1.5%
takeProfitPercent = 3.0 // Take-profit at 3%
// Calculate stop-loss and take-profit levels for long and short positions
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)
// Enter long position with stop-loss and take-profit
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLoss, limit=longTakeProfit)
// Enter short position with stop-loss and take-profit
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", stop=shortStopLoss, limit=shortTakeProfit)
// Plot stop-loss and take-profit levels
plot(longStopLoss, title="Long Stop Loss", color=color.red, linewidth=1, style=plot.style_linebr)
plot(longTakeProfit, title="Long Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)
plot(shortStopLoss, title="Short Stop Loss", color=color.red, linewidth=1, style=plot.style_linebr)
plot(shortTakeProfit, title="Short Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)