
Strategi Single Mean Point Horizontal Break adalah strategi perdagangan kuantitatif yang didasarkan pada indikator momentum Chande. Strategi ini menilai apakah pasar berada dalam tahap penyusunan horisontal dengan menghitung perubahan dinamika harga.
Strategi ini pertama kali menghitung perubahan dinamika harga.mommLalu kita bagi menjadi positif dan negatif.m1dan dinamika negatifm2Kemudian menghitung jumlah massa positif negatif dalam periode tertentu.sm1Dansm2Akhirnya, Anda mendapatkan indikator momentum Chande.chandeMOIndikator ini dengan 0 sebagai sumbu tengah, ketika indikator lebih besar dari 0 berarti kekuatan naik lebih besar dari kekuatan turun, dan sebaliknya ketika kurang dari 0.
Ketika indikator momentum Chande dari rendah melanggar garis beli, menunjukkan bahwa harga keluar dari periode penurunan, masuk ke tahap penataan siap naik, saat ini strategi melakukan operasi beli. Ketika indikator dari tinggi jatuh melewati garis jual, maka dilakukan operasi jual.
Anda dapat mengatur garis beli dan jual yang dinamis, atau dalam kombinasi dengan sinyal filter indikator lainnya. Anda juga harus mengatur stop loss untuk mengontrol risiko.
Strategi ini sederhana, praktis, dan mampu secara efektif menangkap pergeseran tren. Namun, pengaturan parameter dan kontrol stop loss membutuhkan pengoptimalan lebih lanjut untuk mengurangi risiko sinyal dan kontrol yang salah. Secara keseluruhan, strategi ini memberikan alat yang efektif untuk menilai pergeseran tren untuk perdagangan kuantitatif.
/*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}}