Diese Strategie kombiniert mehrere technische Indikatoren wie Bollinger Bands, RSI und MACD, um Handelsentscheidungen zu treffen. Zunächst werden Bollinger Bands auf dem Chart gezeichnet und Bands Breakout für Eintrittssignale verwendet. RSI und MACD werden dann als zusätzlicher Filter für Eintritte verwendet.
Zeichnen Sie 34-Perioden-Bollinger-Bänder mit zentraler Linie, 1 std dev und 2 std dev-Bänder.
Eintritt lang, wenn die Schließung über dem oberen Band liegt, kurz, wenn die Schließung unter dem unteren Band liegt.
Schließen einer Long-Position, wenn die Close unterhalb der Mittellinie kreuzt, schließen einer Short-Position, wenn die Close über der Mittellinie kreuzt.
Verwenden Sie RSI>70 als zusätzliche Bestätigung für lang, RSI<30 als Bestätigung für kurz.
Schließen von Short-Positionen, wenn der RSI über 50 liegt, schließen von Long-Positionen, wenn der RSI unter 50 liegt.
Verwenden Sie MACD-Crossover als zusätzlichen Filter für Einträge, MACD-Crossover für Long und MACD-Crossunder für Short.
Schließen Sie Long-Positionen auf dem MACD-Crossover und schließen Sie Short-Positionen auf dem MACD-Crossunder.
Alle 3 Indikatoren müssen vor dem Eintritt in den Handel ausgerichtet sein, mehrere Filter reduzieren falsche Signale.
Die Kombination von Signalen aus mehreren Indikatoren reduziert falsche Signale und steigert die Rentabilität.
Strenge Stop-Loss-Regeln, die auf Bands und Indikatoren basieren, begrenzen den Verlust bei jedem Trade. Dies führt zu einer höheren Rentabilität, Gewinnrate und einem niedrigeren maximalen Drawdown.
Im Vergleich zu Einzelindikatorstrategien verbessert die Kombination von Indikatoren die Leistung. Mehrere Filter beseitigen schlechte Signale. Der Stop-Loss-Mechanismus steuert die Auswirkungen von Verlusten.
Insgesamt zeichnet sich diese Strategie in Trendmärkten aus, da sie große Bewegungen erfasst und gleichzeitig mit Hilfe von Indikatordetails Whipsaws vermeidet.
Die wichtigsten Risiken sind:
Die Optimierung der Parameter kann falsche Signale reduzieren, aber nicht beseitigen.
Nicht in der Lage, von den Märkten mit einer Bandbreite zu profitieren. Stop-Loss kann auslösen, was zu Verlusten während der Konsolidierung führt. Stop-Loss-Regeln können gelockert werden, um Trades länger zu halten.
Nachlassende Indikatoren führen zu verpassten Einstiegsmöglichkeiten.
Durch die Verwendung von Trailing Stops oder Durchschnittswert nach unten können Verluste besser kontrolliert werden.
Feststehende Parameter können für verschiedene Märkte angepasst werden müssen.
Unzureichende Tests, die zu einer Überanpassung führen.Die Strategie muss auf größeren Datensätzen auf allen Märkten getestet werden, um die Robustheit sicherzustellen.
Die Strategie kann in mehrfacher Hinsicht verbessert werden:
Optimieren Sie die Indikatorparameter, um die besten Kombinationen zu finden, die falsche Signale minimieren.
Anstelle von festen Stopps im mittleren Band können Stopps sich an ATR, Trends usw. anpassen.
Verwendung von maschinellem Lernen für die adaptive Optimierung von Parametern unter veränderten Bedingungen, z. B. Verstärkungslernen.
Hinzufügen von Regeln zur Trenderkennung, um für verschiedene Marktphasen verschiedene Taktiken einzusetzen.
Einbeziehung von Stimmungen, Social-Media-Daten für eine verbesserte Multi-Faktor-Vorhersage und führende Indikatoren.
Verwenden Sie die Komponenten, um die Positionsgrößen auf der Grundlage der wachsenden Kontogröße für ein exponentielles Wachstum zu skalieren.
Optimierung von Kombinationen mit unkorrelierten Strategien zur Verringerung der Volatilität des Portfolios durch Diversifizierung.
Diese Strategie kombiniert mehrere Indikatoren für robuste Ein- und Ausstiegssignale und erzwingt eine strenge Stop-Loss-Disziplin. Die Verwendung mehrerer Indikatoren reduziert falsche Signale, während Stops die Verlustgröße kontrollieren.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0 // This displays the traditional Bollinger Bands, the difference is // that the 1st and 2nd StdDev are outlined with two colors and two // different levels, one for each Standard Deviation strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true, currency=currency.NONE, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_value = 0.05) src = input(close) length = input.int(34, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80)) //Strategy code starts here long_entry = ta.crossover(src, upper1) short_entry = ta.crossunder(src, lower1) strategy.entry("Long", strategy.long, when=long_entry) strategy.entry("Short", strategy.short, when=short_entry) if long_entry or close < basis strategy.close("Long", "Long") if short_entry or close > basis strategy.close("Short", "Short") //Calculate RSI rsiLength = input(14) rsiValue = ta.rsi(src, rsiLength) // Define RSI conditions for entering and exiting trades rsiLong = rsiValue > 70 rsiShort = rsiValue < 30 //Enter long position when RSI crosses above 50 and Bollinger Bands long entry condition is met strategy.entry("Long", strategy.long, when=long_entry and rsiLong) //Exit long position when RSI crosses below 50 or Bollinger Bands exit condition is met strategy.close("Long Exit", when=rsiShort or close < basis) //Enter short position when RSI crosses below 50 and Bollinger Bands short entry condition is met strategy.entry("Short", strategy.short, when=short_entry and rsiShort) //Exit short position when RSI crosses above 50 or Bollinger Bands exit condition is met strategy.close("Short Exit", when=rsiLong or close > basis) //Calculate MACD fastLength = input(12) slowLength = input(26) macdLength = input(9) macdValue = ta.macd(src, fastLength, slowLength, macdLength) // Define MACD conditions for entering and exiting trades macdLong = ta.crossover(src, macdLength) macdShort = ta.crossunder(src, macdLength) //Enter long position when MACD crosses above signal line and RSI and Bollinger Bands long entry condition is met strategy.entry("Long", strategy.long, when=long_entry and rsiLong and macdLong) //Exit long position when MACD crosses below signal line or RSI crosses below 50 or Bollinger Bands exit condition is met strategy.close("Long Exit", when=macdShort or rsiShort or close < basis) //Enter short position when MACD crosses below signal line and RSI crosses below 50 and Bollinger Bands short entry condition is met strategy.entry("Short", strategy.short, when=short_entry and rsiShort and macdShort) //Exit short position when MACD crosses above signal line or RSI crosses above 50 or Bollinger Bands exit condition is met strategy.close("Short Exit", when=macdLong or rsiLong or close > basis)