
Strategi pengoptimuman silang rata-rata bergerak adalah strategi perdagangan kuantitatif yang menggabungkan pelbagai fungsi seperti silang rata-rata bergerak, kawalan kedudukan, dan pengurusan risiko. Strategi ini menggunakan persilangan rata-rata bergerak cepat dan rata-rata bergerak perlahan sebagai isyarat membeli dan menjual, dan digabungkan dengan kawalan dinamik skala pegangan untuk mencapai pengurusan risiko. Berbanding dengan strategi persilangan rata-rata bergerak tradisional, strategi ini melakukan pengoptimuman fungsi pelbagai arah, yang dapat memberikan penyelesaian perdagangan kuantitatif yang lebih maju dan lebih dipercayai.
Isyarat teras strategi ini berasal dari persilangan dua rata-rata bergerak: satu rata-rata bergerak cepat jangka pendek dan satu rata-rata bergerak perlahan jangka panjang. Secara khusus, isyarat beli dihasilkan apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan dari bawah; isyarat jual dihasilkan apabila rata-rata bergerak cepat jatuh dari atas dan melanggar rata-rata bergerak perlahan.
Rata-rata bergerak sebagai satu trend pengesanan penunjuk, mampu berkesan meluruskan data harga, mengenal pasti titik-titik perubahan trend harga. Rata-rata bergerak cepat lebih sensitif kepada perubahan harga, mampu menangkap trend jangka pendek dalam masa yang tepat; dan rata-rata bergerak perlahan-lahan tindak balas kepada turun naik harga lebih perlahan, boleh mencerminkan trend jangka panjang.
Apabila bergerak cepat di atas rata-rata, menunjukkan harga jangka pendek telah berbalik ke atas, dan memandu harga jangka panjang naik, termasuk isyarat mengejar; dan apabila bergerak cepat di bawah rata-rata, menandakan harga jangka pendek mula turun, dan jangka panjang juga akan mengikut turun, termasuk isyarat tekanan.
Satu lagi ciri utama strategi ini adalah pengurusan risiko. Strategi ini membolehkan peniaga menetapkan peratusan risiko untuk setiap perdagangan dan menyesuaikan saiz kedudukan secara dinamik. Secara khusus, formula untuk mengira saiz kedudukan untuk setiap perdagangan adalah:
Saiz kedudukan = (hak milik akaun × peratus risiko) / (peratusan risiko setiap dagangan × 100)
Ini adalah satu kelebihan strategi ini kerana ia dapat mengawal risiko dagangan dengan berkesan dengan menyesuaikan kedudukan berdasarkan keadaan dana akaun dan dinamika risiko yang boleh diterima.
Berbanding dengan strategi penyambung purata bergerak asal, strategi ini telah dioptimumkan secara penting dalam beberapa dimensi berikut:
Mekanisme isyarat yang lebih pintarStrategi ini menggunakan dua purata bergerak cepat dan perlahan, dan bukannya satu purata tunggal, yang dapat mengenal pasti trend jangka pendek dan jangka menengah pada masa yang sama, dan isyarat silang lebih dipercayai.
Pengendalian risiko yang lebih saintifik。 Bergantung kepada dana akaun dan dinamika risiko yang boleh diterima, kedudukan kedudukan dikira, kedua-dua menjana keuntungan dan mengawal risiko, lebih sesuai dengan keperluan peperangan sebenar。
Pengalaman operasi yang lebih manusiawi◯ Tanda isyarat intuitif, isyarat amaran dalam masa nyata, tidak perlu berjaga-jaga sepanjang hari, lebih mudah untuk dikendalikan ◯
Fleksibiliti yang lebih tinggiPengguna boleh menyesuaikan parameter moving averages dan seting risiko mengikut pilihan peribadi untuk membuat strategi yang lebih sesuai dengan diri mereka.
Walaupun terdapat peningkatan yang besar terhadap strategi penyambungan purata bergerak yang lebih awal, strategi ini mungkin menghadapi risiko berikut dalam penggunaan sebenar:
Melewatkan titik balik harga: Purata bergerak adalah penunjuk jenis trend, tidak cukup sensitif terhadap perubahan harga yang tiba-tiba, mungkin terlepas titik jual beli utama, tidak dapat menghentikan atau menghentikan kerugian tepat pada masanya.
Tidak terpakai untuk pemulihan pasaranApabila pasaran berada dalam keadaan menyusun secara mendatar untuk jangka masa yang lama, isyarat purata bergerak mudah menyebabkan kesilapan, anda harus mengurangkan saiz kedudukan atau mempertimbangkan untuk menggunakan jenis strategi lain.
Parameter yang tidak betul: Jika parameter purata bergerak ditetapkan dengan tidak betul, ia akan menghasilkan isyarat yang salah, yang memerlukan ujian berulang untuk mendapatkan parameter terbaik.
Terlalu banyak risikoJika peratusan risiko ditetapkan terlalu tinggi, akaun berisiko terlalu tinggi setiap kali berdagang, sangat mudah untuk meletupkan kedudukan. Ini memerlukan penyesuaian yang berhati-hati berdasarkan kemampuan sebenar anda.
Untuk menangani risiko-risiko di atas, kita boleh menguruskan risiko dari dimensi berikut:
Gabungan dengan isyarat penapis indikator lain, seperti jumlah transaksi, indikator KD, dan lain-lain, untuk mengelakkan perubahan harga yang terlewat.
Bertukar strategi atau menurunkan kedudukan mengikut keadaan pasaran yang berbeza, seperti menggunakan strategi jenis goyah.
Mengkaji semula parameter untuk mencari parameter optimum, atau menetapkan parameter mengikut segmen varieti yang berbeza.
Pengaturan risiko yang berhati-hati, membina gudang secara berturut-turut, mengawal kerugian tunggal.
Terdapat ruang untuk penambahbaikan dalam strategi ini, terutamanya dalam aspek berikut:
Optimasi penapis isyarat: boleh memperkenalkan penapis isyarat untuk petunjuk lain, seperti petunjuk KM, pita Brin, dan sebagainya, untuk menjadikan isyarat lebih dipercayai.
Parameter menyesuaikan diri: Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter purata bergerak secara dinamik, yang membolehkan ia menyesuaikan diri dengan perubahan pasaran secara automatik.
Strategi untuk menghentikan kerugianTambahan fungsi seperti Stop Loss Mobile, Stop Stop Rate, dan lain-lain untuk memastikan keuntungan dan mengawal kerugian.
Strategi gabunganMenggabungkan strategi purata bergerak dengan jenis strategi lain, seperti lipatan mendatar, strategi goyah, dapat menghasilkan keuntungan tambahan yang lebih stabil.
Arbitraj merentas pasaran: Menggabungkan hubungan harga di pasaran yang berbeza, melakukan Statistical Arbitrage untuk mendapatkan penarikan tanpa risiko.
Dengan ujian dan pengoptimuman yang berterusan, kami yakin bahawa kami akan menjadikan strategi ini sebagai penyelesaian perdagangan kuantitatif yang boleh dipercayai, boleh dikawal, dan dapat meningkatkan keuntungan.
Strategi pengoptimuman rentas rata-rata bergerak membentuk isyarat perdagangan melalui rentas rata-rata yang perlahan dan cepat, dan menggunakan penyesuaian kedudukan dinamik untuk mengawal risiko, merupakan strategi perdagangan kuantitatif yang berfungsi dengan baik. Berbanding dengan strategi rentas rata-rata bergerak tradisional, strategi ini telah membuat kemajuan besar dalam penilaian isyarat, pengurusan risiko, pengalaman penggunaan, dan sebagainya. Dengan pengoptimuman parameter, penapisan isyarat, stop loss, dan kombinasi komposit yang terus diperbaiki, strategi ini dijangka menjadi salah satu strategi ideal yang menguntungkan dan terkawal untuk pedagang runcit.
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Improved Moving Average Crossover", overlay=true)
// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
riskPercentage = input(1, title="Risk Percentage", minval=0.1, maxval=5, step=0.1)
// Calculate moving averages
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
// Trading signals
longCondition = crossover(fastMA, slowMA)
shortCondition = crossunder(fastMA, slowMA)
// Position sizing based on percentage risk
riskPerTrade = input(2, title="Risk Per Trade (%)", minval=1, maxval=10, step=0.5)
equity = strategy.equity
lotSize = (equity * riskPercentage) / (riskPerTrade * 100)
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
// Plot trades on the chart using plotshape
plotshape(series=longCondition, color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small, title="Sell Signal")
// Alerts
alertcondition(longCondition, title="Buy Signal", message="Buy Signal!")
alertcondition(shortCondition, title="Sell Signal", message="Sell Signal!")