Strategi Dagangan Pembalikan Kuantitatif Cepat Berdua Jalur

Penulis:ChaoZhang, Tarikh: 2023-12-19 15:59:36
Tag:

img

Ringkasan

Ini adalah strategi perdagangan pembalikan dua jalur berdasarkan saluran harga, pita Bollinger dan penunjuk RSI pantas. Ia menggabungkan indeks saluran untuk mengenal pasti trend, pita Bollinger untuk mengenali tahap sokongan dan rintangan, dan RSI pantas untuk mengesan isyarat overbought dan oversold, untuk mencapai perdagangan pembalikan yang cekap.

Logika Strategi

Strategi ini terutamanya bergantung kepada penunjuk berikut untuk membuat keputusan perdagangan:

  1. Saluran Harga: Mengira harga tertinggi dan terendah dalam tempoh tertentu dan merangka garis tengah saluran. Isyarat perdagangan dihasilkan apabila harga memecahkan saluran.

  2. Bollinger Bands: Garis pusat adalah garis pusat saluran harga. Garis atas dan bawah dikira berdasarkan penyimpangan standard penyimpangan harga dari garis pusat. Isyarat perdagangan dihasilkan apabila harga berinteraksi dengan Bollinger Bands.

  3. RSI pantas (Period = 2): Menentukan situasi overbought dan oversold untuk harga.

  4. Penunjuk CryptoBottom: Menentukan sama ada harga telah memecahkan tahap sokongan. Digabungkan dengan RSI cepat untuk menjana isyarat panjang kebarangkalian tinggi.

Mengikut masa harga menembusi saluran dan pita Bollinger untuk membuat perdagangan, dan pergi panjang atau pendek berdasarkan petunjuk overbought dan oversold RSI, logik perdagangan teras strategi ini terbentuk.

Kelebihan Strategi

Strategi ini mempunyai kelebihan berikut:

  1. Sistem dual-track meningkatkan ketepatan isyarat. Saluran harga menilai trend utama dan pita Bollinger mengenal pasti tahap sokongan dan rintangan yang tepat. Kombinasi ini meningkatkan kualiti isyarat.

  2. Indikator RSI pantas menangkap peluang pembalikan dengan mengesan overbought dan oversold. Tempoh RSI ditetapkan menjadi 2 supaya ia dapat dengan cepat mengenal pasti nod pembalikan.

  3. CryptoBottom mempercepatkan pengesahan isyarat panjang. Menembusi tahap sokongan membolehkan penilaian cepat mengenai ciri-ciri bawah dan mengelakkan isyarat panjang yang hilang.

  4. Tetapan parameter yang munasabah dan mudah dioptimumkan. Gabungan parameter yang mudah dan intuitif memudahkan pengoptimuman parameter.

Risiko Strategi

Terdapat juga beberapa risiko untuk strategi ini:

  1. Tetapan parameter yang tidak betul untuk pita Bollinger mungkin terlepas pergerakan harga yang signifikan atau menghasilkan isyarat palsu.

  2. Corak interaksi antara trek berganda boleh menjadi rumit, yang memerlukan kecanggihan teknikal untuk penilaian yang tepat.

  3. Risiko pembalikan yang gagal masih wujud kerana kebarangkalian harga ditarik kembali tidak dapat dihapuskan.

  4. Kesukaran dalam pengoptimuman parameter. Parameter optimum mungkin menjadi tidak berkesan jika keadaan pasaran berubah.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Mengoptimumkan parameter pita Bollinger untuk menjadikan pita atas dan bawah lebih dekat dengan harga, meningkatkan ketepatan isyarat perdagangan.

  2. Tambahkan mekanisme stop loss untuk mengurangkan kerugian apabila mereka mencapai peratusan ambang tertentu.

  3. Masukkan lebih banyak penunjuk untuk menentukan tahap trend, sokongan dan rintangan untuk mengurangkan isyarat palsu.

  4. Memperkenalkan algoritma pembelajaran mesin untuk menyesuaikan parameter secara automatik supaya mereka dapat menyesuaikan diri dengan perubahan persekitaran pasaran.

Kesimpulan

Strategi ini mengintegrasikan saluran harga, pita Bollinger dan penunjuk RSI pantas untuk membina sistem perdagangan pembalikan dua jalur. Semasa menilai trend utama, ia juga dengan cepat merebut sokongan, rintangan dan peluang overbought / oversold. Tetapan parameter mudah dan langsung, mudah difahami dan dioptimumkan. Ia dapat mengenal pasti peluang pembalikan dengan berkesan dan sesuai dengan perdagangan algoritma.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-11-30 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.3", shorttitle = "NoroBands str 1.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Use ColorBar")
usecb = input(true, "Use CryptoBottom")
usersi = input(true, "Use RSI")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 ? 1 : 0
//dn3 = fastrsi > 99 ? 1 : 0

longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true)
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Lebih lanjut