Strategi NoroBands Posisional Momentum


Tanggal Pembuatan: 2024-01-18 10:58:48 Akhirnya memodifikasi: 2024-01-18 10:58:48
menyalin: 1 Jumlah klik: 561
1
fokus pada
1617
Pengikut

Strategi NoroBands Posisional Momentum

Ringkasan

Strategi ini adalah strategi terobosan dinamis yang didasarkan pada teori band Noro yang dikombinasikan dengan teknik kuantitatif. Strategi ini membentuk sinyal jual beli dan melakukan perdagangan terobosan band dengan menghitung berbagai indikator seperti garis rata-rata, RSI, band, dan bullish.

Prinsip Strategi

  1. Perhitungan tren naik turun dari band ini melalui rata-rata amplitudo riil. Penembusan tren naik adalah sinyal bullish, dan penembusan tren turun adalah sinyal bearish.
  2. Jika dilihat dari indikator RSI, zona overbought dan oversold, RSI berada di bawah 30 bullish dan di atas 70 bearish.
  3. Judikan arah pergerakan harga dengan melihat harga tertinggi dan harga terendah.
  4. Berdasarkan warna bullish dan bearish. Hijau untuk bullish dan bearish. Merah untuk bearish dan bearish.
  5. Ini adalah sinyal perdagangan yang dipasangkan dengan pertimbangan kesetaraan dan deviasi.

Analisis Keunggulan

  1. Kombinasi berbagai indikator untuk meningkatkan akurasi.
  2. Kombinasi teori band dengan teknologi kuantitatif membuat strategi ini lebih efektif.
  3. Keuntungan yang didapatkan dari perpindahan momentum yang digabungkan dengan perdagangan reverse, meningkatkan ruang untuk keuntungan.
  4. Skalabilitas yang kuat, dapat disesuaikan dengan parameter pasar

Analisis risiko

  1. Pengaturan parameter perlu terus dioptimalkan dan diuji.
  2. Tidak dapat bereaksi tepat waktu saat beralih ke multi ruang, dapat menyebabkan kerugian.
  3. Banyak transaksi yang dilakukan dan rentan terhadap biaya transaksi dan slippage.
  4. Parameter band harus disesuaikan dengan siklus yang berbeda.

Arah optimasi

  1. Verifikasi multi-periode untuk mencari kombinasi parameter yang optimal.
  2. Meningkatkan strategi stop loss dan mengurangi kerugian tunggal.
  3. Meningkatkan manajemen posisi, meningkatkan efisiensi keuntungan.
  4. Optimasi parameter otomatis dengan Deep Learning.

Meringkaskan

Strategi ini menggunakan berbagai indikator teknis kuantitatif yang komprehensif, dengan kombinasi indikator momentum dan indikator reversal untuk mencapai keuntungan yang efisien. Pada saat yang sama, menggunakan teori amplitudo rata-rata nyata untuk menemukan titik masuk yang masuk akal.

Kode 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)