
Strategi ini menggunakan indikator garis blur untuk menentukan amplitudo turun naik harga, digabungkan dengan bentuk garis K untuk melakukan operasi penembusan harga. Jalur atas dan bawah garis blur dapat secara kasar menentukan trend kenaikan dan penurunan harga, digabungkan dengan indikator bentuk garis K, dapat mencari masa beli dan jual yang lebih jelas. Strategi ini terutamanya menilai garis blur lebih banyak penembusan bawah, penembusan atas kosong, dan digabungkan dengan indikator Stoch untuk menentukan keadaan overbought dan oversold, menggunakan bentuk garis K untuk memberikan isyarat pilihan beli dan jual.
Strategi ini terdiri daripada beberapa bahagian utama:
Indikator garis Brin, termasuk garis Brin di tengah-tengah, atas dan bawah. Garis Brin menggunakan perbezaan piawai harga untuk mengira julat turun naik harga, dan dengan itu menentukan trend turun naik harga.
Indeks Stoch, untuk menentukan sama ada saham berada dalam keadaan overbought dan oversold. Garis K dan D dapat menentukan sama ada pecah ke atas dan pecah ke bawah.
K lineage, menilai beberapa bentuk yang biasa seperti Da yang, Da yang, Da yang dan lain-lain sebagai pilihan beli dan jual.
Syarat pembelian: harga naik melalui garis bawah Brin, penunjuk Stoch menunjukkan oversold ((K<20, D<20), garis purata bergerak pantas melangkaui garis purata bergerak perlahan ke atas.
Terma Jual: Berjaya di bawah harga, atau rugi selepas keuntungan.
Strategi ini menggabungkan analisis trend dan penilaian overbought dan oversold, mengurangkan peluang kemenangan ecausefalse, dan dapat memasuki pasaran tepat pada masanya apabila trend muncul. Tetapi ada juga risiko tersandung, yang memerlukan hentian tepat pada masanya.
Gabungan antara garis Brin dan indeks Stoch membolehkan anda membeli saham apabila terdapat titik rendah yang jelas, mengurangkan risiko.
Bentuk garis K sebagai syarat tambahan untuk mengelakkan pembelian yang salah dalam keadaan gegaran.
Dengan menggunakan penghakiman dua hala, ia meningkatkan kestabilan dan kebolehpercayaan strategi.
Mekanisme penangguhan kerugian dapat mengelakkan kerugian yang besar.
Apabila berdagang dalam talian, ia mudah ditiru. Apabila pasaran berpecah, ia boleh menyebabkan kerugian yang lebih besar.
Indeks Stoch mempunyai kebarangkalian yang tinggi untuk menghantar isyarat palsu, dan risiko kerugian yang lebih tinggi apabila digunakan secara bersendirian.
Dalam keadaan yang tidak menentu, isyarat perdagangan yang salah boleh dihasilkan.
Ia perlu dihentikan pada masa yang sesuai dan risiko dikendalikan.
Ia perlu diberi perhatian untuk mengelakkan kejatuhan.
Mengoptimumkan kolam saham, memilih saham yang mempunyai turun naik dan trend yang jelas.
Mengoptimumkan parameter garis blin, menyesuaikan kitaran orbit tengah, dan mengoptimumkan titik pembelian dan penjualan.
Optimumkan parameter Stoch, sesuaikan kitaran K dan D untuk meningkatkan kebolehpercayaan indikator.
Meningkatkan jumlah transaksi untuk mengelakkan kejatuhan.
Tambah strategi henti kerugian, seperti hentian pengesanan, hentian bergerak, dan lain-lain, untuk mengawal risiko kerugian.
Penilaian menambah petunjuk teknikal lain seperti MACD, KDJ dan lain-lain untuk meningkatkan kestabilan strategi.
Uji tempoh pegangan yang berbeza untuk mengoptimumkan nisbah pengeluaran keuntungan.
Strategi ini mengintegrasikan garis Brin, indikator Stoch dan indikator teknikal asas, dengan risiko yang terkawal, membeli pada harga saham yang rendah, dan menjual di dekat ketinggian sejarah, untuk mencapai model keuntungan yang lebih stabil. Tetapi ada juga risiko seperti perlindungan, kesan hentikan kerugian. Dengan mengoptimumkan parameter dan menambah petunjuk penghakiman lain, anda dapat meningkatkan lagi kestabilan strategi dan keuntungan yang berterusan.
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-03 18:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Bollinger e Tendência", overlay=true)
//MÉDIAS
periodolenta = 14
periodosimples = 47
periodome = 7
psimples = input(title="Período da média simples", defval=periodosimples)
pexp = input(title="Período da média exponencial", defval=periodome)
pexplenta = input(title="Período da média exp lenta", defval=periodolenta)
msimples = sma(close, psimples)
mexp = ema(close, pexp)
mexplenta = ema(close, pexplenta)
plot(msimples, linewidth=2, color=yellow)
plot(mexp, linewidth=5, color=white)
plot(mexplenta, linewidth=2, color=orange)
//BOLLANGER
length = input(21, minval=2)
src = input(close, title="Source")
mult = input(1.5, minval=0.001, maxval=50)
basis = sma(src, length)
dev = mult * stdev(src, length)
upperBol = basis + dev
lowerBol = basis - dev
p1 = plot(upperBol, title="Upper", color=blue, linewidth=3)
p2 = plot(lowerBol, title="Lower", color=blue, linewidth=3)
fill(p1, p2, color = purple, transp=90)
//BBW (altura do Bollanger)
basis2 = sma(close, 21)
bbw = (upperBol-lowerBol)/basis2
//STOCH E FORÇA
source = close
lengthRSI = input(11, minval=2), lengthStoch = input(7, minval=2)
smoothK = input(3,minval=3), smoothD = input(4,minval=3)
OverSold = input(20), OverBought = input(80)
rsi1 = rsi(source, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
hline(OverSold,color=blue)
hline(OverBought,color=blue)
// Cor das Tendências (Verde ou Vermelho)
// Baseado no código: "Pivot Daily Price Color" (by Rimko)
pivot = (high + low + close ) / 3.0
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1])
pv = dtime_pivot ? dtime_pivot : na
pe = ema(close,periodome)
col = sma(close,1)>pv?green:red
col2 = sma(close,1)>pe?green:red
offs_daily = 0
pp=plot(pv, title="Daily Pivot",style=linebr, color=black,linewidth=2)
p=plot(sma(close,1), transp=100, editable=false)
pema = plot(pe, title="EMA",style=line, color=black,linewidth=2, transp = 50)
fill(p,pema,color=col2,title="EMA to price color", transp = 50)
fill(pp,p,color=col, title="Privot to price color", transp = 90)
//*************************************************************************************************************************************************
// Candles (identificação):
// Baseado no código: "Candlesticks Pattern Identified" (by Repo32)
trend= input(5, minval=1, title="Trend in Bars")
DojiSize = input(0.05, minval=0.01, title="Doji size")
data=(abs(open - close) <= (high - low) * DojiSize)
//plotchar(data, title="Doji", color=white)
plotshape(data, title="Doji", color=white, style=shape.cross)
//text='Doji'
data6=(close[1] > open[1] and open > close and open <= close[1] and open[1] <= close and open - close < close[1] - open[1] and open[trend] < open)
plotshape(data6, title= "Bearish Harami", color=red, style=shape.triangledown)
//, text="Harami\nde Baixa"
data8=(close[1] > open[1] and open > close and open >= close[1] and open[1] >= close and open - close > close[1] - open[1] and open[trend] < open)
plotshape(data8, title= "Bearish Engulfing", color=red, style=shape.triangledown)
//, text="Engolfo\nde Baixa"
data13=(open[1]<close[1] and open<=open[1] and close<=open and open[trend] < open)
plotshape(data13, title= "Bearish Kicker", color=red, style=shape.triangledown)
//, text="Kicker\nde Baixa"
data14=(((high-low>4*(open-close))and((close-low)/(.001+high-low)>=0.75)and((open-low)/(.001+high-low)>=0.75))and open[trend] < open and high[1] < open and high[2] < open)
plotshape(data14, title= "Hanging Man", location=location.belowbar, color=red, style=shape.triangledown)
//, text="Enforcado"
data7=(open[1] > close[1] and close > open and close <= open[1] and close[1] <= open and close - open < open[1] - close[1] and open[trend] > open)
plotshape(data7, title= "Bullish Harami", location=location.belowbar, color=lime, style=shape.triangleup)
//, text="Mulher\nGrávida"
data9=(open[1] > close[1] and close > open and close >= open[1] and close[1] >= open and close - open > open[1] - close[1] and open[trend] > open)
plotshape(data9, title= "Bullish Engulfing", location=location.belowbar, color=lime, style=shape.triangleup)
//, text="Engolfo\nde Alta"
//uppercandle = highest(10)[1]
data10=(close[1] < open[1] and open < low[1] and close > close[1] + ((open[1] - close[1])/2) and close < open[1] and open[trend] > open)
plotshape(data10, title= "Piercing Line", location=location.belowbar, color=lime, style=shape.triangleup)
//, text="Piercing"
lowercandle = lowest(10)[1]
data11=(low == open and open < lowercandle and open < close and close > ((high[1] - low[1]) / 2) + low[1] and open[trend] > open)
plotshape(data11, title= "Bullish Belt", location=location.belowbar, color=lime, style=shape.triangleup)
//, text="Contenção\nde Alta"
data12=(open[1]>close[1] and open>=open[1] and close>open and open[trend] > open)
plotshape(data12, title= "Bullish Kicker", location=location.belowbar, color=lime, style=shape.triangleup)//, text="Kicker\nde Alta"
data5=(((high - low)>3*(open -close)) and ((close - low)/(.001 + high - low) > 0.6) and ((open - low)/(.001 + high - low) > 0.6))
plotshape(data5, title= "Hammer", location=location.belowbar, color=white, style=shape.diamond)
data5b=(((high - low)>3*(open -close)) and ((high - close)/(.001 + high - low) > 0.6) and ((high - open)/(.001 + high - low) > 0.6))
plotshape(data5b, title= "Inverted Hammer", location=location.belowbar, color=white, style=shape.diamond)
//, text="Martelo\nInvertido"
data2=(close[2] > open[2] and min(open[1], close[1]) > close[2] and open < min(open[1], close[1]) and close < open )
//plotshape(data2, title= "Evening Star", location=location.belowbar, color=red, style=shape.arrowdown, text="Estrela\nda Tarde")
plotchar(data2, title="Evening Star", color=white)
data3=(close[2] < open[2] and max(open[1], close[1]) < close[2] and open > max(open[1], close[1]) and close > open )
//plotshape(data3, title= "Morning Star", location=location.belowbar, color=lime, style=shape.arrowup, text="Estrela\nda Manhã")
plotchar(data3, title="Morning Star", color=white, location=location.belowbar)
data4=(open[1] < close[1] and open > close[1] and high - max(open, close) >= abs(open - close) * 3 and min(close, open) - low <= abs(open - close))
//plotshape(data4, title= "Shooting Star", color=red, style=shape.arrowdown, text="Estrela\nCadente")
plotchar(data4, title="Shooting Star", color=white)
//**********************************************************************************************************
// Ações:
momento = strategy.position_size[0] > strategy.position_size[1]
valorcompra = valuewhen(momento, open, 0)
valorbbw = input(title="Altura Máxima do Bollinger", defval=10)
alerta = crossunder(close, lowerBol)
alertcondition(alerta, title='Abaixo da Banda Baixa', message='Fechou abaixo da banda baixa...!')
//data7 data9 data10 data11 data12
compra = crossover(close, lowerBol) and ((k<=20) and (d<=20)) and (mexp>mexp[1])
//compra = (data7 or data9 or data10 or data11 or data12) and (msimples>msimples[1]) and ((k<=20) and (d<=20)) and (bbw<valorbbw/1000)
//compra = (open<close) and (crossover (close, lowerBol)) and ((k<=20) and (d<=20)) and (bbw<valorbbw/1000) and (msimples>msimples[1])
venda = crossover(close, upperBol)
//(close >= (valorcompra + (valorcompra * 0.025)))
strategy.entry ("Compra", strategy.long, when=compra)
strategy.entry ("Venda", strategy.short, when=venda)
//plotshape(series=compra, title="Compra", style=shape.triangleup, location=location.belowbar, color=green, text="COMPRA", size=size.small)
//plotshape(series=venda, title="Venda", style=shape.triangledown, location=location.abovebar, color=red, text="VENDA", size=size.small)