
Ini adalah strategi perdagangan kuantitatif multi-headed yang menggabungkan keunggulan strategi pivot reversal dan minimal dua kali bergerak rata-rata. Strategi ini mengikuti tren utama di pasar bullish, dan menilai sinyal reversal setelah mengamati pivot yang terbentuk di atas rel. Pada saat yang sama, ia meminta harga close out di atas minimal dua kali bergerak rata-rata untuk membuka posisi lebih banyak, membuat strategi lebih stabil.
Strategi ini menggabungkan strategi pivot point reversal dan strategi minimal dua kali rata-rata bergerak. Strategi pivot point reversal menghitung harga tertinggi dan terendah pada hari perdagangan tertentu yang lalu, dan mendapatkan uptrend dan downtrend. Ketika harga menembus uptrend, pertimbangannya adalah sinyal reversal.
Secara khusus, strategi ini pertama-tama menghitung harga tertinggi dari 3 garis K terakhir dan harga terendah dari 16 garis K terakhir, untuk mendapatkan titik sumbu atas dan bawah. Ketika jalur atas terbentuk, buka lebih banyak; ketika jalur bawah berikutnya terbentuk, tutup. Pada saat yang sama, ia meminta harga penutupan lebih tinggi dari rata-rata bergerak minimal dua kali 20 hari untuk membuka posisi.
Menggabungkan keunggulan dari kedua strategi ini membuat keputusan trading lebih stabil dan dapat diandalkan
Strategi pivot point dapat menentukan titik balik, minimal dua kali rata-rata bergerak memfilter kebocoran palsu, mengurangi risiko perdagangan
Hanya melakukan hal-hal yang sesuai dengan harapan sebagian besar orang.
Strategi yang sederhana dan jelas, mudah dipahami dan dioptimalkan
Frekuensi perdagangan sedang, cocok untuk operasi jangka panjang menengah
Tidak dapat memanfaatkan peluang penurunan pasar yang cepat
Ada beberapa keterlambatan, mungkin kehilangan beberapa kesempatan untuk mendapatkan uang
“Kalau Anda bertransformasi, Anda akan mengalami kerugian lebih besar”.
Solusi:
Mempersingkat siklus perhitungan dengan tepat untuk mengurangi keterlambatan
Menyesuaikan parameter moving average untuk mengoptimalkan partisipasi
Meningkatkan strategi stop loss dan mengurangi kerugian tunggal
Menambahkan berbagai kombinasi indikator tren untuk meningkatkan akurasi penilaian
Meningkatkan Prediksi Model Pembelajaran Mesin untuk Memandu Keputusan
Kombinasi dengan indikator volatilitas untuk mengontrol ukuran posisi
Optimalkan parameter untuk meningkatkan peluang strategi
Uji data siklus waktu yang lebih lama untuk memverifikasi stabilitas
Strategi ini mengintegrasikan keunggulan strategi pivot reversal dan strategi minimal dua kali lipat moving average, mengendalikan risiko sambil menilai trend reversal, merupakan strategi yang solid. Strukturnya sederhana, mudah dipahami dan diuji, sangat cocok untuk belajar dan berlatih pemula perdagangan kuantitatif. Namun, strategi ini hanya melakukan lebih banyak dan tidak dapat memanfaatkan tren turun untuk mendapatkan keuntungan, ini adalah keterbatasan utamanya.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author exlux99
strategy(title = "Pivot Reversal Upgraded long only", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)
/////////////
//time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//
length = input(title="Length MA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, length, offset)
//LSMA
leftBars = input(3)
rightBars = input(16)
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1])
//leverage
multiplier=input(1.0, step=0.5)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)
//entry
strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier)
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
strategy.close("long", when=se)