Vergleichsblöcke

Aufeinanderfolgende Blöcke in einer Strategie erstellen Quant X

In StrategyQuant X 131 haben wir zwei neue Vergleichsblöcke hinzugefügt. In diesem Artikel werden wir sie näher erläutern. Vergleichsblöcke sind Snippets, die wir im Algo-Assistenten oder Builder verwenden können und die dazu dienen, zwei Werte zu vergleichen. ( Links und Rechts )

Grundsätzlich wird mit Greater Count / Lower Count verglichen, wie viele Takte die Bedingung erfüllt ist.

  • Greater Count prüft die Bedingung, dass X größer oder gleich Y ist, für die angegebene Anzahl von Takten.
  • Lower Count prüft die Bedingung, dass X kleiner oder gleich Y ist, für die angegebene Anzahl von Takten.

Vergleichsblöcke werden auch im Builder verwendet, wo die genetische Maschine nach neuen Kombinationen von Blöcken sucht, um eine profitable algorithmische Strategie zu entwickeln.

Wir wollen nun anhand von zwei Beispielen zeigen, wie man diese Blöcke erstellt und testet:

 

RSI Konsekutivregeln

Im ersten Beispiel zeigen wir, wie man einen benutzerdefinierten Block erstellt - RSI ( 14 ) ist größer als ein Wert von 50 X aufeinanderfolgende Bars in einer Reihe. Im ersten Schritt wählen wir den Vergleichsblock Ist bei X-Balken größer.

Wir können mehrere parametrisierbare Einstellungen für einen bestimmten Block wählen

 

Wir können die Bars  - eine Anzahl von Stäben, die die Bedingung erfüllen müssen, und die Gleiche Werte zulassen Option. Gleiche Werte zulassen ist in Situationen nützlich, in denen die beiden Werte gleich sind. Zum Beispiel, wenn der RSI zwei aufeinanderfolgende Balken mit demselben Wert aufweist.

Nachdem wir einen bestimmten Vergleichsblock ausgewählt haben, bietet uns SQX die eigentliche Einstellung des Blocks an. Wir setzen den linken Indikator und den rechten Indikator.

In unserem Fall werden wir den RSI ( 14 ) und den Wert 50 vergleichen.

Es ist ratsam, den gegebenen benutzerdefinierten Block ebenfalls zu parametrisieren. Wir wählen die Anzahl der Bars, während derer die gegebene Bedingung gültig ist, die RSI-Periode und den Wert, über dem der RSI für X Bars liegen muss.

In unserem Fall erstellen wir eine Spiegelbedingung, die für X-Balken niedriger ist, indem wir in den Blockparametern nur den variablen RSI-Wert geringfügig ändern, den wir in das Intervall 20-50 ändern.

 

Aufeinanderfolgende UP/Down Bars

Lassen Sie uns nun ein Beispiel für die Erstellung aufeinanderfolgender Aufwärts-/Abwärts-Balken zeigen. Definieren Sie den UP-Balken, wenn der Schlusskurs größer ist als der Eröffnungskurs und umgekehrt.

Ähnlich wie in den obigen Beispielen ist Greater Count mit der Bedingung Close > Open zu verwenden.

Für den gegenüberliegenden Block verwenden wir Lower Count, um einen Block zu erstellen, dessen Körper die folgende Bedingung Close < Open enthält

 

Erkennung falscher Ausbrüche

Eine andere, etwas kompliziertere Methode ist die Verwendung von Greater/Lower Count, um falsche Ausbrüche zu erkennen. Beginnen wir mit der Definition des Ausbruchs aus dem Wochenhoch.

Ein Ausbruch aus dem Wochenhoch kann einfach als eine Bedingung definiert werden, bei der das letzte Hoch gleich dem aktuellen Wochenhoch ist.

 

