Strategi ini berdasarkan kepada penunjuk momentum yang digabungkan dengan purata bergerak untuk mengesan trend pasaran. Ia pergi lama apabila terdapat momentum menaik yang kuat dan pergi pendek apabila terdapat momentum menurun yang kuat. Ia tergolong dalam kategori strategi trend berikut.
Mengira momentum harga sebagai: (Harga semasa - Harga N tempoh lalu) / Harga N tempoh lalu
Mengira purata bergerak harga pertengahan selama N tempoh
Menormalkan nilai momentum kepada julat 0-1
Apabila momentum yang diminimumkan adalah lebih besar daripada 0.5 dan harga di atas purata bergerak, pergi panjang
Apabila momentum yang diminimumkan adalah kurang daripada 0.5 dan harga adalah di bawah purata bergerak, pergi pendek
Gunakan mekanisme stop loss bergerak dengan paras stop loss yang betul
Di atas merangkumi logik perdagangan asas. Apabila pasaran sedang trend, harga akan bergerak dengan berterusan ke satu arah, menjana nilai momentum yang besar. Strategi menilai kekuatan trend menggunakan momentum dan arah menggunakan purata bergerak untuk memutuskan kemasukan. Juga, stop loss sangat penting untuk mengawal risiko.
Strategi ini mempunyai kelebihan berikut:
Mengikuti trend pasaran, dengan potensi keuntungan yang besar
Momentum sensitif terhadap perubahan harga dan bertindak balas dengan cepat kepada trend
Purata bergerak menapis bunyi rawak dan menggabungkan dengan baik dengan momentum
Mekanisme Stop Loss mengehadkan kerugian pada perdagangan individu
Logik yang mudah dan jelas, mudah dilaksanakan dan backtest
Parameter fleksibel boleh disesuaikan dengan tempoh dan rejimen pasaran yang berbeza
Secara keseluruhan, ini adalah strategi yang hebat untuk pasaran trend. Ia boleh mendapat keuntungan yang ketara dari trend arah.
Walaupun terdapat kelebihan, beberapa risiko perlu diperhatikan:
Risiko pecah dalam trend menaik apabila harga berbalik selepas pecah
Risiko pembalikan dalam trend menurun apabila harga melompat selepas pecah
Whipsaw isyarat apabila harga berayun di sekitar purata bergerak
Isyarat yang salah jika parameter tidak ditetapkan dengan betul
Prestasi rendah di pasaran bergelombang
Hentikan kehilangan dan pergerakan yang ketat yang diperlukan untuk mengelakkan keluar awal
Untuk menangani risiko ini, strategi stop loss memerlukan pengoptimuman, menapis isyarat yang tidak perlu dengan parameter longgar, menyesuaikan parameter untuk tempoh yang berbeza, dan mengawal saiz kedudukan.
Berikut adalah beberapa cara strategi boleh dioptimumkan lebih lanjut:
Uji kombinasi parameter yang berbeza untuk hasil backtest terbaik
Menggabungkan peraturan Turtle Trading untuk keluar dengan kerugian 2N dan keuntungan 1N
Mengoptimumkan stop loss dengan penunjuk turun naik untuk stop loss adaptif
Tambahkan peraturan saiz kedudukan berdasarkan pengeluaran, masa, dll
Uji kaedah pengiraan momentum yang berbeza seperti momentum purata bergerak eksponensial
Tambah penapis corak candlestick untuk isyarat yang lebih kukuh
Menggunakan pembelajaran mesin untuk pengoptimuman parameter, pemilihan ciri, dll
Menggabungkan beberapa input manusia budi bicara pada titik utama
Dengan penambahbaikan ini, strategi ini boleh mencapai kestabilan yang lebih baik, kesesuaian, dan keuntungan. Tetapi sebarang pengoptimuman memerlukan pengesahan statistik yang ketat untuk mengelakkan terlalu banyak.
Strategi pengesanan momentum adalah pendekatan trend yang mudah dan praktikal. Ia dapat menangkap trend pasaran dengan lancar dan mendapat keuntungan daripada gelembung dan kemalangan. Tetapi risiko pemasangan lengkung perlu diuruskan dengan kawalan risiko yang disiplin untuk mengekalkan ketahanan. Dengan penyesuaian parameter dan pelanjutan fungsi, strategi dapat menghasilkan keuntungan yang stabil dalam lebih banyak rejim pasaran.
/*backtest start: 2023-11-02 00:00:00 end: 2023-11-09 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Momentum Strategy, rev.2", overlay=true) // // Data // src = input(close) lookback = input(20) cscheme=input(1, title="Bar color scheme", options=[1,2]) // // Functions // momentum(ts, p) => (ts - ts[p]) / ts[p] normalize(src, len) => hi = highest(src, len) lo = lowest(src, len) res = (src - lo)/(hi - lo) // // Main // price = close mid = sma(src, lookback) mom = normalize(momentum(price, lookback),100) // // Bar Colors // clr1 = cscheme==1?black: red clr2 = cscheme==1?white: green barcolor(close < open ? clr1 : clr2) // // Strategy // if (mom > .5 and price > mid ) strategy.entry("MomLE", strategy.long, stop=high+syminfo.mintick, comment="MomLE") else strategy.cancel("MomLE") if (mom < .5 and price < mid ) strategy.entry("MomSE", strategy.short, stop=low-syminfo.mintick, comment="MomSE") else strategy.cancel("MomSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)