Mehrzeitrahmen Bollinger Bands Breakout-Strategie mit RSI

Schriftsteller:ChaoZhang, Datum: 2024-02-21 13:59:31
Tags:

img

Übersicht

Diese Strategie beinhaltet Bollinger Bands, RSI-Indikator und Multi-Timeframe-Analyse, um die Richtung der mittelfristigen bis langfristigen Trends zu erfassen. Sie identifiziert Trendumkehrpunkte durch Bollinger Bands Breakouts in Kombination mit RSI-Überkauf/Überverkaufssignalen für einen niedrigen Risikobereich. In der Zwischenzeit werden höhere Zeitrahmen angewendet, um die unterschiedlichen Märkte auszufiltern und nicht gefangen zu werden.

Strategie Logik

  1. Bollinger-Bänder werden angewendet, um Preisbrechungen zu bestimmen. Das mittlere Band ist der gleitende Durchschnitt des Schlusskurses über N Tage. Die oberen und unteren Bande werden auf einer Entfernung von einer Standardabweichung auf beiden Seiten des mittleren Bands platziert.

  2. Einbeziehen Sie den RSI-Indikator, um überkaufte/überverkaufte Niveaus zu identifizieren. Ein RSI über 70 deutet auf überkaufte Bedingungen hin, während unter 30 auf überverkaufte Bedingungen hindeutet. Ein Aufbruch des RSI über 70 bestätigt die Schwächung der Aufwärtsdynamik. Ein Abbruch des RSI unter 30 bestätigt die Schwächung der Abwärtsdynamik.

  3. Wenn ein Ausbruchssignal auf dem täglichen Zeitrahmen erscheint, benötigt es eine zusätzliche Bestätigung aus den 4-Stunden- oder höheren Zeitrahmen, um nicht gefangen zu werden.

Vorteile

  1. Die Integration mehrerer Indikatoren erhöht die Stabilität und Rentabilität der Strategie.

  2. Die Einbeziehung des RSI verringert Verluste durch falsche Ausbrüche.

  3. Die Multi-Time-Frame-Analyse filtert unterschiedliche Märkte effektiv aus und verhindert, dass sie gefangen werden.

  4. Eine optimierte Bestimmung des Breakout-Signals (Breakouts über 3 aufeinanderfolgende Balken) gewährleistet eine ausreichende Trendreife vor den Einträgen.

  5. Vortex-Indikator bestimmt frühzeitig die Richtung des Trends.

Risiken

  1. Eine unzureichende Parametrierung der Bollinger Bands führt zu falschen Signalen für Überkauf/Überverkauf.

  2. Für verschiedene Produkte müssen angemessene Werte der RSI-Parameter getrennt bestimmt werden.

  3. Die Ausbruchsignale können sich als falsche Ausbrüche erweisen.

  4. Es muss eine ausreichende Stop-Loss-Marge aufrechterhalten werden, z. B. 3-fache ATR.

Möglichkeiten zur Verbesserung

  1. Anwendung von Algorithmen für maschinelles Lernen zur automatischen Abstimmung von Parametern für Bollinger-Bänder und RSI.

  2. Optimieren Sie die Stop-Loss-Levels anhand von Volatilitätsmetriken.

  3. Einbeziehung eines Positionsdimensionierungsmoduls zur Kalibrierung von Risikopositionen auf der Grundlage veränderter Marktbedingungen.

  4. Einschränkung des maximalen Verlustes pro Handel auf der Grundlage von Geldmanagementprinzipien.

  5. Bewertung der Signalstabilität in verschiedenen Handelssitzungen.

Schlussfolgerung

Diese Strategie untersucht umfassend die Trendbestimmung, die Überkauf-/Überverkaufsbedingungen und mehrere Zeitrahmen zur Risikokontrolle und sucht gleichzeitig nach einem optimalen Einstiegszeitpunkt, um qualitativ hochwertige mittelfristige bis langfristige Trends für attraktive Risiko-Rendite-Profile zu erfassen.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Noway0utstorm
//@version=5
strategy(title='Vortex0.71.3 + bb 3bar breakout + rsi - close hit upper or lower', shorttitle='truongphuthinh', format=format.price, precision=4,overlay = true)

length = input(20, title="Length")
mult = input(2.0, title="Multiplier")
source = close

basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)

upperBand = basis + dev
lowerBand = basis - dev

isClosedBar = ta.change(time("15"))

var bool closeAboveUpperBand = false
var bool closeBelowLowerBand = false


// Vortex Indicator Settings
period_ = input.int(14, title='Period', minval=2)

VMP = math.sum(math.abs(high - low[1]), period_)
VMM = math.sum(math.abs(low - high[1]), period_)
STR = math.sum(ta.atr(1), period_)
VIP = VMP / STR
VIM = VMM / STR

//
lengthrsi = input(14, title="RSI Length")
overboughtLevel = input(70, title="Overbought Level")
oversoldLevel = input(30, title="Oversold Level")

sourcersi = close
rsiValue = ta.rsi(sourcersi, lengthrsi)

shouldShort = rsiValue > overboughtLevel
shouldLong = rsiValue < oversoldLevel




if bool(isClosedBar[1]) and bool(isClosedBar[2]) and bool(isClosedBar[3])

    if close[1] > upperBand[1] and close[2] > upperBand[2] and close[3] > upperBand[3] and VIP > 1.25 and VIM < 0.7 and rsiValue > overboughtLevel
        strategy.entry("Short", strategy.short)
        closeAboveUpperBand := false  // Reset the condition when entering a new Short position
    if close[1] < lowerBand[1] and close[2] < lowerBand[2] and close[3] < lowerBand[3] and VIP < 0.7 and VIM > 1.25 and rsiValue < oversoldLevel
        strategy.entry("Long", strategy.long)
        closeBelowLowerBand := false  // Reset the condition when entering a new Long position



if strategy.position_size > 0  // Check if there is an open Long position
    closeAboveUpperBand := close > upperBand  // Update the condition based on close price
    if closeAboveUpperBand
        strategy.close("Long",disable_alert=true)  // Close the Long position if close price is above upper band

if strategy.position_size < 0  // Check if there is an open Short position
    closeBelowLowerBand := close < lowerBand  // Update the condition based on close price
    if closeBelowLowerBand
        strategy.close("Short",disable_alert=true)  // Close the Short position if close price is below lower band

// Plots
plot(basis, color=color.orange, title="Basis")
p1 = plot(upperBand, color=color.blue, title="Upper Band")
p2 = plot(lowerBand, color=color.blue, title="Lower Band")
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

Mehr