Strategi ini menggunakan dua rata-rata bergerak (MA) untuk menghasilkan sinyal perdagangan. Ketika MA jangka pendek melintasi di atas MA jangka panjang, sinyal beli dihasilkan; ketika MA jangka pendek melintasi di bawah MA jangka panjang, sinyal jual dihasilkan. Strategi ini juga menetapkan periode waktu perdagangan (8 AM hingga 20 PM UTC) dan target keuntungan (150 poin).
Strategi ini menghasilkan sinyal perdagangan berdasarkan persilangan dua rata-rata bergerak dengan periode yang berbeda, cocok untuk pasar tren. Dengan menetapkan periode waktu perdagangan dan target keuntungan tetap, itu dapat mengendalikan risiko sampai batas tertentu. Namun, strategi mungkin tidak berkinerja baik di pasar yang bergolak, dan target keuntungan tetap dapat membatasi potensi keuntungan strategi. Di masa depan, seseorang dapat mempertimbangkan untuk memasukkan lebih banyak indikator teknis, mengoptimalkan pengaturan target keuntungan dan stop loss, menggabungkan informasi struktur mikro pasar, dan mengadopsi pengaturan parameter yang berbeda untuk keadaan pasar yang berbeda untuk mengoptimalkan strategi ini.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover Strategy", overlay=true) // User-defined moving average periods ma1Periods = input(5, title="First Moving Average Periods") ma2Periods = input(20, title="Second Moving Average Periods") // Calculate moving averages ma1 = sma(close, ma1Periods) ma2 = sma(close, ma2Periods) // Plot moving averages plot(ma1, color=color.red, linewidth=2, title="First Moving Average") plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average") // Detect crossovers and crossunders bullishCross = crossover(ma1, ma2) bearishCross = crossunder(ma1, ma2) // Define trading hours (8 AM to 2 PM UTC) startHour = 8 endHour = 20 utcHour = hour(time, "UTC") isMarketOpen = true // Define profit target profitTarget = 150 // Check if the price has closed above/below the MA for the past 4 bars aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1] belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1] // Create buy and sell signals if (bullishCross and isMarketOpen and aboveMa) strategy.entry("Buy", strategy.long) strategy.exit("Sell", "Buy", profit=profitTarget) if (bearishCross and isMarketOpen and belowMa) strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", profit=profitTarget) // Plot shapes on crossovers plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")