
Diese Strategie kombiniert die Verwendung von drei Indikatoren, den Brin-Band, den Relativ Strong Index (RSI) und den Commodity Path Index (CCI), um ihre Kreuzungen zu suchen und Kauf- und Verkaufssignale auszusenden. Die Strategie zielt darauf ab, überkaufende und überverkaufte Markte zu entdecken und an den Wendepunkten einzutreten, um eine bessere Rendite zu erzielen.
Der Brin-Band besteht aus einer mittleren, einer oberen und einer unteren Bahn. Die mittlere Bahn verwendet normalerweise einen 20-Tage-Moving Average. Die oberen und unteren Bahnen sind jeweils zwei Standardabweichungen über und unter der mittleren Bahn.
Der RSI-Indikator spiegelt die Geschwindigkeit der An- und Abwärtsentwicklung der Schließungspreise über einen Zeitraum hinweg wider und dient zur Messung des Kräfteverhältnisses zwischen Kauf und Verkauf. Der RSI-Wert ist bei 0 bis 30 als Überverkaufszone und bei 70 bis 100 als Überkaufszone bezeichnet. Wenn der RSI aus der Überkaufszone fällt, kann dies als Verkaufssignal verwendet werden, und wenn der RSI aus der Überkaufszone steigt, kann dies als Kaufsignal verwendet werden.
Der CCI-Wert wird verwendet, um zu messen, inwieweit die Aktienpreise von ihrem Durchschnittspreis abweichen. +100 bedeutet, dass der Preis weit über dem Durchschnittspreis liegt, was ein Überkauf ist. -100 bedeutet, dass der Preis weit unter dem Durchschnittspreis liegt, was ein Überverkauf ist.
Diese Strategie verwendet die Bollinger Bands, um zu beurteilen, ob der Preis kurzfristig überkauft oder überverkauft ist. Der RSI beurteilt die Ausgewogenheit der Kauf- und Verkaufskräfte und der CCI beurteilt die Abweichung der Preise. Der Bollinger Band, der RSI und der CCI geben gleichzeitig ein Kauf- / Verkaufssignal und geben einen Handelsbefehl aus.
Diese Strategie berücksichtigt die kurz-, mittelfristigen und langfristigen Marktbedingungen und beurteilt die Zeit der Marktausweichung anhand der Kreuzung der drei Indikatoren Brin-Band, RSI und CCI. Sie gehört zu den robusteren Strategien zur Rückwärtsverfolgung. Sie kann durch Parameteranpassung, Stop-Off-Methoden und andere Optimierungen weiter optimiert werden und ist für verschiedene Marktumgebungen geeignet.
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle="BBRSIstr", title="Bollinger Bands", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
//RSI
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input.bool(false, title="Show Divergence", group="RSI Settings")
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"
rsiPlot = plot(rsi, "RSI", color=#7E57C2)
plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
//cci
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, "CCI", color=#2962FF)
band1 = hline(100, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(0, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(-100, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color=color.rgb(33, 150, 243, 90), title="Background")
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 5, minval = 1, maxval = 100, group="Smoothing")
smoothingLine = ma(cci, smoothingLength, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, display=display.none)
longCBB= close < lower
shortCBB = close>upper
longBRSI = rsi < 33
shortBRSI = rsi > 70
longcci = cci < -215
shortcci = cci > 250
strategy.entry("LONG", strategy.long, when = longCBB and longBRSI and longcci)
strategy.exit("Exit ", profit = 600)
strategy.entry("SHORT", strategy.short, when = shortCBB and shortBRSI and shortcci)
strategy.exit("Exit ", profit = 600)