Reversal Mean Breakout Strategie


Erstellungsdatum: 2023-12-20 14:48:57 zuletzt geändert: 2023-12-20 14:48:57
Kopie: 0 Klicks: 638
1
konzentrieren Sie sich auf
1621
Anhänger

Reversal Mean Breakout Strategie

Überblick

Die Reversal-Mean-Breakout-Strategie ist eine Kombination aus mehreren Faktoren, die eine Trendwende auslösen. Sie kombiniert mehrere technische Indikatoren wie beispielsweise Moving Averages, Brin-Bands, CCIs und RSI-Indikatoren, um Chancen zu erfassen, dass der Preis von einem überkauften überverkauften Bereich zurückkehrt. Die Strategie kombiniert auch die korrekte Streuungsanalyse, um zu erkennen, ob der aktuelle Trend mit dem vorherigen übereinstimmt, um einen Falschbruch zu vermeiden.

Strategieprinzip

Die Kernlogik der Strategie besteht darin, bei einer Umkehrung der Preise aus einem überkauften oder überverkauften Bereich angemessene Leerläufe einzuleiten. Insbesondere beurteilt die Strategie die Chancen für eine Umkehrung in vier Aspekten:

  1. Der CCI- oder Dynamik-Indikator sendet ein Gold- und Todesfork-Signal, um zu überkaufen und zu verkaufen.

  2. Der RSI-Indikator beurteilt, ob sich ein Unternehmen in einer überkauften oder überverkauften Zone befindet. Der RSI-Wert von über 65 gilt als überkaufte Zone und unter 35 als überverkaufte Zone.

  3. Der Brin-Band wird verwendet, um zu beurteilen, ob der Preis von der Normalzone abweicht. Wenn der Preis wieder in die Normalzone zurückkehrt, kann er sich umkehren.

  4. Es ist wichtig, die korrekte Streuung des RSI zu erkennen, um falsche Durchbrüche zu vermeiden.

Wenn die oben genannten Bedingungen erfüllt sind, wird die Strategie in die entgegengesetzte Richtung eingegeben. Es wird ein Stop-Loss-Bereich festgelegt, um das Risiko zu kontrollieren.

Strategische Vorteile

Der größte Vorteil dieser Strategie liegt in der Kombination von mehreren Indikatoren, die die Chancen auf eine Umkehrung bestimmen, mit einer hohen durchschnittlichen Gewinnrate. Insbesondere sind die folgenden Punkte wichtig:

  1. Mehrfaktorische Beurteilung, hohe Zuverlässigkeit. Nicht nur auf einen einzigen Indikator angewiesen, reduziert die Wahrscheinlichkeit von Fehleinschätzungen.

  2. Umkehrhandel hat eine hohe Gewinnwahrscheinlichkeit. Trendumkehr ist eine zuverlässigere Handelsmethode.

  3. Die Ermittlung von Spekulationen verhindert die Verfolgung falscher Durchbrüche und reduziert das Systemrisiko.

  4. Risikokontrolle durch Stop-Loss-Mechanismen. Sie verhindern, dass einzelne Verluste zu groß werden.

Risiken und Lösungen

Die Strategie birgt auch einige Risiken, die sich auf folgende Punkte konzentrieren:

  1. Der Umkehrzeitpunkt ist nicht zu beurteilen. Dies führt dazu, dass der Stopp ausgelöst wird. Der Stoppbereich kann entsprechend erweitert werden.

  2. Die Brin-Band-Parameter sind falsch eingestellt, und der normale Preis wird als Ausnahme angesehen. Die Parameter für die Marktschwankungen sollten mit den eingestellten Parametern kombiniert werden.

  3. Es ist möglich, dass die Anzahl der Transaktionen erhöht wird. Es ist notwendig, die CCI-Parameter auszuweiten, um die Häufigkeit der Transaktionen zu verringern.

  4. Die Multifunktionsbalance kann stark variieren. Die Richtigkeit der Parameter sollte anhand historischer Daten beurteilt werden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Automatische Optimierung der Kennzahlen mit Hilfe von Machine-Learning-Algorithmen. Vermeidung von Fehlern durch manuelle Erfahrung.

  2. Es wird auch die Überkauf- und Überverkaufstärke beurteilt, indem Schiefer- und Breitenindikatoren hinzugefügt werden.

  3. Erhöhung der Umsatzindikatoren zur Beurteilung der Reliabilität der Umkehrung.

  4. In Kombination mit Blockchain-Daten zur Beurteilung der Marktstimmung. Verbesserung der Anpassungsfähigkeit der Strategie.

  5. Einführung eines anpassungsfähigen Stop-Loss-Mechanismus. Anpassung der Stop-Loss-Position an die Veränderungen der Marktfluktuation.

Zusammenfassen

Die Umkehr-Mittelwert-Breakthrough-Strategie verwendet eine Vielzahl von Indikatoren, um die Umkehrchancen zu beurteilen. Die Wahrscheinlichkeit, dass sie gewinnt, ist höher, wenn das Risiko kontrolliert wird. Die Strategie hat eine starke Praxisfähigkeit und hat Raum für weitere Optimierungen.

Strategiequellcode
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='BroTheJo Strategy', shorttitle='BTJ INV', overlay=true)

// Input settings
stopLossInPips = input.int(10, minval=0, title='Stop Loss (in Pips)')
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)
shortEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) and (prevHigh >= meanReversion) and (prevLow >= meanReversion)
longEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) and (prevHigh <= meanReversion) and (prevLow <= meanReversion)

// Plotting
oldShortEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition)
oldLongEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition)
plotshape(oldLongEntryCondition, title='BUY', style=shape.triangleup, text='B', 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, text='S', location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

// Strategy logic
if (longEntryCondition)
    stopLoss = close - stopLossInPips
    strategy.entry("Buy", strategy.long)
    strategy.exit("exit", "Buy", stop=stopLoss)
if (shortEntryCondition)
    stopLoss = close + stopLossInPips
    strategy.entry("Sell", strategy.short)
    strategy.exit("exit", "Sell", stop=stopLoss)

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