Bollinger Bands, RSI, MACD, stochastische Multi-Indikator-Fusion-Handelsstrategie


Erstellungsdatum: 2023-09-28 12:06:39 zuletzt geändert: 2023-09-28 12:06:39
Kopie: 0 Klicks: 1712
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Diese Strategie-Synthese verwendet vier verschiedene technische Indikatoren für Brin-Band-, RSI-, MACD- und Stochastic-Trading. Sie beurteilt zunächst, ob der Preis außerhalb des Brin-Band-Kanals liegt, und wenn ja, macht er nach der Richtung mehr Leerlässigkeit; dann beurteilt sie, ob der RSI in der Überkauf-Überverkaufszone ist, und wenn ja, kann er nach der Richtung eingegeben werden; dann beurteilt sie, ob der MACD in der Gold-Fork-Stop-Zone ist, und wenn ja, kann er nach der Richtung eingegeben werden; und schließlich beurteilt sie, ob der Stochastic einen Gold-Fork-Stop erzeugt und sich in der Überkauf-Überverkaufszone befindet, und kann eingegeben werden, wenn die Bedingungen erfüllt sind. Wenn alle vier Indikatoren erfüllt sind, wird die Strategie mit einer aggressiveren Putschmethode durchgeführt, um einen höheren Gewinn zu erzielen.

Grundsätze

Die Strategie basiert auf vier Indikatoren: Brin-Band, RSI, MACD und Stochastic.

Der Brin-Band ist ein Auf- und Abwärtstrend, der auf der Grundlage der Standarddifferenz des Aktienpreises berechnet wird. Wenn der Aktienpreis über den Brin-Band-Abwärtstrend hinausgeht, ist der Aktienpreis außerhalb des normalen Schwankungsbereichs.

Der RSI berechnet seine Werte durch einen schnellen Rise und einen schnellen Fall. Wenn der RSI unter 30 liegt, ist es ein Überverkauf, und wenn er über 70 liegt, ist es ein Überkauf, und kann als Kauf- und Verkaufssignal verwendet werden.

Der MACD ist der Indexmittelwert DIFF minus der Abweichung von DEA, DIFF nach oben über DEA als Goldfork plus Signal, DIFF nach unten über DEA als Dead Fork minus Signal.

Stochastische K- und D-Linien können auch als Handelssignale verwendet werden. K-Linien unter 20 sind Überverkauf und über 80 sind Überkauf, K-Linien über D-Linien sind Mehrkopfsignale und unter D-Linien sind Leerkopfsignale.

Insbesondere, wenn der Preis über die Bollinger Bands auf die Bahn gesehen als mehr als ein Signal; wenn der RSI unter 30 gesehen als mehr als ein Signal; wenn der MACD Goldfork gesehen als mehr als ein Signal; wenn die Stochastic K-Linie durch die D-Linie und die K-Linie unter 20 gesehen als mehr als ein Signal. Wenn diese vier Bedingungen gleichzeitig erfüllt sind, ist die Strategie der Aufnahme von Positionen zu nehmen.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass die Kombination von mehreren Indikatoren zur Beurteilung von Trends eine höhere Genauigkeit und Gewinnrate als ein einzelner Indikator bietet.

Erstens, die Strategie integriert mehrere Zeiträume der Indikatoren, einschließlich der mittleren und langen Trendbeurteilungen der Brin-Band, sowie die kurzfristigen Indikatoren der MACD, RSI und Stochastic, so dass die Strategie auf mehreren Zeitdimensionen beurteilt wird, was die Wahrscheinlichkeit von Fehlentscheidungen verringert.

Zweitens verwendet die Strategie das Prinzip der Multi-Indikator-Bestätigung, um die Gastfrequenz zu gewährleisten, die nur dann erreicht wird, wenn mehrere Indikatoren gleichzeitig signalisiert werden. Zum Beispiel müssen alle vier Indikatoren Brin-Band, RSI, MACD und Stochastic erfüllt sein, um die Position zu erhöhen. Dies vermeidet die möglichen Ausfälle eines einzelnen Indikators.

Die Strategie nutzt außerdem eine Kombination von Indikatoren, die die Vorteile verschiedener Indikatoren ergänzen und die Gewinnrate erhöhen. Zum Beispiel kann der RSI überkauft und überverkauft sein, Brin-Band kann Trend-Abweichungen erkennen, MACD kann kurzfristige Veränderungen erkennen usw. Die Kombination dieser Indikatoren kann ihre eigenen Vorteile ausüben.

Schließlich verwendet die Strategie eine Aufstockungs-Strategie, die mehr Gewinne erzielt, wenn die Indikatorensignale festgelegt sind. Wenn die vier Indikatorensignale festgelegt sind, wird die Aufstockungsmethode mehr Gewinne erzielen als der quantitative Handel.

