Diese Strategie ist eine ähnliche wie die Grid Bot-Strategie, die hauptsächlich für den Algorithmus des Handels verwendet wird. Sie verwendet ein dynamisches, nicht gleichmäßig spaziertes Grid-Gitter, das auf dem Handelsvolumen basiert, und das Grid wird nur aktualisiert, wenn der RSI bestimmte Bedingungen erfüllt. Sie hat auch die Eigenschaft eines Durchbruchsgeschäfts, im Gegensatz zu einem normalen Grid-Bot (ein typischer Grid-Bot verkauft, wenn eine höhere Grid-Linie erreicht wird, während diese Strategie unter bestimmten Bedingungen verkauft wird, wenn eine niedrigere Grid-Linie abfällt).
Kurz gesagt, die Strategie aktualisiert das Raster auf die höchsten/niedrigsten Preise, die auf dem Volumen berechnet wurden, die für die von Ihnen angegebene Datenquelle (“src” in der Einstellung) berechnet wurden, jedes Mal, wenn der RSI die Kauf/Verkauf-Signallinie durchquert. Sie erzeugt eine Linie mit 5 gleichmäßigen Abständen in diesem Bereich und bestimmt mit der aktuellen Datenquelle, welche die nächste ist. Wenn die Datenquelle die Linie über der aktuellen Linie durchbricht, wird ein Kaufsignal ausgesendet.
In den Einstellungen können Sie die Leerstellung, die Datenquelle, die Länge der RSI-Zyklen und die Überkauf-Überverkaufslinie konfigurieren.
Die Kernlogik der Strategie lautet:
Der RSI-Indikator wird verwendet, um einen Trendwendepunkt zu ermitteln, der als Bestätigungssignal die Überkauf- oder Überverkaufszone verwendet, die durch die RSI-Linie gekreuzt wird.
Wenn ein RSI-Bestätigungssignal erscheint, werden die Höchst- und Tiefstpreise eines bestimmten Zeitraums aufgezeichnet, die als untere Grenze des Rasters eingestellt werden.
Die Preise werden in fünf Grid-Linien unterteilt, je nach der oberen und unteren Grenze, um in Echtzeit zu beurteilen, welche Grid-Linien den Preisen nahe sind.
Wenn der Preis über der Gitterlinie übersteigt, wird ein Plus eingegeben. Wenn der Preis unter der Gitterlinie untersteigt, wird ein Minus eingegeben.
Durch die Nutzung von Breakout-Methoden, statt der typischen Grid-Bot-Methode, die das Netz berührt, können Trends breaking besser erfasst werden.
Die Platzierung aller Pyramiden-Orders am Ende des Handelstages verhindert das Risiko über Nacht.
Die Strategie besteht hauptsächlich aus folgenden Teilen:
Die Einstellungen der Eingabeparameter umfassen die Datenquelle, die RSI-Parameter, die Auswahl von mehreren Kaufoptionen usw.
Berechnung des RSI: Berechnen Sie den RSI und beurteilen Sie, ob ein Durchschnittssignal auftritt.
Dynamische Grid-Einstellungen: Erfasst die Preisspanne und berechnet die Grid-Linie bei Auftreten des RSI-Signals.
Signalentscheidung: Erkennen, ob der Preis das Netz auf- und abschaltet, um zu entscheiden, ob ein zusätzliches Signal für die Lücke gemacht wird.
Auftragsverwaltung: Auslösen von Multi-Low-Low-Signalen und Platzieren von Pyramidenaufträgen vor dem Schließen.
Graphische Schnittstelle: Zeigen Sie die Gitterlinie, erstellen Sie mehr Freiflächen usw.
Durch die dynamische Aktualisierung des Grids in Verbindung mit dem RSI-Indikator können Trendbeurteilungen und Durchbruchsignale die Strategie effektiv verfolgen, um bei einer Umkehrung die Richtung rechtzeitig zu ändern. Die Pre-Closing-Plating-Position kann das Übernachtungsrisiko effektiv kontrollieren.
Diese Strategie hat folgende Vorteile:
Ein dynamisches Raster kann sich an Trends anpassen und ist flexibler als ein festes, unveränderliches Raster.
Das Netz kann nur dann angepasst werden, wenn der RSI eine Trendwende bestätigt, wodurch ein Teil des Geräuschsignals gefiltert wird.
Durch die Verwendung von Durchbruchsignalen, anstatt nur zu berühren, können Trendwendepunkte genauer erfasst werden.
Die Einführung eines vollständigen Ausgleichs der Positionen vor der Schließung verhindert die Gefahr von starken Schwankungen über Nacht und schützt die Gewinne.
Der RSI ist ein guter Indikator für Überkäufe und Überverkäufe, wenn er mit einem dynamischen Raster kombiniert wird.
Mit einem Break-in-Modus statt einem Rückschlag-Modus kann man sich am Anfang eines Trends bessere Eintrittschancen verschaffen.
Durch die Anpassung des Rasterspannens und des Handelsvolumens können die Risiko-Gewinn-Charakteristiken der Strategie flexibel angepasst werden.
Die Grafik-Oberfläche zeigt die Rasterverteilung und die Freiraum-Zonen an.
Die Option, eine Kaufstelle zu eröffnen, ist für verschiedene Händler verfügbar.
Die Regeln sind einfach, klar, leicht zu verstehen und für den algorithmischen Handel geeignet.
Die oben genannten Vorteile ermöglichen es der Strategie, Trends automatisch zu verfolgen und gleichzeitig Risiken zu kontrollieren, was sie für den Einsatz in der Praxis von Quantitative Trading geeignet macht.
Die Strategie birgt auch einige potenzielle Risiken, die zu beachten sind:
Bei starken Erschütterungen kann ein Stop-Loss-Risiko auftreten. Der Stop-Loss-Range kann entsprechend gelockert oder die Strategie während des Erschütterungszeitraums ausgesetzt werden.
In der Nacht kann es zu starken Übernachtungsbewegungen kommen, die zu größeren offenen Positionen führen. Um dieses Risiko zu vermeiden, kann eine Verringerung der Positionsquote in Betracht gezogen werden.
Die falsche Einstellung der Parameter kann zu hohen Handelsfrequenzen oder Signalfehlern führen. Die Optimierungsparameter sollten sorgfältig getestet werden.
Wenn die Gebühren höher sind, kann der Gewinn aus den Gittergeschäften wiederholt ausgeschöpft werden. Die Anzahl der Geschäfte sollte entsprechend angepasst werden oder eine Börse mit niedrigeren Gebühren gewählt werden.
Ein Durchbruch kann etwas später als die Trendwende auftreten und erfordert eine vernünftige Einstellung der Breakout-Wert.
Die Strategie kann in einer stabilen Aufwärtsphase des Aktienmarktes schlecht abschneiden. Eine Kombination mit anderen Indikatoren kann in Betracht gezogen werden.
Es ist notwendig, ausreichend Kapital zu haben, um große Positionen und Pyramidenpositionen zu unterstützen, sonst ist die Wirkung schwach. Die Position sollte entsprechend der Menge des Kapitals angepasst werden.
Gegenmaßnahmen:
Optimierung der Parameter, Verringerung der Handelsfrequenz und Verhinderung von Überhandelungen.
Es ist wichtig, dass Sie sich mit Trendindikatoren auseinandersetzen und nicht mit Schwankungen handeln.
Die Anpassung der Positionen, die Verringerung des Anteils der einzelnen Geschäfte und die Kontrolle des Risikos.
Verschiedene Durchbruchspektren werden getestet, um zeitgerechte und stabile Durchbruchspektren auszugleichen.
Es kann in Kombination mit anderen Indikatoren in Betracht gezogen werden, um mehr Marktinformationen zu nutzen.
Erhöhung der Kapitalmenge, Erweiterung der Positionsgröße und Erhöhung der Gewinnspanne.
Durch Parameteroptimierung, Risikomanagement und Kombinationen mit anderen Strategien kann das Risiko der Strategie bis zu einem gewissen Grad reduziert werden, so dass sie stabil funktionieren kann.
Die Strategie kann in folgenden Bereichen weiter optimiert werden:
Optimieren Sie die RSI-Parameter, testen Sie verschiedene RSI-Zykluslängen und suchen Sie nach der optimalen Kombination von Parametern.
Versuchen Sie, die Grids mit unterschiedlichen Grid-Intervall-Einstellungen zu testen, um das optimale Gewinn-Risiko-Verhältnis zu finden.
Versuchen Sie, die Filtersignale mit anderen Indikatoren zu kombinieren, z. B. MACD, KD usw., um die Genauigkeit zu verbessern.
Entwickeln Sie eine anpassungsfähige Stop-Loss-Strategie, um die Stop-Loss-Werte dynamisch an die Marktschwankungen anzupassen.
Erhöhen Sie die Bedingungen für die Eröffnung von Positionen, nur wenn die Trends klar genug sind, um zu vermeiden, dass Sie eingehalten werden.
Optimierung der Rückmessung, Überprüfung der Daten über längere Zeiträume und Bewertung der Parameterstabilität.
Die Strategie wird in der Lage sein, sich an unterschiedliche Marktumgebungen anzupassen, indem man die dynamischen Parameter optimiert.
Erforschen Sie Strategien, die mit Options kombiniert werden, um die Risiken einer Optionsposition abzusichern.
Anpassung der Optimierung der Strategie an die Parameter der aktuellen Marktsituation, um die Effektivität der Strategie zu erhalten.
Entwicklung einer Plattform für die Optimierung von Grafikstrategien zur Unterstützung schneller Optimierungstests.
Durch automatisierte Parameteroptimierung, Kombination von Strategien und Einführung von mehr Marktinformationen kann die Strategie eine bessere Stabilität und Rendite erzielen und eine wirklich zuverlässige Quantitative Trading-Strategie werden.
Insgesamt verwendet die RSI-Rectangle-Grid-Strategie die RSI-Indikatoren, um Trend-Umkehr-Bestätigungssignale zu ermitteln, ein dynamisches Preisspektrum-Gitter zu erstellen, bei einem Durchbruch der Gitterlinie zu handeln und sich innerhalb des Tages vollständig zu befreien, um eine flexible Trend-Tracking-Algorithmus-Handelsstrategie zu bilden. Im Vergleich zur Fixed-Grid-Strategie kann sie besser an Marktveränderungen angepasst werden.
Diese Strategie hat einige Vorteile, darunter die Kombination von RSI-Indikatoren, Trendbeurteilung, dynamische Grid-Anpassung, Break-out-Trading und vollständiger Tages-Platz. Dies ermöglicht es, Trends effektiv zu verfolgen und gleichzeitig Risiken zu kontrollieren. Die Strategie birgt jedoch auch einige potenzielle Risiken, die zu beachten sind, wie das Risiko von Stop-Losses bei schwankenden Trends, das Risiko von Übernachtungsflügen usw. Diese Risiken können durch Parameteroptimierung und Kombination mit anderen Signalen sowie Risikomanagementmaßnahmen verringert werden.
Die Strategie hat auch viele Optimierungsmöglichkeiten, die durch die Einführung von mehr Kennzahlen, Optimierungsparametern für maschinelles Lernen und einer grafischen Rückmeldplattform zu einer stabileren und ertragreicheren algorithmischen Handelsstrategie optimiert werden können. Insgesamt bietet die Strategie einen zuverlässigen und einfach zu bedienenden Trend-Tracking-Algorithmus für den Quantifizierungshandel.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin
//@version=5
// strategy("RSI Box Strategy (pseudo-Grid Bot)", overlay=true, initial_capital = 10000,
// default_qty_type = strategy.percent_of_equity, default_qty_value = 1, pyramiding = 33, commission_value=0.10)
src = input.source(close,"Source")
rsiLength = input.int(14,"RSI Length")
oblvl = input.int(70,"Overbought Level")
oslvl = input.int(30,"Oversold Level")
useShorts = input.bool(false,"Use Shorts",inline="B")
showGrid = input.bool(false,"Show Grid",inline="B")
rsi = ta.rsi(src,rsiLength)
rsi_crossdn = ta.crossunder(rsi,oblvl)
rsi_crossup = ta.crossover(rsi,oslvl)
highest = ta.vwma(ta.highest(src,rsiLength),rsiLength)
lowest = ta.vwma(ta.lowest(src,rsiLength), rsiLength)
gridTop = ta.valuewhen(rsi_crossdn,highest,0)
gridBottom = ta.valuewhen(rsi_crossup,lowest,0)
gridMiddle = math.avg(gridTop,gridBottom)
gridMidTop = math.avg(gridMiddle,gridTop)
gridMidBottom = math.avg(gridMiddle,gridBottom)
diff1 = math.abs(src - gridTop)
diff2 = math.abs(src - gridBottom)
diff3 = math.abs(src - gridMiddle)
diff4 = math.abs(src - gridMidTop)
diff5 = math.abs(src - gridMidBottom)
minDiff = math.min(diff1, diff2, diff3, diff4, diff5)
// Determine which line is the closest
float closestLine = na
if minDiff == diff1
closestLine := gridTop
else if minDiff == diff2
closestLine := gridBottom
else if minDiff == diff3
closestLine := gridMiddle
else if minDiff == diff4
closestLine := gridMidTop
else if minDiff == diff5
closestLine := gridMidBottom
buyCrosses = ta.crossover(src,gridTop) or ta.crossover(src,gridBottom) or ta.crossover(src,gridMiddle) or ta.crossover(src,gridMidTop) or ta.crossover(src,gridMidBottom)
sellCrosses= ta.crossunder(src,gridTop) or ta.crossunder(src,gridBottom) or ta.crossunder(src,gridMiddle) or ta.crossunder(src,gridMidTop) or ta.crossunder(src,gridMidBottom)
condition_bull = buyCrosses
condition_bear = sellCrosses
var float bull_status_line = na
var float bear_status_line = na
var float bull_buy_line = na
var float bear_sell_line = na
if condition_bull
bull_status_line := closestLine
if condition_bear
bear_status_line := closestLine
if bull_status_line == gridBottom
bull_buy_line := gridMidBottom
if bull_status_line == gridMidBottom
bull_buy_line := gridMiddle
if bull_status_line == gridMiddle
bull_buy_line := gridMidTop
if bull_status_line == gridMidTop
bull_buy_line := gridTop
if bear_status_line == gridTop
bear_sell_line := gridMidTop
if bear_status_line == gridMidTop
bear_sell_line := gridMiddle
if bear_status_line == gridMiddle
bear_sell_line := gridMidBottom
if bear_status_line == gridMidBottom
bear_sell_line := gridBottom
l = ta.crossover(src,bull_buy_line)
s = ta.crossunder(src,bear_sell_line)
if l
strategy.entry("Long",strategy.long)
if s
strategy.close("Long")
if useShorts
strategy.entry("Short",strategy.short)
// Plotting
in_buy = ta.barssince(l) < ta.barssince(s)
u=plot(bull_buy_line,color=na,title="Buy Plot")
d=plot(bear_sell_line,color=na,title="Sell Plot")
plot(not showGrid?na:gridBottom,color=color.new(color.white,75),title="Grid Line -2")
plot(not showGrid?na:gridMidBottom,color=color.new(color.white,75),title="Grid Line -1")
plot(not showGrid?na:gridMiddle,color=color.new(color.white,75),title="Grid Line 0")
plot(not showGrid?na:gridMidTop,color=color.new(color.white,75),title="Grid Line 1")
plot(not showGrid?na:gridTop,color=color.new(color.white,75),title="Grid Line 2")
fill(u,d,color=in_buy ? color.new(color.lime,75) : color.new(color.red,75))