Sumber daya yang dimuat... Pemuatan...

Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2024-04-30 17:33:09
Tag:MASMA

img

Gambaran umum

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).

Prinsip Strategi

  1. Hitung dua rata-rata bergerak dengan periode yang berbeda (default adalah 5 dan 20 periode).
  2. Tentukan apakah MA jangka pendek melintasi di atas/di bawah MA jangka panjang, yang berfungsi sebagai sinyal beli/jual.
  3. Atur periode waktu perdagangan dari jam 8 pagi hingga jam 20 malam UTC, dan hanya berdagang dalam periode waktu ini.
  4. Tentukan apakah 4 lilin terbaru telah ditutup di atas/di bawah MA untuk mengkonfirmasi tren.
  5. Jika kondisi pembelian/penjualan terpenuhi, buka posisi dan tetapkan target keuntungan 150 poin.

Keuntungan Strategi

  1. Menggunakan dua MAs dengan periode yang berbeda dapat secara efektif menangkap tren, cocok untuk pasar tren.
  2. Menetapkan periode waktu perdagangan dapat menghindari perdagangan pada saat likuiditas rendah, mengurangi risiko.
  3. Mengkonfirmasi tren dengan memeriksa apakah 4 lilin terbaru telah ditutup di atas/di bawah MA dapat meningkatkan keandalan sinyal.
  4. Menetapkan target keuntungan tetap dapat secara efektif mengunci keuntungan dan mengendalikan risiko.

Risiko Strategi

  1. Di pasar yang berbelit-belit, strategi ini dapat menghasilkan sinyal palsu yang sering, yang mengarah pada kerugian.
  2. Target keuntungan tetap dapat membatasi potensi keuntungan strategi.
  3. Strategi ini tidak menetapkan stop loss, yang dapat menghadapi risiko yang signifikan ketika pasar berbalik dengan cepat.

Arah Optimasi Strategi

  1. Pertimbangkan untuk memasukkan lebih banyak indikator teknis, seperti RSI dan MACD, untuk meningkatkan keandalan sinyal.
  2. Mengoptimalkan pengaturan target laba dan stop loss, seperti menggunakan target laba dinamis dan stop loss atau target laba berbasis ATR dan stop loss.
  3. Menggabungkan informasi mikro struktur pasar, seperti aliran pesanan, untuk konfirmasi sekunder sinyal perdagangan.
  4. Mengadopsi pengaturan parameter yang berbeda untuk kondisi pasar yang berbeda (trend/gejolak) untuk meningkatkan kemampuan adaptasi strategi.

Ringkasan

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")


Berkaitan

Lebih banyak