Sumber daya yang dimuat... Pemuatan...

Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2024-06-14 15:48:32
Tag:SMAMA

img

Gambaran umum

Strategi ini adalah strategi perdagangan kuantitatif yang didasarkan pada crossover rata-rata bergerak. Strategi ini menghasilkan sinyal beli ketika rata-rata bergerak cepat (periode yang lebih pendek) melintasi di atas rata-rata bergerak lambat (periode yang lebih lama) dari bawah, dan menghasilkan sinyal jual ketika rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat dari atas. Selain itu, strategi ini memperkenalkan konsep ukuran posisi dinamis dengan menyesuaikan ukuran setiap perdagangan berdasarkan keuntungan dan kerugian akun, untuk mengendalikan risiko.

Prinsip Strategi

  1. Menghitung dua rata-rata bergerak sederhana (SMA) dengan periode yang berbeda, yaitu 9 dan 21.
  2. Menghasilkan sinyal beli ketika rata-rata bergerak cepat (9 periode) melintasi di atas rata-rata bergerak lambat (21-periode) dari bawah, dan menghasilkan sinyal jual ketika rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat dari atas.
  3. Hitung jumlah risiko untuk setiap perdagangan berdasarkan 1% dari saldo akun, kemudian tentukan jumlah saham yang akan dibeli berdasarkan jumlah risiko dan kisaran harga saat ini (tinggi - rendah).
  4. Jika strategi saat ini menguntungkan, meningkatkan ukuran posisi perdagangan berikutnya sebesar 10%; jika dalam kerugian, mengurangi ukuran posisi perdagangan berikutnya sebesar 10%.
  5. Mengeksekusi pesanan beli ketika sinyal beli muncul, dan mengeksekusi pesanan jual ketika sinyal jual muncul.

Keuntungan Strategi

  1. Kesederhanaan: Strategi ini didasarkan pada prinsip crossover rata-rata bergerak klasik, yang sederhana, mudah dimengerti, dan diterapkan.
  2. Mengikuti tren: Dengan menggunakan dua rata-rata bergerak dengan periode yang berbeda, strategi dapat secara efektif menangkap tren harga jangka menengah hingga panjang, membuatnya cocok untuk perdagangan mengikuti tren.
  3. Dimensi posisi dinamis: Dengan menyesuaikan ukuran posisi berdasarkan keuntungan dan kerugian, strategi dengan tepat meningkatkan ukuran posisi ketika menguntungkan dan menurunkannya ketika kerugian, yang membantu mengendalikan risiko dan meningkatkan pengembalian.
  4. Penerapan luas: Strategi dapat diterapkan pada berbagai pasar keuangan dan instrumen perdagangan, seperti saham, berjangka, forex, dll.

Risiko Strategi

  1. Perdagangan sering: Karena strategi ini bergantung pada sinyal crossover rata-rata bergerak jangka pendek, hal ini dapat menyebabkan perdagangan sering, peningkatan biaya transaksi dan risiko slip.
  2. Kinerja yang buruk di pasar yang bergolak: Di pasar yang bergolak, tidak ada tren, strategi dapat menghasilkan lebih banyak sinyal palsu, yang mengakibatkan kerugian.
  3. Risiko optimasi parameter: Kinerja strategi tergantung pada pilihan periode rata-rata bergerak, dan parameter yang berbeda dapat menyebabkan hasil yang berbeda, menimbulkan risiko overfit selama optimasi parameter.

Arah Optimasi Strategi

  1. Memperkenalkan indikator konfirmasi tren: Selain sinyal crossover rata-rata bergerak, perkenalkan indikator konfirmasi tren lainnya seperti MACD, ADX, dll, untuk menyaring beberapa sinyal palsu dan meningkatkan kualitas sinyal.
  2. Mengoptimalkan aturan ukuran posisi: Aturan ukuran posisi saat ini relatif sederhana. Pertimbangkan untuk memperkenalkan algoritma ukuran posisi yang lebih kompleks, seperti Kriteria Kelly atau manajemen uang pecahan tetap, untuk lebih meningkatkan pengembalian yang disesuaikan dengan risiko.
  3. Menggabungkan mekanisme stop-loss dan take-profit: Tambahkan aturan stop-loss dan take-profit ke strategi untuk mengontrol kerugian maksimum dan keuntungan maksimum untuk setiap perdagangan, meningkatkan rasio risiko-manfaat strategi.
  4. Optimasi parameter adaptif: Memperkenalkan mekanisme optimasi parameter adaptif untuk menyesuaikan parameter strategi secara otomatis berdasarkan perubahan kondisi pasar, meningkatkan ketahanan dan kemampuan adaptasi strategi.

Ringkasan

Strategi crossover rata-rata bergerak adalah strategi perdagangan kuantitatif yang sederhana dan praktis yang menangkap tren harga menggunakan sinyal crossover dari dua rata-rata bergerak dengan periode yang berbeda sambil memperkenalkan aturan pengukuran posisi dinamis untuk mengendalikan risiko. Strategi ini memiliki logika yang jelas, mudah diterapkan, dan memiliki berbagai aplikasi. Namun, dalam aplikasi praktis, seseorang perlu menyadari potensi risiko seperti perdagangan yang sering, kinerja yang buruk di pasar yang berbelit-belit, dan optimasi parameter. Strategi harus dioptimalkan dan ditingkatkan sesuai kebutuhan, seperti memperkenalkan indikator konfirmasi tren, mengoptimalkan aturan pengukuran posisi, menggabungkan mekanisme stop-loss dan take-profit, dan menerapkan optimasi parameter adaptif. Melalui optimasi dan penyempurnaan terus-menerus, kekuatan dan profitabilitas strategi dapat ditingkatkan lebih lanjut.


/*backtest
start: 2024-06-06 00:00:00
end: 2024-06-13 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © okolienicholas

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast MA Length")
slow_length = input(21, title="Slow MA Length")
source = close
account_balance = input(100, title="Account Balance") // Add your account balance here

// Calculate moving averages
fast_ma = ta.sma(source, fast_length)
slow_ma = ta.sma(source, slow_length)

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Generate buy/sell signals
buy_signal = ta.crossover(fast_ma, slow_ma)
sell_signal = ta.crossunder(fast_ma, slow_ma)

// Plot buy/sell signals
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Calculate the risk per trade
risk_per_trade = account_balance * 0.01

// Calculate the number of shares to buy
shares_to_buy = risk_per_trade / (high - low)

// Calculate the profit or loss
profit_or_loss = strategy.netprofit

// Adjust the position size based on the profit or loss
if (profit_or_loss > 0)
    shares_to_buy = shares_to_buy * 1.1 // Increase the position size by 10% when in profit
else
    shares_to_buy = shares_to_buy * 0.9 // Decrease the position size by 10% when in loss

// Execute orders
if (buy_signal)
    strategy.entry("Buy", strategy.long, qty=shares_to_buy)
    
if (sell_signal)
    strategy.entry("Sell", strategy.short, qty=shares_to_buy)


Berkaitan

Lebih banyak