Risikoanalyse

Die Strategie birgt auch einige Risiken, die beachtet werden müssen.

Zunächst wird eine Vielzahl von Parametern und Kennzahlen in der Strategie verwendet, was die Schwierigkeit der Strategieoptimierung erhöht. Es gibt viele Parameter, die angepasst werden müssen, und es sind große Mengen an historischen Daten erforderlich, die wiederholt getestet werden müssen, um die optimale Kombination von Parametern zu finden.

Zweitens ist die Strategie darauf angewiesen, dass mehrere Indikatoren gleichzeitig signalisiert werden, was selten ist und zu einer geringen Handelsfrequenz führen kann. Die Strategie kann schwach sein, wenn sie lange Zeit kein synchrones Signal erfasst.

Außerdem kann die Gewinnausweitung die Gewinne ausweiten, aber auch die Verluste ausweiten. Wenn die vier Indikatoren falsch synchronisiert sind, kann die Gewinnausweitung zu größeren Verlusten führen.

Schließlich ist die Strategie davon ausgegangen, dass mehrere Indikatoren gleichzeitig signalisiert werden, um eine stärkere Bestätigung zu erzielen, aber es muss berücksichtigt werden, wie die Entscheidung getroffen wird, wenn die Indikatoren ausbrechen. Wenn die Indikatoren nicht übereinstimmen, sollte die Strategie eine quantitative Entscheidungsprozess einrichten.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Kennzahlenparameter, um die optimale Kombination von Kennzahlen zu finden. Eine umfassende Optimierung der Kennzahlenparameter kann durch genetische Algorithmen, Gittersuche usw. durchgeführt werden.

  2. Erhöhung der Stop-Loss-Strategie, um Verluste zu kontrollieren. Wenn der Preis einen Punkt in eine negative Richtung durchbricht, ergreifen Sie eine Stop-Loss-Exit-Strategie, um zu verhindern, dass die Verluste sich ausdehnen.

  3. Optimierung der Zulassungslogik durch die Einrichtung eines quantitativen Bewertungssystems, wenn die Kennzahlen nicht übereinstimmen.

  4. Optimierung der Ausstiegslogik, Erforschung der Gewinn- und Verlustquote für verschiedene Positionszeiten und Erstellung von optimalen Ausstiegsregeln.

  5. Optimierung der Handelsvarianten und -zeiten, Anpassung der Handelsvarianten und -zeiten an die Strategie.

  6. Testen Sie die Auswirkungen der Transaktionskosten auf die Optimierung der Strategie nach den Parametern Gleitpunkt und Gebühr.

  7. Die Einführung von Machine Learning-Algorithmen und der Nutzung von neuronalen Netzwerken für die Anpassung von Parametern und die Optimierung von Strategien.

Zusammenfassen

Die Strategie verwendet mehrere Indikatoren und mehrere Bestätigungsmechanismen für die Entscheidungsfindung, um unter vernünftigen Parametern und strengen Bedingungen bessere Strategieeffekte zu erzielen. Es gibt jedoch auch gewisse operative Schwierigkeiten und Risiken, die die Stabilität und Zuverlässigkeit der Strategie durch ständige Optimierung verbessern müssen. Der Schlüssel besteht darin, die optimale Übereinstimmung der Indikatorparameter zu finden, wissenschaftliche Einstiegs- und Ausstiegsregeln zu erstellen und das Risiko so zu kontrollieren, dass die Strategie in einem komplexen und variablen Markt nachhaltig profitabel ist.

Strategiequellcode
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MD strategy", overlay=true)
lengthrsi = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
source = close
lengthbb = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
direction = input(0, title = "Strategy Direction",  minval=-1, maxval=1)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
consecutiveBarsUp = input(3)
consecutiveBarsDown = input(3)
lengthch = input( minval=1, maxval=1000, defval=5)
upBound = highest(high, lengthch)
downBound = lowest(low, lengthch)
lengthst = input(14, minval=1)
OverBoughtst = input(80)
OverSoldst = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, lengthst), smoothK)
d = sma(k, smoothD)



ups = price > price[1] ? nz(ups[1]) + 1 : 0
dns = price < price[1] ? nz(dns[1]) + 1 : 0
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

basis = sma(source, lengthbb)
dev = mult * stdev(source, lengthbb)

upper = basis + dev
lower = basis - dev

vrsi = rsi(price, lengthrsi)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")
    
    
if (not na(k) and not na(d))
    if (crossover(k,d) and k < OverSoldst)
        strategy.entry("StochLE", strategy.long, comment="StochLE")
    if (crossunder(k,d) and k > OverBoughtst)
        strategy.entry("StochSE", strategy.short, comment="StochSE")   
        
if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")