Strategi Palang Emas Kuantitatif

Penulis:ChaoZhang, Tanggal: 2023-11-22 14:39:33
Tag:

img

Gambaran umum

Strategi ini menghitung indikator volume bersih khusus untuk menerapkan strategi perdagangan membeli pada golden crossover dan menjual pada death crossover.

Prinsip Strategi

Logika inti dari strategi ini adalah untuk menghitung indikator volume bersih (NV) kustom. Indikator NV menilai arah perubahan harga. Jika positif, ia mengambil volume harian. Jika negatif, ia mengambil nilai negatif dari volume harian. Jika tidak berubah, ia mengambil 0.

Strategi ini kemudian menghitung garis rata-rata bergerak sederhana 3 hari dari indikator NV, masing-masing, sebagai garis silang emas dan garis silang kematian. Ketika indikator NV menembus garis silang emas dari bawah ke atas, pergi panjang. Ketika NV menembus garis silang kematian dari atas ke bawah, pergi pendek.

Selain itu, strategi juga menetapkan waktu awal dan akhir yang diparameterkan untuk mengontrol jam perdagangan.

Keuntungan dari Strategi

Keuntungan terbesar dari strategi ini adalah bahwa strategi ini sederhana dan jelas, mudah dimengerti, pengaturan parameter yang fleksibel, varietas perdagangan yang dapat disesuaikan, jam perdagangan, dll. Selain itu, strategi ini termasuk strategi trend-mengikuti yang dapat secara efektif menangkap tren harga, mengurangi frekuensi perdagangan, dan mencapai pengembalian yang lebih tinggi.

Risiko Strategi

Risiko utama dari strategi ini adalah:

  1. Strategi yang diikuti setiap hari tidak dapat merespon dengan cepat terhadap perubahan tren harga.

  2. Salib emas kuantitatif itu sendiri memiliki histeresis tertentu, yang dapat menyebabkan keterlambatan masuk dan kerugian yang diperkuat.

  3. Tidak mampu menyaring kebisingan pasar secara efektif dan rentan terhadap perangkap.

Rata-rata bergerak dapat digunakan secara dinamis, dikombinasikan dengan indikator lain untuk mengurangi risiko.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal dengan stop loss bergerak, metode stop loss overnight.

  2. Meningkatkan indikator penyaringan dan menggunakan MACD, KDJ dan indikator lainnya untuk menyaring sinyal palsu dan meningkatkan stabilitas strategi.

  3. Optimasi parameter, pencarian berulang untuk kombinasi parameter optimal melalui algoritma genetik, rantai Markov dan metode lainnya.

  4. Portofolio strategi dapat dikombinasikan dengan strategi lain yang tidak terkait untuk lebih mendiversifikasi risiko dan meningkatkan hasil keseluruhan.

Kesimpulan

Strategi ini mengimplementasikan tren sederhana dan efektif mengikuti melalui salib emas kuantitatif. Meskipun ada tingkat histeresis tertentu, pengaturan parameternya fleksibel dan mudah dipahami. Ini adalah strategi yang cocok untuk dipraktekkan oleh pemula. Melalui optimalisasi terus-menerus, efek strategi dapat secara bertahap ditingkatkan dan risiko dikurangi.


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

Lebih banyak