Pivot Reversal Upgraded Long Only - Strategi Momentum Dual

Penulis:ChaoZhang, Tanggal: 2023-12-25 17:47:11
Tag:

img

Gambaran umum

Ini adalah strategi perdagangan kuantitatif yang hanya panjang yang menggabungkan keuntungan dari pembalikan titik pivot dan strategi rata-rata bergerak paling kecil. Ini mengikuti tren utama selama pasar bull dan menentukan sinyal pembalikan setelah mengamati rel atas titik pivot untuk pergi panjang. Pada saat yang sama, ini mengharuskan harga penutupan berada di atas Rata-rata Gerak Berkuadrat Terendah sebelum membuka posisi panjang untuk membuat strategi lebih stabil.

Logika Strategi

Strategi ini mengintegrasikan strategi pembalikan titik pivot dan rata-rata bergerak paling kecil. Strategi pembalikan titik pivot menghitung harga tertinggi dan terendah selama sejumlah hari perdagangan untuk mendapatkan rel atas dan bawah. Ketika harga menembus rel atas, itu dinilai sebagai sinyal pembalikan.

Secara khusus, strategi ini pertama menghitung harga tertinggi dari 3 bar terakhir dan harga terendah dari 16 bar terakhir untuk mendapatkan rel titik pivot atas dan bawah.

Keuntungan

  1. Menggabungkan kekuatan dari dua strategi untuk keputusan perdagangan yang lebih stabil dan andal

  2. Strategi titik pivot menilai titik pembalikan, sementara LSMA menyaring pemasangan palsu, mengurangi risiko perdagangan

  3. Hanya berlangsung lama, sesuai dengan harapan psikologis kebanyakan orang

  4. Logika strategi yang sederhana dan jelas, mudah dipahami dan dioptimalkan

  5. Frekuensi perdagangan moderat, cocok untuk operasi jangka menengah hingga panjang

Analisis Risiko

  1. Tidak mampu menangkap peluang dalam penurunan yang cepat

  2. Ada keterlambatan tertentu, mungkin kehilangan beberapa peluang naik

  3. Kerugian yang lebih besar ketika tren pasar berbalik

Solusi:

  1. Singkatkan siklus perhitungan dengan tepat untuk mengurangi lag

  2. Sesuaikan parameter MA untuk mengoptimalkan partisipasi

  3. Tambahkan stop loss untuk mengurangi kerugian tunggal

Arahan Optimasi

  1. Tambahkan beberapa indikator tren untuk meningkatkan akurasi

  2. Mengintegrasikan prediksi pembelajaran mesin untuk memandu keputusan

  3. Menggabungkan indikator volatilitas untuk mengontrol ukuran posisi

  4. Mengoptimalkan parameter untuk meningkatkan tingkat menang

  5. Uji data jangka waktu yang lebih lama untuk memverifikasi stabilitas

Ringkasan

Strategi ini mengintegrasikan kekuatan pembalikan titik pivot dan strategi LSMA untuk mengendalikan risiko saat menilai pembalikan tren. Dengan struktur sederhana untuk pemahaman dan pengujian yang mudah, ini sangat cocok untuk pemula yang baru belajar dan berlatih.


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




Lebih banyak