
Strategi ini adalah strategi perdagangan untuk mengukur pembelian silang dan penjualan silang mati emas dengan menghitung indikator volume bersih khusus. Strategi ini adalah strategi mengikuti tren.
Logika inti dari strategi ini adalah menghitung jumlah bersih yang disesuaikan (NV) indikator. Indikator NV menilai arah perubahan harga dengan mengambil volume transaksi hari itu jika positif, jika negatif maka nilai negatif dari volume transaksi hari itu, dan jika tidak ada perubahan maka 0 . Dengan demikian, hubungan antara perubahan harga dan volume transaksi dapat lebih jelas.
Kemudian, strategi menghitung rata-rata bergerak sederhana 3 hari dari indikator NV, masing-masing sebagai garis persilangan emas dan garis persilangan mati. Bila indikator NV melintasi garis persilangan emas dari bawah ke atas, lakukan lebih banyak; Bila NV melintasi garis persilangan mati dari atas ke bawah, lakukan kosong.
Selain itu, strategi ini juga mengatur parameter waktu mulai dan berhenti untuk mengontrol waktu transaksi.
Keuntungan terbesar dari strategi ini adalah strategi yang sederhana dan jelas, mudah dipahami, pengaturan parameter yang fleksibel, jenis perdagangan yang dapat disesuaikan, waktu perdagangan, dll. Selain itu, strategi ini adalah strategi mengikuti tren, yang dapat secara efektif menangkap tren harga, mengurangi frekuensi perdagangan, dan mendapatkan tingkat keuntungan yang lebih tinggi.
Strategi ini memiliki risiko utama sebagai berikut:
Jika Anda mengikuti strategi, Anda tidak dapat bereaksi terhadap tren perubahan harga. Anda mungkin melewatkan beberapa peluang perdagangan atau tidak dapat menghentikan kerugian tepat waktu.
Pertukaran emas kuantitatif sendiri memiliki keterlambatan, yang dapat menyebabkan keterlambatan masuk dan memperluas kerugian.
Tidak bisa memfilter kebisingan pasar secara efektif, mudah untuk dibungkam.
Untuk mengurangi risiko, Anda dapat menggunakan Moving Average, yang dapat disaring dengan indikator lain.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Meningkatkan strategi stop loss, menggunakan stop loss mobile, stop loss overnight dan lain-lain untuk mengendalikan kerugian tunggal.
Menambahkan indikator filter, menggunakan indikator lain seperti MACD, KDJ untuk memfilter sinyal misinformasi, meningkatkan stabilitas strategi.
Optimasi parameter, iterasi mencari kombinasi parameter yang optimal melalui algoritma genetik, rantai Markov dan lain-lain.
Kombinasi strategi, dikombinasikan dengan strategi lain yang tidak relevan, dapat mendistribusikan risiko lebih jauh dan meningkatkan tingkat pengembalian secara keseluruhan.
Strategi ini memungkinkan mengikuti tren yang sederhana dan efektif melalui kuantitatif crossover emas, meskipun ada tingkat keterbelakangan, namun pengaturan parameternya fleksibel dan mudah dimengerti, merupakan strategi yang cocok untuk praktik pemula. Dengan terus-menerus mengoptimalkan, Anda dapat secara bertahap meningkatkan efektivitas strategi dan mengurangi risiko.
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-15 03:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="@DankCoins - Customized Net Volume")
src = input(defval = close, title = "VA Source")
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume
// Inputs //
VHigh = input(defval = 50, title = "VHigh Amount")
VLow = input(defval = -50, title = "VLow Amount")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2012)
MAV1 = sma(volume, 3)
MAV2 = -sma(volume, 3)
enterShort = crossunder(nv, MAV1)
exitShort = crossunder(nv, MAV2)
enterLong = crossover(nv, MAV2)
exitLong = crossover(nv, MAV1)
// Time Function
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
strategy.entry(id="Long Entry", long=true, when=enterLong and window())
strategy.entry(id="Short Entry", long=false, when=enterShort and window())
strategy.exit("Exit Long", from_entry = "Long Entry", when=exitLong and window())
strategy.exit("Exit Short", from_entry = "Short Entry", when=exitShort and window())
// Plot
plot(nv, color=blue, title="NV")
plot(VHigh, color=red)
plot(VLow, color=red)
plot(MAV1, color=green)
plot(MAV2, color=green)