Strategi breakout purata bergerak titik tunggal adalah strategi perdagangan kuantitatif berdasarkan Osilator Momentum Chande. Ia mengesan apabila pasaran berada dalam fasa penyatuan dengan mengira perubahan momentum harga. Apabila garis Momentum Chande melintasi di atas garis beli atau jatuh di bawah garis jual, perdagangan panjang atau pendek akan dilaksanakan dengan sewajarnya.
Strategi pertama mengira perubahan momentum hargamomm
, kemudian memisahkannya ke dalam momentum positifm1
dan momentum negatifm2
. Seterusnya, ia menjumlahkan momentum positif dan negatif dalam tempoh melihat kembali kesm1
dansm2
Akhirnya, Chande Momentum OscillatorchandeMO
Pembacaan di atas sifar menunjukkan momentum menaik yang lebih kuat, manakala pembacaan di bawah sifar menunjukkan momentum menurun yang lebih kuat.
Apabila garis Momentum Chande melintasi di atas garis beli dari tahap yang lebih rendah, ia menandakan bahawa harga sedang keluar dari trend penurunan dan bersedia untuk memulakan trend kenaikan. Strategi akan menjadi panjang. Apabila garis jatuh di bawah garis jual dari tahap yang lebih tinggi, kedudukan pendek akan dimulakan.
Beberapa cara untuk meningkatkan termasuk menggunakan garis beli / jual dinamik, menapis isyarat dengan penunjuk lain, dan melaksanakan stop loss untuk mengawal risiko.
Strategi penembusan purata bergerak titik tunggal mengenal pasti titik perubahan trend dari downtrend ke penyatuan ke uptrend menggunakan Chande Momentum Oscillator, yang membolehkan perdagangan jual tinggi membeli rendah. Walaupun mudah dan intuitif, peningkatan dalam penyesuaian parameter, penapisan isyarat dan kawalan risiko dapat meningkatkan prestasi. Secara keseluruhan, ia berfungsi sebagai alat yang berkesan untuk peniaga kuantitatif untuk menentukan pembalikan trend.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //* Backtesting Period Selector | Component *// //* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *// //* https://www.tradingview.com/u/pbergden/ *// //* Modifications made *// testStartYear = input(2021, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(10, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(999999, "Backtest Stop Year") testStopMonth = input(9, "Backtest Stop Month") testStopDay = input(26, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => true /////////////// END - Backtesting Period Selector | Component /////////////// strategy(title="Chande Momentum Strat", shorttitle="ChandeMO Strat", format=format.price, precision=2) length = input(9, minval=1) src = input(close, "Price", type = input.source) momm = change(src) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = sum(m1, length) sm2 = sum(m2, length) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) plot(chandeMO, "Chande MO", color=color.blue) hline(0, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line") buyline= input(-80) sellline= input(80) hline(buyline, color=color.gray) hline(sellline, color=color.gray) if testPeriod() if crossover(chandeMO, buyline) strategy.entry("Long", strategy.long, alert_message="a=ABCD b=buy e=binanceus q=1.2 s=uniusd") // strategy.exit(id="Long Stop Loss", stop=strategy.position_avg_price*0.8) //20% stop loss if crossunder(chandeMO, sellline) strategy.entry("Short", strategy.short, alert_message="a=ABCD b=sell e=binanceus q=1.2 s=uniusd") // strategy.exit(id="Short Stop Loss", stop=strategy.position_avg_price*1.2) //20% stop loss // remember to alert as {{strategy.order.alert_message}}