Strategi perdagangan kuantitatif yang efisien berdasarkan model kuantitatif yang disesuaikan


Tanggal Pembuatan: 2023-12-22 13:14:33 Akhirnya memodifikasi: 2023-12-22 13:14:33
menyalin: 0 Jumlah klik: 658
1
fokus pada
1623
Pengikut

Strategi perdagangan kuantitatif yang efisien berdasarkan model kuantitatif yang disesuaikan

Ringkasan

Strategi ini adalah strategi perdagangan kuantitatif yang efisien yang dibuat khusus berdasarkan model kuantitatif. Strategi ini menggunakan model Volume Modelius sebagai model dasar, dan di atasnya melakukan perluasan dan pengoptimalan. Strategi ini dapat menangkap peluang perdagangan kuantitatif di pasar dan menghasilkan keuntungan yang stabil.

Prinsip Strategi

Inti dari strategi ini adalah model Volume Modelius. Model ini menggunakan perubahan harga, volume transaksi untuk mengidentifikasi peluang perdagangan kuantitatif di pasar. Secara khusus, strategi ini digabungkan dengan menggunakan harga tutup, harga terbuka, harga tertinggi, harga terendah, untuk menghitung arah garis K saat ini sesuai dengan aturan tertentu.

Logika dasar perdagangan adalah, ketika indikator dari nilai negatif ke nilai positif, lakukan lebih banyak; ketika indikator dari nilai positif ke nilai negatif, lakukan lebih sedikit. Selain itu, strategi ini juga mengatur stop loss, stop loss, dan tracking stop loss untuk mengendalikan risiko.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah bahwa model Volume Modelius dapat digunakan untuk mengidentifikasi peluang perdagangan kuantitatif secara efektif. Model ini lebih fokus pada perubahan volume perdagangan dibandingkan dengan indikator teknis tradisional, yang sangat praktis dalam perdagangan kuantitatif frekuensi tinggi saat ini. Selain itu, aturan masuk strategi lebih ketat, yang dapat secara efektif menghindari kehilangan peluang perdagangan kuantitatif dan mengurangi kemungkinan kekacauan.

Analisis risiko

Risiko utama dari strategi ini adalah bahwa model Volume Modelius sendiri tidak dapat sepenuhnya menghindari kebisingan. Ketika pasar mengalami fluktuasi yang tidak biasa, dapat menyebabkan kesalahan sinyal perdagangan. Selain itu, pengaturan parameter dalam strategi juga dapat mempengaruhi hasil akhir.

Untuk mengontrol risiko, parameter dapat disesuaikan dengan tepat, dan dikombinasikan dengan indikator lain untuk penilaian tambahan. Selain itu, perlu juga pengaturan yang masuk akal dari stop loss, stop stop position.

Arah optimasi

Strategi ini juga memiliki ruang untuk optimasi tertentu. Misalnya, Anda dapat mempertimbangkan untuk mengoptimalkan parameter pengaturan secara dinamis dengan algoritma pembelajaran mesin. Atau dengan indikator seperti analisis emosi untuk meningkatkan akurasi keputusan. Selain itu, Anda juga dapat mempelajari hubungan antara varietas yang berbeda dan membangun model arbitrage multi-varietas.

Meringkaskan

Secara keseluruhan, strategi ini memanfaatkan keunggulan model kuantitatif Volume Modelius untuk merancang strategi perdagangan kuantitatif yang lebih kuat. Strategi ini dapat dioptimalkan melalui penyesuaian parameter, perluasan model, dan pembelajaran mesin untuk mendapatkan keuntungan yang lebih stabil dalam perdagangan nyata.

Kode Sumber Strategi
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=3
strategy(title="strategy modelius volume model ", shorttitle="mvm",overlay=true, calc_on_order_fills=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)

method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating=input(defval=true, type=bool, title="Oscillating")
normalize=input(defval=false, type=bool, title="Normalize")
vol = useTrueRange == "Always" or (useTrueRange == "Auto" and na(volume))? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low

if method == "ATR"
    methodvalue := atr(round(methodvalue))
if method == "Part of Price"
    methodvalue := close/methodvalue

currclose = na
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose

direction = na
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0

barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol/barcount : vol


x=isOscillating and directionIsDown ? -res : res

TP = input(0) * 10
SL = input(0) * 10
TS = input(1) * 10
TO = input(3) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na
TOP = (TO > 0) ? TO : na

longCondition = crossover(x,0)
if (longCondition)
    strategy.entry("Long", strategy.long)


shortCondition = crossunder(x,0)
if (shortCondition)
    strategy.entry("Short", strategy.short)

strategy.exit("Close Short", "Short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)
strategy.exit("Close Long", "Long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP, trail_offset=TOP)