Strategi NoroBands Kedudukan Momentum


Tarikh penciptaan: 2024-01-18 10:58:48 Akhirnya diubah suai: 2024-01-18 10:58:48
Salin: 1 Bilangan klik: 561
1
fokus pada
1617
Pengikut

Strategi NoroBands Kedudukan Momentum

Gambaran keseluruhan

Strategi ini adalah strategi penembusan dinamik berdasarkan teori band Noro yang digabungkan dengan teknik kuantitatif. Ia membentuk isyarat jual beli dan melakukan perdagangan penembusan band dengan mengira pelbagai petunjuk seperti garis rata-rata, RSI, band dan warna bullish.

Prinsip Strategi

  1. Mengambil kiraan purata gelombang sebenar untuk menentukan aliran naik dan turun di dalam segmen tersebut. Perlanggaran harga ke atas merupakan isyarat kenaikan, dan ke bawah adalah isyarat penurunan.
  2. Kaedah RSI menilai kawasan overbought dan oversold dengan RSI di bawah 30 bullish dan di atas 70 bearish.
  3. Arah pergerakan harga ditentukan oleh harga tertinggi dan harga terendah.
  4. Warna biru menunjukkan harga saham naik atau turun. Hijau menunjukkan harga saham naik atau turun. Merah menunjukkan harga saham turun atau turun.
  5. Ini adalah satu-satunya cara yang boleh digunakan untuk membuat keputusan perdagangan.

Analisis kelebihan

  1. Kombinasi pelbagai indikator untuk meningkatkan ketepatan.
  2. Gabungan teori gelombang dengan teknik kuantitatif menjadikan strategi ini lebih berkesan.
  3. Perkongsian momentum dengan perdagangan reverse, meningkatkan ruang untuk keuntungan.
  4. Skala yang kuat, parameter boleh disesuaikan mengikut pasaran.

Analisis risiko

  1. Tetapan parameter perlu terus dioptimumkan dan diuji.
  2. Tidak dapat bertindak balas tepat pada masanya apabila beralih ke multiroom, yang boleh menyebabkan kerugian.
  3. Lebih banyak transaksi, lebih terdedah kepada bayaran transaksi dan slippage.
  4. Parameter band perlu diselaraskan mengikut tempoh yang berbeza.

Arah pengoptimuman

  1. Periksa tempoh masa berbilang untuk mencari kombinasi parameter terbaik.
  2. Meningkatkan strategi hentikan kerugian dan mengurangkan kerugian tunggal.
  3. Meningkatkan pengurusan kedudukan dan meningkatkan kecekapan keuntungan.
  4. Mengoptimumkan parameter secara automatik dengan pembelajaran mendalam.

ringkaskan

Strategi ini menggunakan pelbagai indikator teknikal kuantitatif yang tipikal untuk mencapai keuntungan yang cekap dengan menggabungkan indikator momentum dan indikator pembalikan. Pada masa yang sama, menggunakan teori purata gelombang nyata untuk mencari titik masuk yang munasabah. Ia boleh dikatakan sebagai contoh gabungan indikator teknikal dan teori. Dengan pengoptimuman parameter dan kawalan risiko yang terus diperbaiki, ia pasti akan menjadi strategi kuantitatif yang stabil dan cekap.

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


//@version=2
strategy("Noro's Bands Strategy v1.5", shorttitle = "NoroBands str 1.5", overlay=true)

//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, defval = true, title = "Use ColorBar")
usecb = input(true, defval = true, title = "Use CryptoBottom")
usersi = input(true, defval = true, title = "Use RSI")
usemm = input(true, defval = true, title = "Use min/max")
usepyr = input(true, defval = true, title = "Use pyramiding")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
needlo = input(false, defval = false, title = "Show Locomotive")
needpy = input(false, defval = false, title = "Show Avg.price line")
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) and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) and (max > max[1] or usemm == false) and (close > strategy.position_avg_price or usepyr == false or strategy.position_size >= 0) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 and usersi == true and (close < strategy.position_avg_price or usepyr == false or strategy.position_size <= 0) ? 1 : 0
//dn3 = fastrsi > 95 and usersi = true ? 1 : 0

//Avg Price
colpy = needpy == false ? na : black
plot(strategy.position_avg_price, color = colpy)

up4 = close < strategy.position_avg_price and usepyr == true and strategy.position_size >= 0 ? 1 : 0 
dn4 = close > strategy.position_avg_price and usepyr == true and strategy.position_size <= 0 ? 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) or up4 == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

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