
Strategi ini menilai penekanan dan pelepasan pasaran melalui pelbagai petunjuk seperti Brin Belt, KC Channel dan Warna Garis Garis, dan digabungkan dengan arah garis rata untuk menentukan trend penubuhan, dan beroperasi apabila arah trend bertukar.
Hitung purata bergerak sederhana pada harga penutupan N hari di dalam zon Brin, M kali gelombang sebenar pada hari-hari N pada saluran medium + KC di atas zon Brin, dan M kali gelombang sebenar pada hari-hari N di saluran medium-KC di bawah zon Brin.
Hitungkan KC Channel. Di tengah-tengah KC Channel adalah purata bergerak sederhana untuk harga penutupan N hari, di atas adalah M kali ganda untuk di tengah-tengah + N hari gelombang sebenar, di bawah adalah M kali ganda untuk di tengah-tengah - N hari gelombang sebenar.
Periksa pemampatan dan pelepasan. Dikompresi apabila jalur atas Burin berada di bawah jalur atas KC dan jalur bawah Burin berada di atas jalur bawah KC. Dilepaskan apabila jalur atas Burin berada di atas jalur atas KC dan jalur bawah Burin berada di bawah jalur bawah KC.
Mengambil nilai purata harga penutupan pada hari N - harga tertinggi dan harga terendah pada hari N sebagai input, pengiraan regresi linear pada hari N, nilai yang lebih besar daripada 0 menunjukkan trend kenaikan penubuhan, dan yang lebih kecil daripada 0 menunjukkan trend penurunan penubuhan.
Isyarat dagangan: apabila penubuhan naik, garis pendek dan pelepasan sebagai sinyal banyak; apabila penubuhan turun, garis pendek dan pemampatan sebagai sinyal kosong.
Keputusan pelbagai petunjuk, meningkatkan ketepatan isyarat. Bergabung dengan pita Brin, saluran KC dan kabel untuk menilai pergerakan pasaran, mengelakkan isyarat palsu.
Pertimbangan trend penubuhan, perdagangan mengikut trend. Menggunakan penilaian penubuhan untuk trend utama, mengelakkan operasi berlawanan arah.
Penutupan automatik, mengawal risiko. Apabila harga menyentuh garis penutupan, penutupan kedudukan yang sama secara automatik.
Parameter jalur Brin dan KC yang tidak betul boleh menyebabkan kesalahan pengesanan pemampatan dan pelepasan.
“Penggunaan sistem ini adalah salah satu cara yang paling berkesan untuk menjana pendapatan”, kata beliau.
Kejadian yang tidak dijangka menyebabkan kerugian yang besar dan tidak dapat dihentikan, dan terdapat risiko kerugian yang besar.
Kaedah pengoptimuman: menyesuaikan parameter jalur Brin dan KC, menggunakan penilaian tambahan seperti ADX; mengemas kini kitaran garis rata-rata penubuhan tepat pada masanya, mengurangkan ketinggalan; memasukkan zon penampan apabila menetapkan garis hentian.
Gabungan dengan lebih banyak petunjuk teknikal, meningkatkan ketepatan isyarat gudang. Contohnya KDJ, MACD dan sebagainya.
Mengoptimumkan parameter kitaran pada garis rata-rata penubuhan, menjadikannya lebih mudah untuk menangkap trend baru.
Menambah petunjuk jumlah urus niaga untuk mengelakkan penembusan palsu, seperti indikator arus tenaga, pengumpulan / pengedaran, dan sebagainya.
Pertimbangan jangka masa yang berlainan, membezakan antara isyarat garis panjang dan garis pendek.
Parameter pengoptimuman AI, penjumlahan yang dicari dan kombinasi parameter terbaik yang dicari.
Strategi utama adalah: menggunakan Brinband untuk menentukan pemampatan dan pelepasan pasaran; membantu menggunakan trend penubuhan untuk menentukan arah trend utama; pada titik peralihan pelepasan pemampatan untuk melakukan operasi ke arah penubuhan balik. Kelebihan strategi adalah isyarat yang tepat, berhenti rugi, mengelakkan isyarat palsu. Strategi boleh dioptimumkan: kombinasi pelbagai indikator, pengoptimuman parameter penilaian trend, penambahan penunjuk tenaga kuantitatif, penilaian pelbagai tempoh masa, AI mencari kelebihan, dan sebagainya.
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2017
//@version=2
strategy(shorttitle = "Squeeze str 1.1", title="Noro's Squeeze Momentum Strategy v1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = true
mode2 = input(true, defval = true, title = "Mode 2")
usecolor = input(true, defval = true, title = "Use color of candle")
usebody = input(true, defval = true, title = "Use EMA Body")
needbg = input(false, defval = false, title = "Show trend background")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = (sqzOn == false) and (sqzOff == false)
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)
bcolor = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray
trend = val > 0 ? 1 : val < 0 ? -1 : 0
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Body
body = abs(close - open)
abody = sma(body, 10) / 3
//Indicator
bcol = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon))
scol = noSqz ? blue : sqzOn ? black : gray
plot(val, color=bcol, style=histogram, linewidth=4)
plot(0, color=scol, style=cross, linewidth=2)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up1 = trend == 1 and (bar == -1 or usecolor == false) and (body > abody or usebody == false) and mode2 == false
dn1 = trend == -1 and (bar == 1 or usecolor == false) and (body > abody or usebody == false) and mode2 == false
up2 = trend == 1 and val < val[1] and mode2
dn2 = trend == -1 and val > val[1] and mode2
exit = (strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price) and mode2
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * lev : lot[1]
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if exit
strategy.close_all()