
Strategi ini didasarkan pada indikator MACD, menggunakan persilangan antara garis MACD dan garis Sinyal dalam indikator MACD untuk menilai sinyal perdagangan. Ketika MACD melintasi garis Sinyal di atas garis menghasilkan sinyal yang lebih banyak, dan ketika MACD melintasi garis Sinyal di bawah garis menghasilkan sinyal kosong.
Indeks MACD terdiri dari garis DIF dan garis DEA, garis DIF adalah perbedaan antara garis rata-rata cepat dan garis rata-rata lambat, garis DEA adalah rata-rata bergerak garis DIF. Ketika DIF melintasi garis DEA, menunjukkan bahwa harga saham telah keluar dari zona oversold dan mulai naik, menghasilkan sinyal plus. Ketika DIF melintasi garis DEA, menunjukkan bahwa harga saham telah keluar dari zona oversold dan mulai turun, menghasilkan sinyal kosong.
Strategi ini didasarkan pada indikator MACD, melalui persilangan garis MACD dan garis Sinyal untuk menilai sinyal perdagangan, sementara menggunakan harga minimum dan harga tertinggi dari garis K sebelumnya sebagai stop loss, stop loss diatur 4 kali ATR. Strategi logika jelas, mudah untuk melaksanakan, mampu menangkap lebih baik tren harga saham. Namun, strategi ini juga memiliki beberapa risiko, seperti indikator lag, stop loss pengaturan 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)