Preisausbruch Bollinger Bands Eine Strategie


Erstellungsdatum: 2023-11-06 11:43:14 zuletzt geändert: 2023-11-06 11:43:14
Kopie: 0 Klicks: 401
1
konzentrieren Sie sich auf
1213
Anhänger

Preisausbruch Bollinger Bands Eine Strategie

Überblick

Die Strategie nutzt die Bollinger-Linie-Indikator, um die Schwankungen des Preises zu bestimmen, und kombiniert die K-Linie-Form mit dem Preis-Break-Operation. Die Bollinger-Linie-Oberbahn kann die Auf- und Abwärtstrends des Preises grob bestimmen, und in Verbindung mit der K-Linie-Form kann ein deutlicher Kauf- und Verkaufsschlag gefunden werden. Die Strategie entscheidet hauptsächlich über die Bollinger-Linie-Unterbahn-Break-Operation und die Leerstellung der Oberbahn-Break-Operation.

Strategieprinzip

Die Strategie umfasst folgende Komponenten:

  1. Der Brinline-Indikator umfasst die mittlere, obere und untere Bahn der Brinline. Die Brinline berechnet die Bandbreite der Preise durch die Standarddifferenz der Preise und bestimmt damit die Tendenz der Preise.

  2. Der Stoch-Indikator, der beurteilt, ob eine Aktie überkauft oder überverkauft ist. Die K- und D-Linien können beurteilen, ob ein Auf- und ein Abbruch vorhanden ist.

  3. K-Linien-Formen, um einige der häufigsten Formen wie die Da-Sonnen- und die Da-Kyn-Linien als Alternativen zu kaufen oder zu verkaufen.

Kaufbedingungen: Preise überschreiten die Blink-Linie, der Stoch-Indikator zeigt einen Überverkauf ((K<20, D<20), die schnell bewegliche Durchschnittslinie überschreitet die langsam bewegliche Durchschnittslinie.

Verkaufsbedingungen: Unterpreis durch Brin-Line oder nach Gewinn-Verlust-Stopp.

Die Strategie kombiniert Trendanalyse und Überkauf-Überverkauf-Urteil und reduziert die Chance auf ein falsches Ergebnis. Sie kann den Markt rechtzeitig betreten, wenn ein Trend auftritt.

Analyse der Stärken

  1. In Kombination mit der Brin Line und dem Stoch-Index kann man bei deutlich niedrigen Aktienkursen einkaufen, was das Risiko verringert.

  2. Die K-Linien-Form dient als Hilfsmittel, um Fehlkäufe bei Erschütterungen zu vermeiden.

  3. Die Verwendung von doppelten Kriterien erhöht die Stabilität und Zuverlässigkeit der Strategie.

  4. Die Stop-Loss-Mechanismen können erhebliche Verluste verhindern.

Risikoanalyse

  1. Bei Brinline-Trading ist es leicht zu erwischen. Bei einer Marktfragmentation kann es zu erheblichen Verlusten kommen.

  2. Die Stoch-Indikatoren haben eine hohe Wahrscheinlichkeit, falsche Signale zu senden, und die Gefahr von Verlusten ist größer, wenn sie allein verwendet werden.

  3. In einem wackligen Umfeld kann es zu falschen Handelssignalen kommen.

  4. Es ist notwendig, die Risiken zeitnah zu kontrollieren.

  5. Es ist notwendig, auf die Stärke des Durchbruchs zu achten, um einen Rückfall zu verhindern.

Optimierungsrichtung

  1. Optimierung der Aktienpools, wobei die Aktien mit hoher Volatilität und deutlichen Trends ausgewählt werden.

  2. Optimierung der Brinline-Parameter, Anpassung der Zwischenbahn-Zyklen, Optimierung der Kauf- und Verkaufspunkt-Erfassung.

  3. Optimierung der Stoch-Parameter, Anpassung der K- und D-Linien-Perioden, Verbesserung der Indikatorsicherheit.

  4. Es ist wichtig, dass der Umsatz erhöht wird, um einen Rückschlag zu vermeiden.

  5. Erhöhung der Stop-Loss-Strategie, wie Tracking-Stops, Moving-Stops, um das Verlustrisiko zu kontrollieren.

  6. Die Bewertung der zusätzlichen technischen Indikatoren, wie MACD, KDJ, etc., verbessert die Strategie-Stabilität.

  7. Test unterschiedlicher Haltedauer und Optimierung der Gewinn-Rücknahme-Rate.

Zusammenfassen

Die Strategie integriert die Brinline, den Stoch-Indikator und die grundlegenden technischen Indikatoren, und unter der Voraussetzung, dass das Risiko kontrolliert wird, wird bei niedrigen Aktienkäufen gekauft und in der Nähe der historischen Höchststände verkauft, was zu einem relativ stabilen Gewinnmodell führt. Es gibt jedoch auch Risiken wie Hedging, Stop-Loss-Effekte. Durch die Optimierung der Parameter und die Hinzufügung anderer Beurteilungsindikatoren können die Strategie-Stabilität und die nachhaltige Profitabilität weiter verbessert werden.

Strategiequellcode
/*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)