Strategi Penembusan Oscillasi Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2024-01-08 14:43:48
Tag:

img

Ringkasan

Strategi Breakout Oscillation Dual Moving Average adalah strategi perdagangan jangka pendek yang menggunakan sistem purata bergerak berganda. Strategi ini menghasilkan isyarat perdagangan berdasarkan saluran harga dan Bollinger Bands berganda, dibantu oleh penunjuk RSI cepat untuk menentukan keadaan overbought dan oversold. Ia bertujuan untuk menangkap breakout dalam trend harga jangka menengah untuk keuntungan.

Logika Strategi

Strategi Breakout Oscillation Rata-rata Bergerak Berganda menggunakan saluran harga 20 tempoh dan Bollinger Bands sebagai penunjuk perdagangan utama. Saluran harga terdiri daripada purata bergerak harga tertinggi dan terendah, mewakili julat osilasi harga semasa. Bollinger Bands dibentuk oleh garis tengah saluran harga dan penyimpangan standard, yang secara intuitif menerangkan julat fluktuasi harga. Apabila harga mendekati rel atas dan bawah saluran, ia menunjukkan bahawa harga mungkin menembusi julat osilasi dan membentuk trend baru. Pada ketika ini, digabungkan dengan penunjuk RSI yang cepat untuk menilai keadaan overbought atau oversold, arah trend dapat ditentukan dan keputusan perdagangan boleh dibuat.

Secara khusus, apabila RSI pantas di bawah 5, ia dianggap zon oversold, dan apabila RSI pantas melebihi 99, ia dianggap zon overbought. Di samping itu, faktor-faktor seperti arah entiti K-line dan harga tinggi baru (rendah) juga harus dipertimbangkan untuk mengelakkan pecah palsu. Apabila syarat-syarat di atas dipenuhi, isyarat beli dan jual dihasilkan.

Kelebihan

Kelebihan terbesar strategi Breakout Rata-rata Bergerak Berganda adalah bahawa ia menangkap titik-titik perubahan trend harga jangka sederhana untuk keuntungan. Berbanding dengan purata bergerak tunggal dan saluran, Bollinger Bands berganda lebih secara intuitif mencerminkan turun naik harga dan jumlah. Dan berbanding dengan penunjuk kitaran yang lebih lama seperti purata bergerak 20 hari dan 60 hari, ia bertindak balas dengan lebih cepat terhadap perubahan harga dan mempunyai kadar kejayaan yang lebih tinggi dalam menangkap giliran. Di samping itu, menggabungkan penunjuk RSI cepat dapat menapis secara berkesan pecah palsu. Oleh itu, strategi ini dapat memaksimumkan kebarangkalian keuntungan.

Risiko

Strategi Breakout Pergerakan Purata Bergerak Berganda mempunyai beberapa risiko. Pertama, perdagangan jangka sederhana itu sendiri mempunyai risiko kehilangan berhenti yang lebih tinggi. Dalam trend yang kuat, pecah palsu mungkin berlaku beberapa kali pada penunjuk jangka sederhana, menyebabkan berhenti. Kedua, keberkesanan penunjuk RSI cepat dalam menilai zon overbought dan oversold akan dipengaruhi oleh sentimen pasaran. Apabila perubahan struktur berlaku di pasaran, kegunaan penunjuk tambahan tersebut akan berkurangan. Akhirnya, menggabungkan faktor lain seperti harga penutupan, jumlah dan perolehan boleh meningkatkan ketepatan keputusan.

Langkah balas adalah untuk menyesuaikan julat stop loss dengan sewajarnya, melonggarkan titik stop loss dalam trend menaik, dan mengetatkannya dalam trend menurun. Di samping itu, pertimbangkan sepenuhnya lebih banyak penunjuk tambahan untuk mengelakkan bergantung hanya pada satu atau dua penunjuk. Apabila kesan penilaian berkurangan, kurangkan kedudukan dengan sewajarnya untuk mengelakkan risiko.

Arahan pengoptimuman

Masih ada ruang untuk pengoptimuman lebih lanjut strategi Penembusan Pergerakan Rata-rata Bergerak Berganda. Pertama, pengoptimuman parameter. Lebih banyak parameter kitaran boleh diuji untuk mencari kombinasi parameter yang optimum. Kedua, pengoptimuman model. Memperkenalkan model pembelajaran mesin untuk menilai kawasan yang terlalu banyak dibeli dan terlalu banyak dijual dengan lebih tepat. Ketiga, pengoptimuman jangka masa. Uji di bawah jangka masa yang berbeza seperti harian dan 60 minit secara berasingan untuk menentukan senario aplikasi terbaik. Keempat, pengoptimuman keadaan. Tambah lebih banyak indikator jumlah dan harga untuk menapis isyarat, seperti pengembangan jumlah dan trend indeks DMI.

Kesimpulan

Strategi Penembusan Oscillasi Purata Bergerak Berganda menangkap penembusan harga jangka menengah dengan membina sistem jalur Bollinger berganda, yang merupakan strategi penjejakan trend yang berkesan. Strategi ini mempunyai kadar kejayaan yang tinggi dan tindak balas yang cepat, dan dapat memperoleh keuntungan dengan berkesan. Melalui pengoptimuman parameter, pengoptimuman model, pemilihan bingkai masa dan cara lain, prestasi strategi dapat ditingkatkan lagi. Strategi ini sesuai untuk peniaga kuantitatif yang berpengalaman untuk menjalankan penambahbaikan kuantitatif dan aplikasi.


/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.4", shorttitle = "NoroBands str 1.4", 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")
usemm = input(true, "Use min/max")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
needlo = input(false, defval = false, title = "Show Locomotive")
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
hd2 = center + distsma * 2
ld2 = center - distsma * 2

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

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
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")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//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) and (min < min[1] or usemm == false) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) ? 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

//Locomotive
uploco = trend == 1 and close < open and min < min[1] and close < center ? 1 : 0
plotarrow(needlo == true and uploco == 1 ? 1 : 0, colorup = black, colordown = black, transp = 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