Sumber dimuat naik... memuat...

Adaptive Momentum Mean-Reversion Crossover Strategy

Penulis:ChaoZhang, Tarikh: 2025-01-10 15:26:18
Tag:ROCBBSMA

Adaptive Momentum Mean-Reversion Crossover Strategy

Ringkasan

Strategi ini adalah sistem perdagangan hibrid yang menggabungkan teori momentum dan pembalikan purata. Ia mengenal pasti keadaan pasar yang terlalu banyak dibeli dan terlalu banyak dijual menggunakan penunjuk Kadar Perubahan (ROC) dan Bollinger Bands, mencetuskan perdagangan apabila ambang tertentu dilalui. Konsep terasnya adalah untuk mengesan pergeseran momentum dan memanfaatkan pembalikan harga kepada purata mereka.

Prinsip Strategi

Strategi ini menggunakan penunjuk ROC 2 tempoh untuk mengira perubahan harga jangka pendek, bersama dengan dua set Bollinger Band: jangka pendek (18 tempoh, 1.7 penyimpangan standard) untuk keadaan oversold dan isyarat kemasukan, dan jangka panjang (21-periode, 2.1 penyimpangan standard) untuk keadaan overbought dan isyarat keluar. Posisi panjang dimulakan apabila ROC melintasi di atas Bollinger Band yang lebih rendah, menunjukkan peralihan dari momentum yang lemah ke yang kuat, dan kedudukan ditutup apabila ROC melintasi di bawah Bollinger Band atas, menandakan momentum yang melemah. Strategi ini juga menggunakan warna latar belakang untuk menyerlahkan zon overbought (merah) dan oversold (hijau).

Kelebihan Strategi

  1. Kebolehsesuaian yang tinggi: Bollinger Band secara automatik menyesuaikan lebar mereka berdasarkan turun naik pasaran, mengekalkan keberkesanan dalam keadaan pasaran yang berbeza
  2. Kawalan Risiko yang kukuh: Pyramiding dilumpuhkan (pyramiding = 0), memastikan hanya satu kedudukan pada satu masa
  3. Isyarat yang boleh dipercayai: Gabungan strategi momentum dan pembalikan purata memberikan pengenalan titik perubahan pasaran yang lebih baik
  4. Kepraktisan: Termasuk kos transaksi dan pertimbangan slippage untuk keadaan perdagangan dunia sebenar

Risiko Strategi

  1. Risiko pasaran yang berbelit-belit: Boleh menghasilkan perdagangan yang kerap yang membawa kepada kerugian di pasaran yang terikat julat
  2. Risiko Penembusan Palsu: Indikator ROC boleh menghasilkan isyarat penembusan palsu
  3. Sensitiviti Parameter: Prestasi strategi sangat bergantung kepada Bollinger Bands dan tetapan parameter ROC
  4. Kebergantungan Lingkungan Pasaran: Strategi berprestasi lebih baik dalam pasaran yang sedang berkembang tetapi mungkin gagal semasa turun naik yang melampau

Arahan Pengoptimuman Strategi

  1. Memperkenalkan Penapis Trend: Tambah purata bergerak jangka panjang untuk menapis trend pasaran dan meningkatkan ketepatan arah
  2. Mengoptimumkan Parameter: Melakukan backtesting data sejarah untuk mencari kombinasi parameter ROC dan Bollinger Bands yang optimum
  3. Menambah mekanisme Stop-Loss: Melaksanakan stop-loss tetap atau trailing untuk kawalan risiko
  4. Sertakan Pengesahan Jumlah: Sertakan penunjuk jumlah untuk mengesahkan pemisahan harga

Ringkasan

Adaptive Momentum Mean-Reversion Crossover Strategy membina sistem perdagangan yang mampu menyesuaikan diri dengan persekitaran pasaran yang berbeza dengan menggabungkan penunjuk ROC dan Bollinger Bands berganda.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-08 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Adaptive Momentum Reversion Strategy ", overlay=false, initial_capital=50000, pyramiding=0, commission_type=strategy.commission.cash_per_contract, commission_value=0.05, slippage=1)

// Input: ROC Period
rocPeriod = input.int(2, title="ROC Period", minval=1)

// Input: Bollinger Bands Settings (Lower Band)
bbLowerLength = input.int(18, title="Lower Bollinger Band Length", minval=1)
bbLowerStdDev = input.float(1.7, title="Lower Bollinger Band StdDev", minval=0.1, step=0.1)

// Input: Bollinger Bands Settings (Upper Band)
bbUpperLength = input.int(21, title="Upper Bollinger Band Length", minval=1)
bbUpperStdDev = input.float(2.1, title="Upper Bollinger Band StdDev", minval=0.1, step=0.1)

// ROC Calculation
rocValue = (close - close[rocPeriod]) / close[rocPeriod] * 100

// Bollinger Bands Calculation
bbLowerBasis = ta.sma(rocValue, bbLowerLength)  // Basis for Lower Band
bbLower = bbLowerBasis - bbLowerStdDev * ta.stdev(rocValue, bbLowerLength)  // Lower Band

bbUpperBasis = ta.sma(rocValue, bbUpperLength)  // Basis for Upper Band
bbUpper = bbUpperBasis + bbUpperStdDev * ta.stdev(rocValue, bbUpperLength)  // Upper Band

// Plot ROC
plot(rocValue, color=color.blue, linewidth=2, title="ROC Value")

// Plot Bollinger Bands
plot(bbLowerBasis, color=color.gray, linewidth=1, title="Lower BB Basis (SMA)")
plot(bbLower, color=color.green, linewidth=1, title="Lower Bollinger Band")
plot(bbUpperBasis, color=color.gray, linewidth=1, title="Upper BB Basis (SMA)")
plot(bbUpper, color=color.red, linewidth=1, title="Upper Bollinger Band")

// Add Zero Line for Reference
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dotted)

// Entry Condition: Long when ROC crosses above the lower Bollinger Band
longCondition = ta.crossover(rocValue, bbLower)
if (longCondition)
    strategy.entry("Long", strategy.long)

// Exit Condition: Exit on Upper Bollinger Band Cross or ROC drops below Lower Band again
exitCondition = ta.crossunder(rocValue, bbUpper)
if (exitCondition)
    strategy.close("Long")

// Background Color for Extreme Conditions
bgcolor(rocValue > bbUpper ? color.new(color.red, 80) : na, title="Overbought (ROC above Upper BB)")
bgcolor(rocValue < bbLower ? color.new(color.green, 80) : na, title="Oversold (ROC below Lower BB)")

Berkaitan

Lebih lanjut