Doppel-RSI kombiniert mit Bollinger-Band für Trendverfolgung

Schriftsteller:ChaoZhang, Datum: 2023-09-19 22:10:02
Tags:

Übersicht

Diese Strategie verwendet doppelte RSI-Indikatoren, um überkaufte und überverkaufte Bedingungen zu identifizieren, kombiniert mit Bollinger Band Breakouts, um Handelssignale zu generieren.

Grundsätzliche Analyse

Die Strategie verwendet zwei RSI mit unterschiedlichen Zeitrahmen, um den kurzfristigen und langfristigen Überkauf/Überverkaufstatus zu beurteilen. Handelssignale werden nur generiert, wenn beide RSI gleichzeitig die Schwellenwerte erreichen. Dies vermeidet falsche Signale von einem einzigen RSI.

Bollinger Bands werden auch verwendet, um Preis-Breakouts zu identifizieren. Nur wenn die RSI-Bedingungen erfüllt sind und der Preis den oberen/unteren Bereich des Bollbands bricht, wird ein Handelssignal generiert. Die Breakout-Bestätigung hilft, Signale in nicht-trendenden Märkten zu vermeiden.

Schließlich werden schnelle und langsame MAs auf die Trendrichtung überprüft.

Analyse der Vorteile

Die Kombination von mehreren Indikatoren hilft, falsche Signale auszufiltern und nur offensichtliche Trends zu handeln.

Risikoanalyse

Das Hauptrisiko besteht darin, dass Trendumkehrungen nicht zeitnah erkannt werden. Scharfe V-förmige Umkehrungen können ohne rechtzeitigen Stop-Loss zu erheblichen Verlusten führen. Die Einstellung der Parameter kann sich auch auf die Leistung auswirken.

Optimierungsvorschläge

  1. Fügen Sie Stop-Loss-Strategien hinzu, um bei Rückschlägen schnell auszutreten.

  2. Fügen Sie andere Filter wie Lautstärke ein, um falsche Ausbrüche zu vermeiden.

  3. Optimieren Sie die Parameter, um die beste Kombination zu finden.

  4. Hinzufügen von Modellen für maschinelles Lernen zur besseren Identifizierung von Marktregimen.

  5. Verbesserung des Risikomanagements einschließlich Positionsgrößen, Verlustkontrolle.

Schlussfolgerung

Diese Strategie kombiniert doppelten RSI und Bollinger Bands, um von kurzfristigen Trends zu profitieren. Obwohl einfach und unkompliziert, gibt es Einschränkungen wie verzögerte Umkehrsignale.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD)
 
// === GENERAL INPUTS ===
// RSI 1
RSIlength = input(10,title="RSI") 
RSIoverSold = input(65,title="OSold")
RSIoverBought = input(35,title="OBought")
price = close
vrsi = rsi(price, RSIlength)
// RSI 2
RSIlength2 = input(6,title="RSI2") 
RSIoverSold2 = input(65,title="OSold2")
RSIoverBought2 = input(35,title="OBought2")
price2 = close
vrsi2 = rsi(price2, RSIlength2)

//Bollinger Bands
source = close
Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50)
basis = sma(source, Bollinger)
dev = Desv * stdev(source, Bollinger)
upper = basis + dev
lower = basis - dev
plot(basis, color=red, title="BB ma")
p1 = plot(upper, color=blue, title="BBajo")
p2 = plot(lower, color=blue, title="BAlto")
fill(p1, p2)

//Media movil
short = input(3, minval=1, title="Media corta")
long = input(10, minval=1, title="Media larga")
src = close
plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida")
plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta")


// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => vrsi < 30 and  vrsi2 < 27 and cross(lower, price)
exitLong() => short < long
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price)
strategy.entry(id = "Short", long = false, when = enterShort())


// Definición señales de compra
buy_signals = vrsi < 30 and  vrsi2 < 27 and cross(lower, price)

// Definición señales de venta
sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price)

// Dibuja las señales de compra venta en franjas de color
b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na
bgcolor(b_color)

// Dibuja las señales de compra venta coloreando las velas
barcolor(buy_signals ? white : sell_signals ? white : na)

plot(vrsi, color=white, linewidth=1)
plot(vrsi, color=white, linewidth=2)

// Crea alarmas usables desde el desplegable para poder enviar mails a haas
alertcondition(buy_signals, title='Buy-Signal', message='compra')
alertcondition(sell_signals, title='Sell-Signal', message='vende')


Mehr