
Strategi ini berdasarkan pada indikator MACD, menggunakan persilangan garisan MACD dan garisan isyarat dalam indikator MACD untuk menilai isyarat perdagangan. Apabila garisan MACD melintasi garisan isyarat, ia menghasilkan isyarat yang lebih banyak, dan apabila garisan MACD melintasi garisan isyarat, ia menghasilkan isyarat kosong.
Indeks MACD terdiri daripada garis DIF dan garis DEA, garis DIF adalah perbezaan antara garis rata-rata cepat dan garis rata-rata lambat, garis DEA adalah purata bergerak garis DIF. Apabila DIF melintasi garis DEA, ini menunjukkan bahawa harga saham telah keluar dari kawasan oversold dan mula naik, menghasilkan isyarat plus; apabila DIF melintasi garis DEA, ini menunjukkan bahawa harga saham telah keluar dari kawasan oversold dan mula turun, menghasilkan isyarat kosong.
Strategi ini berdasarkan kepada indikator MACD, melalui persilangan garis MACD dan garis isyarat untuk menilai isyarat perdagangan, sambil menggunakan harga terendah dan tertinggi garis K terdahulu sebagai titik berhenti, titik berhenti ditetapkan sebanyak 4 kali ATR. Logik strategi jelas, mudah dilaksanakan, dan dapat menangkap trend harga saham dengan lebih baik. Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko, seperti penunjuk terbelakang, penyetempatan titik berhenti sederhana dan sebagainya.
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD Strategy", overlay=true)
// Define MACD
[macdLine, signalLine, _] = macd(close, 12, 26, 9)
// Define conditions for long entry
longCondition = crossover(macdLine, signalLine)
// Define conditions for short entry
shortCondition = crossunder(macdLine, signalLine)
// Define stop loss for long entry
longStopLoss = low[1] // Previous candle low
// Define stop loss for short entry
shortStopLoss = high[1] // Previous candle high
// Define take profit for both long and short entries
takeProfit = close + (close - longStopLoss) * 4 // 4 x ATR
// Execute long entry
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("TP/SL", "Buy", stop=longStopLoss, limit=takeProfit)
// Execute short entry
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("TP/SL", "Sell", stop=shortStopLoss, limit=takeProfit)