Dies ist eine dual-track-Reversal-Handelsstrategie, die auf Preiskanal, Bollinger-Bändern und schnellen RSI-Indikator basiert. Es kombiniert Kanalindex, um Trends zu identifizieren, Bollinger-Bänder, um Unterstützungs- und Widerstandsniveaus zu erkennen, und schnellen RSI, um überkaufte und überverkaufte Signale zu erkennen, um einen effizienten Reversal-Handel zu erreichen.
Die Strategie stützt sich hauptsächlich auf folgende Indikatoren, um Handelsentscheidungen zu treffen:
Preiskanal: Berechnet den höchsten und niedrigsten Preis über einen bestimmten Zeitraum und zeichnet die Kanalmitte.
Bollinger-Bänder: Die Mittellinie ist die Mittellinie des Preiskanals. Die oberen und unteren Banden werden auf der Grundlage der Standardabweichung der Abweichung des Preises von der Mittellinie berechnet. Handelssignale werden erzeugt, wenn der Preis mit den Bollinger-Bändern interagiert.
Fast RSI (Periode = 2): Bestimmt überkaufte und überverkaufte Situationen für den Preis.
Krypto-Bottom-Indikator: Bestimmt, ob der Preis die Unterstützungsstufe durchbrochen hat. Kombiniert mit einem schnellen RSI erzeugt er mit hoher Wahrscheinlichkeit lange Signale.
Nach dem Zeitpunkt, zu dem der Preis durch die Kanäle und Bollinger-Bänder durchbricht, um Trades zu tätigen, und auf der Grundlage von Überkauf- und Überverkaufsindikatoren des RSI lang oder kurz geht, wird die Kernhandelslogik dieser Strategie gebildet.
Diese Strategie hat folgende Vorteile:
Das Dual-Track-System erhöht die Signalgenauigkeit. Der Preiskanal beurteilt die wichtigsten Trends und die Bollinger-Bänder identifizieren präzise Unterstützungs- und Widerstandsniveaus. Die Kombination verbessert die Signalqualität.
Der Fast RSI Indikator erfasst Umkehrchancen, indem er Überkauf und Überverkauf erkennt. Der RSI-Zeitraum ist auf 2 gesetzt, so dass er schnell Umkehrknoten identifizieren kann.
Das Durchbrechen von Unterstützungsniveaus ermöglicht eine schnelle Beurteilung der Bodenmerkmale und vermeidet das Verpassen langer Signale.
Einfache und intuitive Parameterkombinationen erleichtern die Parameteroptimierung.
Diese Strategie birgt auch einige Risiken:
Bei falschen Parameter-Einstellungen für Bollinger-Bänder können signifikante Kursbewegungen übersehen oder falsche Signale erzeugt werden.
Die Interaktionsmuster zwischen den zwei Spuren können komplex sein und erfordern eine gewisse technische Verfeinerung für genaue Urteile.
Die Gefahr fehlgeschlagener Umkehrungen besteht immer noch, da die Wahrscheinlichkeit, dass der Preis zurückgezogen wird, nicht ausgeschlossen werden kann.
Schwierigkeiten bei der Optimierung von Parametern: Die optimalen Parameter können bei Veränderung der Marktbedingungen wirkungslos werden.
Die Strategie kann in folgenden Bereichen verbessert werden:
Optimieren Sie die Parameter der Bollinger-Bänder, um die oberen und unteren Bande näher an den Preis zu bringen und die Genauigkeit der Handelssignale zu verbessern.
Hinzufügen von Stop-Loss-Mechanismen, um Verluste zu reduzieren, wenn sie bestimmte Schwellenprozentsätze erreichen.
Einbeziehung von mehr Indikatoren zur Bestimmung von Trend-, Unterstützungs- und Widerstandsniveaus zur Verringerung falscher Signale.
Einführung von Algorithmen für maschinelles Lernen zur automatischen Abstimmung der Parameter, damit sie sich an sich ändernde Marktumgebungen anpassen können.
Diese Strategie integriert Preiskanal, Bollinger-Bänder und schnellen RSI-Indikator, um ein Dual-Track-Umkehrhandelssystem zu konstruieren. Während es wichtige Trends beurteilt, ergreift es auch schnell Unterstützung, Widerstand und Überkauf/Überverkaufsmöglichkeiten. Die Parameter-Einstellungen sind einfach und direkt, leicht zu verstehen und zu optimieren. Es kann Umkehrchancen effektiv identifizieren und dem algorithmischen Handel entsprechen.
/*backtest start: 2022-12-18 00:00:00 end: 2023-11-30 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.3", shorttitle = "NoroBands str 1.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") color = input(true, "Use ColorBar") usecb = input(true, "Use CryptoBottom") usersi = input(true, "Use RSI") needbb = input(false, defval = false, title = "Show Bands") needbg = input(false, defval = false, title = "Show Background") src = close //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //CryptoBottom mac = sma(close, 10) lencb = abs(close - mac) sma = sma(lencb, 100) max = max(open, close) min = min(open, close) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //dist dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Signals up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0 dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom //dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom up3 = fastrsi < 5 ? 1 : 0 //dn3 = fastrsi > 99 ? 1 : 0 longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true) if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)