Strategi ini menggunakan indikator Brinline untuk menentukan amplitudo pergerakan harga, dalam kombinasi dengan bentuk garis K untuk melakukan operasi harga. Jalur atas dan bawah garis Brinline dapat secara kasar menentukan tren naik dan turun harga, dikombinasikan dengan indikator bentuk garis K, dapat menemukan waktu jual beli yang lebih jelas. Strategi ini terutama menilai garis Brinline melakukan lebih banyak penembusan bawah, penembusan atas kosong, sementara digabungkan dengan indikator Stoch untuk menentukan keadaan overbought oversold, menggunakan bentuk garis K untuk memberikan sinyal pilihan beli dan jual.
Strategi ini terdiri dari beberapa indikator:
Indikator Bollinger Bands, termasuk Bollinger Bands Mid-Trail, Up-Trail, Down-Trail. Bollinger Bands menghitung kisaran fluktuasi harga melalui perbedaan standar harga, sehingga menentukan tren fluktuasi harga.
Indeks Stoch, menilai apakah saham berada dalam kondisi overbought dan oversold. Garis K dan Garis D dapat menentukan apakah saham tersebut telah menembus ke atas atau ke bawah.
Bentuk garis K, menilai beberapa bentuk yang umum seperti garis besar, garis besar, dan lain-lain sebagai pilihan untuk membeli dan menjual.
Kondisi pembelian: harga naik melewati garis bawah Brin, indikator Stoch menunjukkan oversold ((K<20, D<20), rata-rata bergerak cepat naik melewati rata-rata bergerak lambat
Kondisi penjualan: harga di bawah tren tren tren, atau stop loss setelah keuntungan.
Strategi ini menggabungkan analisis tren dan penilaian overbought dan oversold, mengurangi peluang karena false, dan memungkinkan masuk ke pasar tepat waktu ketika tren muncul. Namun, ada juga risiko tersandung, yang memerlukan stop loss tepat waktu.
Kombinasi Bollinger Bands dan Stoch Indicators, dapat dibeli ketika harga saham berada pada titik rendah yang jelas, mengurangi risiko.
Bentuk garis K sebagai kondisi tambahan untuk menghindari kesalahan pembelian dalam situasi gempa.
Dengan menggunakan penilaian dua kali lipat, ini meningkatkan stabilitas dan keandalan strategi.
Sistem Stop Loss dapat mencegah kerugian besar.
Dalam perdagangan Brinline, mudah untuk dicurangi. Jika terjadi kerentanan di pasar, dapat menyebabkan kerugian besar.
Indikator Stoch memiliki probabilitas yang lebih tinggi untuk mengirimkan sinyal palsu, dan risiko kerugian yang lebih besar bila digunakan secara terpisah.
Dalam situasi yang bergejolak, sinyal perdagangan yang salah bisa terjadi.
Hal ini perlu dilakukan pada waktu yang tepat untuk menghentikan kerugian dan mengendalikan risiko.
Untuk mencegah terjadinya serangan balik, perlu diperhatikan intensitas tembakan.
Optimalkan kolam saham, pilih saham yang memiliki fluktuasi besar dan tren yang jelas.
Mengoptimalkan parameter Brinline, menyesuaikan siklus orbit tengah, mengoptimalkan titik jual beli.
Mengoptimalkan parameter Stoch, menyesuaikan siklus K-line dan D-line, meningkatkan reliabilitas indikator.
Untuk meningkatkan volume transaksi, hindari kebocoran.
Meningkatkan strategi stop loss, seperti tracking stop loss, move stop loss, dan lain-lain, untuk mengendalikan risiko kerugian.
Evaluasi menambahkan indikator teknis lainnya, seperti MACD, KDJ, dan lain-lain, untuk meningkatkan stabilitas strategi.
Uji durasi posisi yang berbeda untuk mengoptimalkan rasio pengembalian keuntungan.
Strategi ini mengintegrasikan garis Brin, indikator Stoch dan indikator teknis dasar, dengan asumsi pengendalian risiko, membeli di harga saham yang rendah dan menjual di dekat rekor tertinggi, untuk mencapai model keuntungan yang relatif stabil. Namun, ada juga risiko seperti hedging, stop loss, dan lain-lain. Dengan mengoptimalkan parameter dan menambahkan indikator penilaian lainnya, stabilitas strategi dan profitabilitas berkelanjutan dapat ditingkatkan lebih lanjut.
/*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)