
Die Strategie nutzt den CCI- und den Dynamik-Indikator in Kombination mit dem RSI-Indikator, um Markttrends zu identifizieren, und tritt ein, wenn Überkauf-Überverkaufszonen entdeckt werden, und nutzt den Brin, um Trends zu identifizieren und zum Mittelpunkt zurückzukehren. Die Strategie kann effektiv Breakouts und Rückschlüsse identifizieren, tritt in der Anfangsphase des Trends ein und kann durch Parameter frei angepasst werden, um verschiedene Sorten zu handeln.
Zunächst wird das Kauf- und Verkaufssignal durch die Auf- und Abwärtsbewegung des CCI- oder Dynamik-Indikators ermittelt. Gleichzeitig wird der RSI-Indikator in der Überkauf-Überverkaufszone angefordert, d. h. der RSI ist über 65 im Überkaufbereich und unter 35 im Überverkaufszone. Dies verhindert, dass ein falsches Signal in einem nicht überkauften Überverkaufszone ausgegeben wird.
Außerdem kann die Strategie wählen, ob sie die bullische Divergenz (ein bisschen höher) und die bärische Divergenz (ein bisschen niedriger) des RSI beurteilt, um sicherzustellen, dass die Kauf- und Verkaufssignale zuverlässiger sind.
Wenn ein Kaufsignal mit dem CCI oder der Dynamik übereinstimmt und der RSI in der Überverkaufszone ist, beurteilt die Strategie, ob der vorherige Hoch und niedrige Punkt über dem Brennpunkt liegt. Wenn ja, erzeugt es ein Kaufsignal. Umgekehrt erzeugt es ein Verkaufsignal, wenn es mit dem Verkaufssignal übereinstimmt und der vorherige Hoch und niedrige Punkt unter dem Brennpunkt liegt.
Auf diese Weise nutzt die Strategie sowohl den Trendindex als auch den Shockindex, um den Trend zu beginn zu erfassen und mit zentraler Urteilsvermögen falsche Durchbrüche zu vermeiden. Wenn der Preis aus der Brin-Band abgleitet, wird die Strategie vollständig platziert, um die Gewinne zu sperren und zu verhindern, dass Rückzieher ausgeweitet werden.
Die Kombination von Trend- und Schokindex ermöglicht den Einstieg zu Beginn eines Trends und verhindert unnötige Positionen in schokenden Märkten.
Die Nutzung von Hubschlüssen in der Brin-Band als Einstiegssignale kann falsche Durchbrüche wirksam filtern
Ein Blick auf den historischen Kursverlauf des RSI-Indikators hilft, falsche Handelssignale zu vermeiden
Vollautomatische Transaktionen ohne menschliche Intervention, geeignet für algorithmische Transaktionen
Die Strategieparameter sind frei anpassbar für verschiedene Handelsarten
Ein Stop-Loss-Stopp, um das Risiko zu steuern
Fehleinstellung von Brin-Band-Parametern kann zu einer Fehlentscheidung des Zentrums führen
Fehleinstellung der Indikatorparameter, die zu einer Überschreitung der Fehlsignale führen kann
Der Durchbruch scheiterte, und der Preis musste sich rechtzeitig aufhalten, als er wieder in die Brin-Band-Zentrale zurückzog.
Der Durchbruch kann schwierig sein, wenn die Handelsvarianten nicht flüssig sind.
Vor dem Kauf müssen die historischen Daten überprüft werden, um eine schlechte Kurvenanpassung zu vermeiden
Es ist wichtig, die Zeit der Transaktionen zu beachten, um falsche Durchbrüche zu vermeiden.
Optimierung der Brin-Band-Parameter zur Stabilisierung des Zentrums
Verschiedene Kennzahlen für verschiedene Sorten getestet
Erhöhung der Handelsvolumenkontrolle und Vermeidung von übergroßen Einzelpositionen
Erhöhung der Zeitmessung, um in den Haupthandelszeiten zu handeln
Mehr Machine-Learning-Algorithmen für eine intelligentere Signalerzeugung
Zugriff auf weitere Datenquellen, um die Gesamtentwicklung des Marktes zu beurteilen
Erhöhung der Integration von mehr Indikatoren in eine Portfolio
Die Strategie integriert Trend- und Schwankungsindizes, um zu Beginn eines Trends in den Markt zu gelangen. Die Nutzung der Kernkombination in den Brin-Bändern als Einstiegssignal kann den Falschbruch wirksam verhindern. Die Strategieparameter können flexibel angepasst werden, um sich an verschiedene Sorten anzupassen und die Rückmessung zu optimieren. Der nächste Schritt besteht darin, die Strategie durch optimierte Parameter-Einstellungen und Modellfusion stabiler und zuverlässiger zu machen, um langfristig stabile Zuwendungen zu erzielen.
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='BroTheJo Strategy', shorttitle='BTJ', overlay=true)
// Input settings
ccimomCross = input.string('CCI', 'Entry Signal Source', options=['CCI', 'Momentum'])
ccimomLength = input.int(10, minval=1, title='CCI/Momentum Length')
useDivergence = input.bool(false, title='Find Regular Bullish/Bearish Divergence')
rsiOverbought = input.int(65, minval=1, title='RSI Overbought Level')
rsiOversold = input.int(35, minval=1, title='RSI Oversold Level')
rsiLength = input.int(14, minval=1, title='RSI Length')
plotMeanReversion = input.bool(true, 'Plot Mean Reversion Bands on the chart')
emaPeriod = input(200, title='Lookback Period (EMA)')
bandMultiplier = input.float(1.6, title='Outer Bands Multiplier')
// CCI and Momentum calculation
momLength = ccimomCross == 'Momentum' ? ccimomLength : 10
mom = close - close[momLength]
cci = ta.cci(close, ccimomLength)
ccimomCrossUp = ccimomCross == 'Momentum' ? ta.cross(mom, 0) : ta.cross(cci, 0)
ccimomCrossDown = ccimomCross == 'Momentum' ? ta.cross(0, mom) : ta.cross(0, cci)
// RSI calculation
src = close
up = ta.rma(math.max(ta.change(src), 0), rsiLength)
down = ta.rma(-math.min(ta.change(src), 0), rsiLength)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
oversoldAgo = rsi[0] <= rsiOversold or rsi[1] <= rsiOversold or rsi[2] <= rsiOversold or rsi[3] <= rsiOversold
overboughtAgo = rsi[0] >= rsiOverbought or rsi[1] >= rsiOverbought or rsi[2] >= rsiOverbought or rsi[3] >= rsiOverbought
// Regular Divergence Conditions
bullishDivergenceCondition = rsi[0] > rsi[1] and rsi[1] < rsi[2]
bearishDivergenceCondition = rsi[0] < rsi[1] and rsi[1] > rsi[2]
// Mean Reversion Indicator
meanReversion = plotMeanReversion ? ta.ema(close, emaPeriod) : na
stdDev = plotMeanReversion ? ta.stdev(close, emaPeriod) : na
upperBand = plotMeanReversion ? meanReversion + stdDev * bandMultiplier : na
lowerBand = plotMeanReversion ? meanReversion - stdDev * bandMultiplier : na
// Entry Conditions
prevHigh = ta.highest(high, 1)
prevLow = ta.lowest(low, 1)
longEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) and (prevHigh >= meanReversion) and (prevLow >= meanReversion)
shortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) and (prevHigh <= meanReversion) and (prevLow <= meanReversion)
// Plotting
oldLongEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition)
oldShortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition)
plotshape(oldLongEntryCondition, title='BUY', style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(oldShortEntryCondition, title='SELL', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)
// Strategy logic
if (longEntryCondition)
strategy.entry("Buy", strategy.long)
if (shortEntryCondition)
strategy.entry("Sell", strategy.short)
// Close all open positions when outside of bands
closeAll = (high >= upperBand) or (low <= lowerBand)
if (closeAll)
strategy.close_all("Take Profit/Cut Loss")
// Plotting
plot(upperBand, title='Upper Band', color=color.fuchsia, linewidth=1)
plot(meanReversion, title='Mean', color=color.gray, linewidth=1)
plot(lowerBand, title='Lower Band', color=color.blue, linewidth=1)