Strategi Persilangan Purata Bergerak

MA SMA
Tarikh penciptaan: 2024-04-30 17:33:09 Akhirnya diubah suai: 2024-04-30 17:33:09
Salin: 1 Bilangan klik: 644
1
fokus pada
1617
Pengikut

Strategi Persilangan Purata Bergerak

Gambaran keseluruhan

Strategi ini menggunakan dua rata-rata bergerak ((MA) untuk menghasilkan isyarat dagangan. Apabila MA yang lebih pendek dari bawah ke atas melintasi MA yang lebih panjang, ia menghasilkan isyarat beli; apabila MA yang lebih pendek dari atas ke bawah melintasi MA yang lebih panjang, ia menghasilkan isyarat jual.

Prinsip Strategi

  1. Hitung purata bergerak untuk dua kitaran yang berbeza ((default 5 kitaran dan 20 kitaran)
  2. Menentukan sama ada MA yang lebih pendek naik / turun daripada MA yang lebih lama, sebagai isyarat membeli / menjual.
  3. Tetapkan tempoh dagangan antara pukul 08:00 dan 20:00 UTC, dan hanya berdagang dalam tempoh tersebut.
  4. Menentukan sama ada 4 garis K yang terakhir ditutup di atas/di bawah MA untuk mengesahkan trend.
  5. Jika anda memenuhi syarat untuk membeli/menjual, anda boleh membuka posisi dan menetapkan 150 titik stop.

Kelebihan Strategik

  1. Menggunakan dua MA yang berbeza untuk tempoh yang berbeza dapat menangkap trend dengan berkesan, yang sesuai untuk pasaran yang sedang tren.
  2. Menetapkan tempoh perdagangan dapat mengelakkan perdagangan pada masa yang kurang likuid dan mengurangkan risiko.
  3. Dengan menilai sama ada 4 garis K terkini ditutup di atas / di bawah MA, trend boleh disahkan dan kebolehpercayaan isyarat dapat ditingkatkan.
  4. Tetapkan titik tolak yang tetap untuk mengunci keuntungan dan mengawal risiko.

Risiko Strategik

  1. Dalam pasaran yang bergolak, strategi ini mungkin sering memberi isyarat yang salah dan menyebabkan kerugian.
  2. Tahap penamatan tetap mungkin mengehadkan ruang untuk keuntungan strategi.
  3. Strategi ini tidak menetapkan hentian kerugian, dan ia mungkin mempunyai risiko yang lebih besar jika pasaran berbalik dengan cepat.

Arah pengoptimuman strategi

  1. Anda boleh mempertimbangkan untuk memperkenalkan lebih banyak petunjuk teknikal seperti RSI, MACD dan lain-lain untuk meningkatkan kebolehpercayaan isyarat.
  2. Anda boleh mengoptimumkan tetapan titik hentian hentian, seperti hentian hentian dinamik atau hentian hentian berdasarkan ATR.
  3. Ia boleh menggabungkan struktur mikro pasaran, seperti aliran pesanan dan maklumat lain, untuk mengesahkan semula isyarat perdagangan.
  4. Tetapan parameter yang berbeza boleh diambil untuk keadaan pasaran yang berbeza ((kecenderungan / getaran) untuk meningkatkan daya serap strategi.

ringkaskan

Strategi ini berdasarkan pada persilangan rata-rata bergerak dari dua kitaran yang berbeza untuk menghasilkan isyarat perdagangan, sesuai untuk pasaran yang sedang tren. Dengan menetapkan tempoh perdagangan dan titik berhenti tetap, risiko dapat dikawal hingga tahap tertentu. Tetapi strategi ini mungkin tidak berfungsi dengan baik di pasaran yang bergolak, dan titik berhenti tetap mungkin mengehadkan ruang keuntungan strategi.

Kod sumber strategi
/*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")