Lassen Sie uns an dieser Stelle überlegen, wann ein falscher Ausbruch auftritt. Er tritt auf, wenn der Kurs ein neues Hoch erreicht, dann aber stagniert und sich nicht bewegt. Dieser Zustand kann sich über mehrere Takte erstrecken. Um diese Situation zu lösen, können wir an dieser Stelle festlegen, dass solche Situationen nur durch die Parametrisierung des Schicht Parameter.

Durch Hinzufügen der Bars vor Parameter sind wir in der Lage, Situationen zu erfassen, in denen die wöchentlichen High Bars Ago Bars in der Vergangenheit durchbrochen wurden.

Um zu erkennen, dass der Kurs unter dem aktuellen Wochenhoch liegt und auch so viele X Bars Ago, um den wöchentlichen Ausbruch zu brechen, fügen wir den Vergleichsblock Lower Count hinzu.

Ein auf diese Weise vorbereiteter Block ermöglicht es uns, diese Situationen effizient zu filtern. Es gibt ein kleines Problem mit zwei identischen Parametern Bars Ago und Bars Ago Int. Normalerweise handelt es sich um dieselben Variablen, aber sie müssen getrennt deklariert werden. Dies ist für die korrekte Funktionalität der anderen Funktionen in SQX notwendig. Wie auch immer, wir haben zwei Möglichkeiten, dieses Problem zu lösen.

  1. Wir lassen die SQX-Engine selbst eine Lösung finden, aber das kostet mehr Zeit bei der Strategieerstellung
  2. Wir helfen SQX durch das Setzen von Parametersätzen in der Builder-Konfiguration

 

In der Abbildung unten sehen wir einen benutzerdefinierten Block HighWeekBreakout mit definierten Parametersätzen und einer erhöhten Gewichtung dieser Einstellungen, die sicherstellen, dass der Builder die von uns festgelegten Parametersätze bevorzugt.

Für den gegenüberliegenden Block verwenden wir eine ähnliche Logik mit Low, Weekly Low und Greater Count.

Schlussfolgerung

Die oben genannten Verfahren können bei der Strategieentwicklung direkt im Algo Wizard oder im StrategyQuantX-Builder verwendet werden. Durch die Verwendung von benutzerdefinierten Blöcken können Sie die gewünschte Handelsstrategie besser ausrichten und die Freiheitsgrade reduzieren. Bei der Erstellung solcher Blöcke müssen Sie kreativ sein. Idealerweise kommen Sie auf ähnliche Ideen, indem Sie sich Charts ansehen und nach möglichen Szenarien suchen.

clonex / Ivan Hudec

Ivan Hudec – “Clonex” im Forum

Ich bin seit 15 Jahren als Trader tätig und arbeite seit 2014 mit StrategyQuant X. Derzeit mache ich drei Dinge: Ich entwickle automatisierte Strategien und teste sie unter realen Bedingungen, ich erweitere SQX selbst um benutzerdefinierte Indikatoren, Snippets und Python-Tools für maschinelles Lernen und quantitative Forschung, und ich helfe anderen Tradern, schneller ans Ziel zu kommen – ohne die jahrelangen, kostspieligen Fehler, die ich auf meinem Weg gemacht habe.
Die meisten Retail-Strategien sehen im Backtest großartig aus, versagen aber im Live-Handel. Bei meiner Arbeit geht es genau umgekehrt: um Strategien, die ehrlich, validiert und robust genug sind, um ihnen echtes Geld anzuvertrauen. Über diesen Prozess – das Gute, das Hässliche und das Überanpassen, über das niemand spricht – schreibe ich auf meiner Website algotrading.space.
Wenn Sie sich näher mit Validierung, der Entwicklung benutzerdefinierter SQX-Lösungen oder dem Aufbau eines echten Wettbewerbsvorteils durch Daten und Code befassen möchten, dann finden Sie hier alle Informationen dazu.  www.algotrading.space

0 Kommentare
Älteste
Neueste Meistbewertet

Lesen Sie weiter