Zweigleisige schnelle quantitative Umkehrhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-19
Tags:

img

Übersicht

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.

Strategie Logik

Die Strategie stützt sich hauptsächlich auf folgende Indikatoren, um Handelsentscheidungen zu treffen:

  1. Preiskanal: Berechnet den höchsten und niedrigsten Preis über einen bestimmten Zeitraum und zeichnet die Kanalmitte.

  2. 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.

  3. Fast RSI (Periode = 2): Bestimmt überkaufte und überverkaufte Situationen für den Preis.

  4. 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.

Vorteile der Strategie

Diese Strategie hat folgende Vorteile:

  1. 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.

  2. 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.

  3. Das Durchbrechen von Unterstützungsniveaus ermöglicht eine schnelle Beurteilung der Bodenmerkmale und vermeidet das Verpassen langer Signale.

  4. Einfache und intuitive Parameterkombinationen erleichtern die Parameteroptimierung.

Risiken der Strategie

Diese Strategie birgt auch einige Risiken:

  1. Bei falschen Parameter-Einstellungen für Bollinger-Bänder können signifikante Kursbewegungen übersehen oder falsche Signale erzeugt werden.

  2. Die Interaktionsmuster zwischen den zwei Spuren können komplex sein und erfordern eine gewisse technische Verfeinerung für genaue Urteile.

  3. Die Gefahr fehlgeschlagener Umkehrungen besteht immer noch, da die Wahrscheinlichkeit, dass der Preis zurückgezogen wird, nicht ausgeschlossen werden kann.

  4. Schwierigkeiten bei der Optimierung von Parametern: Die optimalen Parameter können bei Veränderung der Marktbedingungen wirkungslos werden.

Optimierungsrichtlinien

Die Strategie kann in folgenden Bereichen verbessert werden:

  1. 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.

  2. Hinzufügen von Stop-Loss-Mechanismen, um Verluste zu reduzieren, wenn sie bestimmte Schwellenprozentsätze erreichen.

  3. Einbeziehung von mehr Indikatoren zur Bestimmung von Trend-, Unterstützungs- und Widerstandsniveaus zur Verringerung falscher Signale.

  4. Einführung von Algorithmen für maschinelles Lernen zur automatischen Abstimmung der Parameter, damit sie sich an sich ändernde Marktumgebungen anpassen können.

Schlussfolgerung

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)

Mehr