Strategi Salib Emas Kuantitatif

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

img

Ringkasan

Strategi ini mengira penunjuk jumlah bersih tersuai untuk melaksanakan strategi perdagangan membeli pada persimpangan emas dan menjual pada persimpangan kematian.

Prinsip Strategi

Logik teras strategi ini adalah untuk mengira penunjuk jumlah bersih (NV) tersuai. Penunjuk NV menilai arah perubahan harga. Jika positif, ia mengambil jumlah harian. Jika negatif, ia mengambil nilai negatif jumlah harian. Jika tidak berubah, ia mengambil 0. Ini dapat mencerminkan hubungan antara perubahan harga dan jumlah dengan lebih jelas.

Strategi ini kemudian mengira garis purata bergerak mudah 3 hari penunjuk NV, masing-masing, sebagai garisan silang emas dan garisan silang kematian. Apabila penunjuk NV memecahkan garisan silang emas dari bawah ke atas, pergi panjang. Apabila NV memecahkan garisan silang kematian dari atas ke bawah, pergi pendek.

Di samping itu, strategi ini juga menetapkan waktu permulaan dan akhir yang parameter untuk mengawal waktu dagangan.

Kelebihan Strategi

Kelebihan terbesar strategi ini adalah bahawa strategi ini mudah dan jelas, mudah difahami, tetapan parameter yang fleksibel, jenis perdagangan yang boleh disesuaikan, jam dagangan, dll. Di samping itu, strategi ini tergolong dalam strategi trend yang dapat menangkap trend harga dengan berkesan, mengurangkan kekerapan dagangan, dan mencapai pulangan yang lebih tinggi.

Risiko Strategi

Risiko utama strategi ini ialah:

  1. Strategi harian tidak dapat bertindak balas dengan segera terhadap perubahan trend harga. Ia mungkin kehilangan beberapa peluang perdagangan atau gagal menghentikan kerugian tepat pada masanya.

  2. Salib emas kuantitatif itu sendiri mempunyai histeresis tertentu, yang boleh membawa kepada kemasukan lewat dan kehilangan yang diperkuat.

  3. Tidak dapat menapis bunyi bising pasaran dengan berkesan dan mudah tertipu.

Purata bergerak boleh digunakan secara dinamik, digabungkan dengan penunjuk lain untuk mengurangkan risiko.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Tingkatkan strategi stop loss untuk mengawal kerugian tunggal dengan pergerakan stop loss, kaedah stop loss semalaman.

  2. Meningkatkan penapisan penunjuk dan menggunakan MACD, KDJ dan penunjuk lain untuk menapis isyarat palsu dan meningkatkan kestabilan strategi.

  3. Pengoptimuman parameter, carian berulang untuk kombinasi parameter optimum melalui algoritma genetik, rantaian Markov dan kaedah lain.

  4. Portfolio strategi boleh digabungkan dengan strategi lain yang tidak berkaitan untuk lebih mempelbagaikan risiko dan meningkatkan pulangan keseluruhan.

Kesimpulan

Strategi ini melaksanakan trend yang mudah dan berkesan mengikut salib emas kuantitatif. Walaupun terdapat tahap histeresis tertentu, tetapan parameter fleksibel dan mudah difahami. Ini adalah strategi yang sesuai untuk diamalkan oleh pemula. Melalui pengoptimuman berterusan, kesan strategi dapat dipertingkatkan secara beransur-ansur dan mengurangkan 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)

Lebih lanjut