Strategi Penembusan Rata-rata Gerak Titik Tunggal

Penulis:ChaoZhang, Tanggal: 2024-02-02 11:19:19
Tag:

img

Gambaran umum

Strategi break-out rata-rata bergerak titik tunggal adalah strategi perdagangan kuantitatif yang didasarkan pada Osilator Momentum Chande. Ini mendeteksi ketika pasar berada dalam fase konsolidasi dengan menghitung perubahan momentum harga. Ketika garis Momentum Chande melintasi di atas garis beli atau jatuh di bawah garis jual, perdagangan panjang atau pendek akan dilaksanakan sesuai.

Logika Strategi

Strategi pertama menghitung perubahan momentum hargamomm, kemudian memisahkannya menjadi momentum positifm1dan momentum negatifm2. Selanjutnya, jumlah momentum positif dan negatif selama periode melihat kembali kesm1dansm2Akhirnya, Chande Momentum OscillatorchandeMOIndikator berosilasi di sekitar garis nol. pembacaan di atas nol menunjukkan momentum naik yang lebih kuat, sementara pembacaan di bawah nol menunjukkan momentum turun yang lebih kuat.

Ketika garis Chande Momentum melintasi di atas garis beli dari level yang lebih rendah, itu menandakan bahwa harga sedang keluar dari tren penurunan dan siap untuk memulai tren naik. Strategi akan panjang. Ketika garis jatuh di bawah garis jual dari level yang lebih tinggi, posisi pendek akan dimulai.

Analisis Keuntungan

  • Strategi ini mampu mengidentifikasi titik balik dari tren penurunan ke konsolidasi ke tren naik, memungkinkan masuk dengan harga rendah dan keluar dengan harga tinggi.
  • Osilator Momentum Chande mempertimbangkan baik besar dan laju perubahan harga, membuatnya sangat efektif untuk deteksi tren.
  • Logika strategi sederhana dan mudah diterapkan.

Analisis Risiko

  • Osilator Momentum Chande sensitif terhadap parameter input. Penyesuaian parameter yang berbeda dapat menyebabkan sinyal dan hasil perdagangan yang sangat berbeda.
  • Pengaturan garis beli dan jual statis juga dapat memperkenalkan sinyal palsu yang berlebihan.
  • Kurangnya stop loss berarti bahwa kehilangan perdagangan dapat mengumpulkan kerugian besar.

Beberapa cara untuk meningkatkan termasuk menggunakan garis beli / jual dinamis, menyaring sinyal dengan indikator lain, dan menerapkan stop loss untuk mengendalikan risiko.

Arahan Optimasi

  • Uji pengaturan parameter yang berbeda untuk menemukan nilai optimal
  • Mengadopsi lini beli dan jual yang dinamis
  • Tambahkan filter tambahan dengan indikator lain
  • Masukkan logika stop loss untuk mengurangi kerugian

Kesimpulan

Strategi breakout rata-rata bergerak titik tunggal mengidentifikasi titik balik tren dari downtrend ke konsolidasi ke uptrend menggunakan Chande Momentum Oscillator, yang memungkinkan perdagangan jual tinggi beli rendah. Meskipun sederhana dan intuitif, peningkatan dalam penyesuaian parameter, penyaringan sinyal dan pengendalian risiko dapat lebih meningkatkan kinerja. Secara keseluruhan, ini berfungsi sebagai alat yang efektif bagi pedagang kuantitatif untuk menentukan pembalikan tren.


/*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}}

Lebih banyak