- Persegi
- Strategi Crossover Purata Bergerak
Strategi Crossover Purata Bergerak
Penulis:
ChaoZhang, Tarikh: 2024-06-14 15:48:32
Tag:
SMAMA
Ringkasan
Strategi ini adalah strategi perdagangan kuantitatif berdasarkan persilangan purata bergerak. Ia menghasilkan isyarat beli apabila purata bergerak pantas (periode yang lebih pendek) melintasi di atas purata bergerak perlahan (periode yang lebih lama) dari bawah, dan menghasilkan isyarat jual apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan dari atas. Di samping itu, strategi memperkenalkan konsep ukuran kedudukan dinamik dengan menyesuaikan saiz setiap perdagangan berdasarkan keuntungan dan kerugian akaun, untuk mengawal risiko.
Prinsip Strategi
- Mengira dua purata bergerak mudah (SMA) dengan tempoh yang berbeza, iaitu 9 dan 21.
- Menghasilkan isyarat beli apabila purata bergerak pantas (9 tempoh) melintasi di atas purata bergerak perlahan (21 tempoh) dari bawah, dan menghasilkan isyarat jual apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan dari atas.
- Mengira jumlah risiko untuk setiap perdagangan berdasarkan 1% baki akaun, kemudian menentukan bilangan saham untuk dibeli berdasarkan jumlah risiko dan julat harga semasa (tinggi - rendah).
- Jika strategi itu kini menguntungkan, meningkatkan saiz kedudukan perdagangan seterusnya sebanyak 10%; jika ia dalam kerugian, mengurangkan saiz kedudukan perdagangan seterusnya sebanyak 10%.
- Melakukan pesanan beli apabila isyarat beli muncul, dan melaksanakan pesanan jual apabila isyarat jual muncul.
Kelebihan Strategi
- Kesederhanaan: Strategi ini berdasarkan prinsip crossover purata bergerak klasik, yang mudah, mudah difahami, dan dilaksanakan.
- Mengikuti trend: Dengan menggunakan dua purata bergerak dengan tempoh yang berbeza, strategi dapat menangkap dengan berkesan trend harga jangka menengah hingga panjang, menjadikannya sesuai untuk perdagangan trend-mengikuti.
- Ukuran kedudukan dinamik: Dengan menyesuaikan saiz kedudukan berdasarkan keuntungan dan kerugian, strategi dengan tepat meningkatkan saiz kedudukan apabila menguntungkan dan mengurangkannya apabila kerugian, yang membantu mengawal risiko dan meningkatkan pulangan.
- Penggunaan luas: Strategi ini boleh digunakan untuk pelbagai pasaran kewangan dan instrumen perdagangan, seperti saham, niaga hadapan, forex, dll.
Risiko Strategi
- Perdagangan kerap: Oleh kerana strategi ini bergantung pada isyarat crossover purata bergerak jangka pendek, ia boleh membawa kepada perdagangan kerap, meningkatkan kos transaksi dan risiko tergelincir.
- Prestasi yang lemah di pasaran yang bergelora: Di pasaran yang bergelora, yang tidak mempunyai trend, strategi boleh menghasilkan lebih banyak isyarat palsu, yang mengakibatkan kerugian.
- Risiko pengoptimuman parameter: Prestasi strategi bergantung pada pilihan tempoh purata bergerak, dan parameter yang berbeza boleh membawa kepada hasil yang berbeza, menimbulkan risiko terlalu sesuai semasa pengoptimuman parameter.
Arahan Pengoptimuman Strategi
- Memperkenalkan penunjuk pengesahan trend: Sebagai tambahan kepada isyarat persilangan purata bergerak, memperkenalkan penunjuk pengesahan trend lain seperti MACD, ADX, dll., Untuk menapis beberapa isyarat palsu dan meningkatkan kualiti isyarat.
- Mengoptimumkan peraturan saiz kedudukan: Peraturan saiz kedudukan semasa agak mudah. Pertimbangkan untuk memperkenalkan algoritma ukuran kedudukan yang lebih kompleks, seperti Kriteria Kelly atau pengurusan wang pecahan tetap, untuk meningkatkan kembalian yang disesuaikan dengan risiko.
- Menggabungkan mekanisme berhenti-kerugian dan mengambil keuntungan: Tambahkan peraturan berhenti-kerugian dan mengambil keuntungan kepada strategi untuk mengawal kerugian maksimum dan keuntungan maksimum untuk setiap perdagangan, meningkatkan nisbah risiko-balasan strategi.
- Pengoptimuman parameter adaptif: Memperkenalkan mekanisme pengoptimuman parameter adaptif untuk menyesuaikan parameter strategi secara automatik berdasarkan perubahan keadaan pasaran, meningkatkan kekuatan dan kebolehsesuaian strategi.
Ringkasan
Strategi crossover purata bergerak adalah strategi perdagangan kuantitatif yang mudah dan praktikal yang menangkap trend harga menggunakan isyarat crossover dari dua purata bergerak dengan tempoh yang berbeza sambil memperkenalkan peraturan pengukuran kedudukan dinamik untuk mengawal risiko. Strategi ini mempunyai logika yang jelas, mudah dilaksanakan, dan mempunyai pelbagai aplikasi. Walau bagaimanapun, dalam aplikasi praktikal, seseorang perlu menyedari risiko berpotensi seperti perdagangan yang kerap, prestasi yang buruk di pasaran yang berbelit-belit, dan pengoptimuman parameter. Strategi harus dioptimumkan dan ditingkatkan seperti yang diperlukan, seperti memperkenalkan penunjuk pengesahan trend, mengoptimumkan peraturan pengukuran kedudukan, menggabungkan mekanisme berhenti-kerugian dan mengambil keuntungan, dan melaksanakan pengoptimuman parameter adaptif. Melalui pengoptimuman dan penyempurnaan berterusan, kekuatan dan keuntungan strategi dapat ditingkatkan lagi.
/*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 lanjut