
Diese Strategie verwendet die RSI-Indikatoren, um Überkauf- und Überverkaufsignale zu identifizieren, die Bollinger Bands, um den Preisbruch zu beurteilen, und die Gold- und Goldfork-Toten-Formen in der Gleichung zu nutzen, um den Markt in verschiedenen Phasen des Trends zu beurteilen und zu profitieren.
Die Strategie umfasst folgende Komponenten:
RSI-Indikator: Wenn der RSI-Indikator über die eingestellte Überkauf- oder Unterkauflinie geht, wird der entsprechende Kauf- oder Verkaufsvorgang durchgeführt.
Brin-Band: Wenn der Preis den Brin-Band überschreitet, wird ein Short-Operation durchgeführt. Wenn der Preis den Brin-Band überschreitet, wird ein Multi-Operation durchgeführt.
Durchschnittslinie: Berechnung der Höchst- und Tiefstpreise innerhalb eines bestimmten Zeitraums (wie z. B. 5 Zyklen), wenn der Preis höher ist als der höchste Punkt der letzten 5 Zyklen, machen Sie einen Plus; wenn der Preis niedriger ist als der niedrigste Punkt der letzten 5 Zyklen, machen Sie einen Minus.
MACD: Berechnung der Gold- und Goldfork-Sterbe der schnellen, langsamen und MACD-Linien als Hilfsindikator.
Diese Indikatoren werden miteinander kombiniert, um die Zeitpunkte des Preisbruchs und der Rückkehr in die Mitte der Achse in einer Trendbewegung mit dem Brin-Band zu bestimmen. In einer Konzentration nutzt man die Brechungen der Gleichgewichtslinie, um die Trendwende zu erfassen.
Die Strategie hat folgende Vorteile:
Mehrfache Indicator-Kombination, um genau zu beurteilen. RSI, Brin-Band, Gleichgewicht und andere Indikatoren werden gegenseitig verifiziert, was das Handelssignal zuverlässiger macht.
Es gibt verschiedene Arten von Bewegungen, die mit dem Brin-Band, dem Durchschnitt und dem RSI konfrontiert werden können.
Die Indicator-Parameter sind vorsichtig eingestellt, um zu häufige Transaktionen zu vermeiden.
Die Programmierstruktur ist klar. Der Code ist spezifiziert, leicht zu lesen und zu verwenden.
Die Strategie birgt auch einige Risiken:
Risiken bei der Parameter-Einstellung. Fehleinstellung von Indikatorparametern kann zu Fehlsignalen führen. Die Optimierungsparameter müssen wiederholt getestet werden.
Die Risiken von mehrfachen Leerköpfen. Bei Marktwendepunkten können mehrfache Leerköpfe häufiger geschehen, was die Transaktionskosten erhöht. Die Haltedauer kann entsprechend angepasst werden.
Programmierungsrisiken. Es kann sein, dass es einige schwer zu entdeckende logische Fehler im Code gibt, die zu außergewöhnlichen Transaktionen führen.
Die Strategie kann auch in folgenden Richtungen optimiert werden:
Erhöhung der Stop-Loss-Strategie, um Gewinne zu sichern und Verluste zu reduzieren.
In Kombination mit dem Volumenindikator werden Falschsignale vermieden, z. B. die Überprüfung des Volumens bei einem Bruch der Brin-Band.
Hinzufügen von Machine-Learning-Algorithmen, das Training mit historischen Daten und die automatische Optimierung von Parametern.
Die Grafik zeigt die Strategie auf.
Optimierung der Rückmeldung und Auswahl der optimalen Parameterkombination.
Die Strategie verwendet mehrere Indikatoren wie die Durchschnittslinie, die Brin-Band und den RSI, um über eine Kombination von Indikatoren zu urteilen und Handelssignale zu erzeugen. Die Strategie hat die Vorteile, dass sie anpassungsfähig und präzise ist. Das Risiko besteht hauptsächlich in der Einstellung der Parameter und der Durchführung der Prozedur, die ständig optimiert werden muss.
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
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)
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(close[lengthch]))
strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)