Strategi crossover rata-rata bergerak adalah strategi perdagangan kuantitatif yang sangat umum. Ini menggunakan salib emas dan salib kematian rata-rata bergerak untuk menentukan tren dan keuntungan. Ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, itu menandakan tren naik, dan posisi panjang dapat diambil. Ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang, itu menandakan tren menurun, dan posisi pendek dapat diambil.
Strategi ini didasarkan pada golden cross dan death cross dari moving average untuk menentukan titik masuk dan keluar.upOrDown
danlongOrShort
untuk menentukan panjang atau pendek;percentInput
untuk menetapkan persentase ambang perubahan harga;closePositionDays
untuk mengatur jumlah hari untuk memegang posisi.
Logika inti adalah: menghitung kenaikan/penurunan hari ini relatif terhadap kemarin. Jika mencapai persentase ambang masuk, sinyal perdagangan dipicu. Jika itu adalah sinyal panjang, ketika harga hari ini meningkat lebih dari ambang relatif terhadap kemarin, pergi panjang. Jika itu adalah sinyal pendek, ketika harga hari ini menurun lebih dari ambang relatif terhadap kemarin, pergi pendek.
Setelah pergi panjang/pendek, hari masuk dan 4 hari berikutnya akan ditandai dengan warna pada grafik. Posisi akan ditutup secara otomatis setelah 4 hari.
Manajemen risiko:
Strategi crossover rata-rata bergerak adalah strategi perdagangan kuantitatif yang sangat sederhana dan praktis. Dengan menilai hubungan antara tren jangka pendek dan jangka panjang, ia mendapat keuntungan dari sifat tren harga aset. Strategi ini mudah dilaksanakan dengan logika yang jelas, dan membentuk dasar dari banyak strategi perdagangan kuantitatif. Kita dapat memperoleh kinerja yang lebih baik melalui penyesuaian parameter dan optimasi. Tapi kita juga perlu mengelola risiko dan menghindari penyalahgunaan.
/*backtest start: 2023-01-01 00:00:00 end: 2023-10-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Created by Leon Ross strategy(title = "DaysAfterCertainPercentChangev1", shorttitle = "DACPCv1", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick=true, initial_capital=100000) //Inputs longOrShort = input(title="Long=Checked Short=Unchecked", type=bool, defval=true) //long=true, down=false upOrDown = input(title="Direction of Today vs. Previous day: Up=Checked Down=Unchecked", type=bool, defval=true) //up=true, down=false: this is the direction of days vs previous day percentInput = input(title="Percent", type=float, defval=4.5) closePositionDays = input(title="How Many Days to Close Position", defval=4) //Conditions //percentUpValue = (close / close[1]) - 1 //percentUp = percentUpValue >= (percentInput/100.0) //upConditions = percentUp //percentDownValue = 1- (close / close[1]) //percentDown = percentDownValue >= (percentInput/100.0) //downConditions = percentDown upValue = (close / close[1]) - 1 downValue = 1 - (close / close[1]) allConditions = if(upOrDown) upValue >= (percentInput/100.0) else downValue >= (percentInput/100.0) //Plots bgcolor(allConditions ? (upOrDown ? green : red) : na, transp=70) bgcolor(allConditions ? silver : na, transp=70, offset=1) bgcolor(allConditions ? silver : na, transp=70, offset=2) bgcolor(allConditions ? silver : na, transp=70, offset=3) bgcolor(allConditions ? silver : na, transp=70, offset=4) //bgcolor(downConditions == 1 ? red : na, transp=70) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=1) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=2) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=3) //bgcolor(downConditions == 1 ? silver : na, transp=70, offset=4) //Entires if(longOrShort) strategy.entry(id = "Long", long = true, when = allConditions) else strategy.entry(id = "Short", long = false, when = allConditions) //Exits if (barssince(allConditions) == closePositionDays) if(longOrShort) strategy.close("Long") else strategy.close("Short")