tomatisch dabei helfen kann, jede Handelslogik im Strategiecode auszuführen sowie Positionen zu öffnen und zu schließen, Aufträge zurückzuziehen und andere Kauf- und Verkaufsvorgänge durchzuführen. Die konkreten Schritte zum Erstellen eines quantitativen Handelsroboters sind wie folgt: Erster Schritt ①: Klicken Sie auf der Kontrollzentrumseite auf „Roboter“, dann auf „Roboter erstellen“. Schritt ②: Geben Sie dem Roboter einen benutzerdefinierten Namen. Schritt 3: Klicken Sie auf das „+“-Zeichen, um eine Handelsplattform hinzuzufügen. Schritt 4: Klicken Sie auf „Roboter erstellen“
Abbildung 2-8 Schritte zum Erstellen eines Roboters
Im oben beschriebenen Prozess sind mit Ausnahme des ersten Schritts der Auswahl des realen Handels und der Simulation die nachfolgenden Schritte des Schreibens der Strategie und des Erstellens von Handelsrobotern einheitliche Schritte. Das gesamte quantitative Tool wurde konfiguriert, der Handelsroboter läuft bereits und führt Kauf- und Verkaufstransaktionen gemäß den spezifischen Bedingungen der Strategie durch. Die Konfiguration des quantitativen Handels erfolgt in drei Schritten: Fügen Sie eine Börse hinzu und geben Sie das Passwort für Ihr Futures-Konto ein; schreiben Sie eine Handelsstrategie; und erstellen Sie einen quantitativen Handelsroboter in Echtzeit. Ist es nicht einfach?
Obwohl quantitativer Handel in nur drei einfachen Schritten erreicht werden kann, werden Sie feststellen, dass das Hinzufügen von Börsen und das Erstellen quantitativer Handelsroboter einfach ist. Allerdings ist die Umsetzung einer tragfähigen Handelsstrategie nicht so einfach. Im nächsten Abschnitt lernen Sie die im quantitativen Handel häufig verwendeten APIs kennen, um Sie auf das Schreiben einer umsetzbaren Handelsstrategie vorzubereiten. Denn egal, welches quantitative Handelstool zum Einsatz kommt, es ist untrennbar mit der API-Schnittstelle verbunden, die eine wichtige Funktion zur Realisierung quantitativer Handelsstrategien darstellt.
Wenn es um Programmierung geht, kommen wir an API nicht vorbei. Was genau ist API für viele Nicht-IT-Leute? API ≈ Ich verstehe nicht. In diesem Abschnitt erklären wir im Klartext, was eine API ist, und stellen die in quantitativen Erfindertools üblicherweise verwendeten APIs vor.
Wenn Sie online suchen, erhalten Sie die folgenden Ergebnisse: API (Application Programming Interface) ist eine Reihe vordefinierter Funktionen, die Anwendungen und Entwicklern die Möglichkeit bieten sollen, auf eine Reihe von Routinen basierend auf bestimmter Software oder Hardware zuzugreifen, ohne auf den Quellcode zugreifen oder die Details des internen Arbeitsmechanismus verstehen zu müssen. Um es einfacher auszudrücken: Was genau ist eine API?
Tatsächlich gibt es in unserem täglichen Leben viele Szenarien, die APIs ähneln. Wenn Sie beispielsweise in ein Restaurant gehen, um zu essen, müssen Sie nur einen Blick auf die Speisekarte werfen und das Essen bestellen, ohne wissen zu müssen, wie es zubereitet wird. Die Gerichtnamen im Menü sind die spezifischen APIs und das Menü ist die API-Dokumentation.
Wenn Sie heute den Eröffnungspreis des aktuellen Produkts erfahren müssen, müssen Sie nicht wissen, wie Sie ihn bekommen. Sie müssen nur „OPEN“ in den Code-Editor schreiben und es direkt verwenden. „OPEN“ ist die API des Eröffnungspreises in der Sprache Mai.
Bevor wir die Mai Language API erklären, werfen wir einen Blick auf die allgemeine Codestruktur und ihre Funktionskomponenten. Dies wird Ihnen helfen, die API besser zu verstehen. Siehe das folgende Beispiel:
Abbildung 2-9 Beispiel für die Sprache Mai
Wie im obigen Code gezeigt: Das violette AA ist eine Variable. Eine Variable ist eine Menge, die sich ändern kann, genau wie die Algebra, die wir in der Mittelschule gelernt haben. Wenn AA der Eröffnungskurs zugeordnet wird, dann ist AA der Eröffnungskurs; wenn AA der höchste Kurs zugeordnet wird, dann ist AA der höchste Kurs. Natürlich ist AA nur ein benutzerdefinierter Name, Sie können es auch als BB definieren.
Das grüne „:=“ steht für Zuweisung, d. h. der Wert auf der rechten Seite des „:=“ wird der Variablen auf der linken Seite zugewiesen.
Der orangefarbene Code ist die Mai-Sprach-API des Inventor Quantitative Tool. Beachten Sie, dass OPEN in der ersten Zeile die API zum Abrufen des Schlusskurses ist, die direkt verwendet werden kann; MA in der zweiten Zeile ist die API zum Abrufen des gleitenden Durchschnitts, für die zwei Parameter übergeben werden müssen, d. h. Sie müssen dem Inventor Quantitative Tool mitteilen, welche Art von gleitendem Durchschnitt Sie benötigen: Wenn Sie einen gleitenden Durchschnitt über 50 Perioden erhalten möchten, der auf Grundlage des Eröffnungskurses berechnet wird, können Sie ihn wie folgt schreiben: MA(OPEN,50); beachten Sie, dass zwischen den beiden Parametern ein englisches Komma steht.
Das gelbe „//“ ist ein Kommentarsymbol und die blauen chinesischen Schriftzeichen dahinter sind der Kommentarinhalt. Diese sind für Sie zum Selbstlesen gedacht und dienen dazu, die Bedeutung der Codezeile anzugeben. Das Programm verarbeitet während der Ausführung keine Kommentare. Beachten Sie, dass vor dem Kommentarzeichen jede Codezeile ein englisches Semikolon als Zeilenende haben muss.
Mit dem grundlegenden Verständnis der Codestruktur stellen wir Ihnen im Folgenden einige häufig verwendete Sprachen vor, die wir in Zukunft auch häufig verwenden werden. OPEN——Erhalten Sie den Eröffnungspreis der neuesten K-Linie Beispiel: AA: =OPEN; Holen Sie sich den Eröffnungspreis der letzten K-Linie und weisen Sie das Ergebnis AA zu
HOCH——Holen Sie sich den höchsten Preis der neuesten K-Linie Beispiel: AA: =HIGH; Holen Sie sich den höchsten Preis der letzten K-Linie und weisen Sie das Ergebnis AA zu
LOW——Holen Sie sich den niedrigsten Preis der neuesten K-Linie Beispiel: AA: =LOW; Holen Sie sich den niedrigsten Preis der letzten K-Linie und weisen Sie das Ergebnis AA zu
CLOSE——Holen Sie sich den letzten Schlusskurs der K-Linie. Wenn die Intraday-K-Linie noch nicht beendet ist, holen Sie sich den neuesten Kurs Beispiel: AA: =CLOSE; Holen Sie sich den Schlusskurs der letzten K-Linie und weisen Sie das Ergebnis AA zu.
VOL——Holen Sie sich das neueste K-Line-Transaktionsvolumen Beispiel: AA: =VOL; Holen Sie sich das neueste K-Line-Transaktionsvolumen und weisen Sie das Ergebnis AA zu
REF(X,N) – Referenziert den Wert von X vor N Zyklen. Beispiel: REF(CLOSE,1); Holen Sie sich den Eröffnungspreis der vorherigen K-Linie
MA (X, N) – Finden Sie den einfachen gleitenden Durchschnitt von X in N Perioden Beispiel: MA(CLOSE,10); //Erhalte den gleitenden Durchschnitt der letzten 10 Perioden der K-Linie
CROSSUP (A, B) - Wenn A B von unten nach oben kreuzt, wird 1 (Ja) zurückgegeben, andernfalls 0 (Nein). Beispiel: CROSSUP(CLOSE,MA(C,10)) // Der Schlusskurs überschreitet den 10-Perioden-Durchschnittskurs
CROSSDOWN (A, B) - Wenn A B von oben kreuzt, wird 1 (Ja) zurückgegeben, andernfalls 0 (Nein). Beispiel: CROSSDOWN(CLOSE,MA(C,10)) // Der Schlusskurs unterschreitet den 10-Perioden-Durchschnittskurs
BK——Eröffnungsposition kaufen Beispiel: CLOSE>MA(CLOSE,5),BK; //Schlusskurs ist höher als der gleitende Durchschnitt der letzten 5 Perioden, Kaufposition
SP——Verkaufen, um Position zu schließen Beispiel: CLOSE
SK——Eröffnungsposition verkaufen Beispiel: CLOSE
BP – Kaufen zum Schließen Beispiel: CLOSE>MA(CLOSE,5),BP; //Schlusskurs ist höher als der gleitende Durchschnitt der letzten 5 Perioden, Position kaufen und schließen
BPK – Kaufen, um eine Position zu schließen, und kaufen, um eine Position zu eröffnen (Reverse Long) Beispiel: CLOSE>MA(CLOSE,5),BPK; // Der Schlusskurs liegt über dem gleitenden Durchschnitt der letzten 5 Perioden. Schließen Sie die Short-Position und kaufen Sie dann, um eine neue Position zu eröffnen.
SPK – Verkaufen, um eine Position zu schließen, und Verkaufen, um eine Position zu eröffnen (Leerverkauf) Beispiel: CLOSE
CLOSEOUT – Alle Positionen schließen, empfohlen für die Verwendung im Modell zur Positionserhöhung und -verringerung. Beispiel: CLOSEOUT; alle Positionen in alle Richtungen schließen.
Bevor wir die API der JavaScript-Sprache erklären, werfen wir einen Blick auf die allgemeine Codestruktur und ihre Funktionskomponenten. Dies wird Ihnen helfen, die API besser zu verstehen. Siehe das folgende Beispiel:
Abbildung 2-10 JavaScript-Codebeispiel
Wie im obigen Code gezeigt: Das Erstellen einer Variablen in der Sprache JavaScript wird häufig als „Deklarieren“ der Variable bezeichnet. Im roten Code verwenden wir das Schlüsselwort var, um eine Variable zu deklarieren, und der Variablenname lautet im orangefarbenen Code: „aa“.
In JavaScript wird das Gleichheitszeichen zum Zuweisen von Werten verwendet, d. h. der Wert auf der rechten Seite von “=” wird der Variablen auf der linken Seite zugewiesen. Der cyanfarbene Code „Exchange“ ist das Exchange-Objekt. Die Börse bezieht sich hier auf das von Ihnen festgelegte Futures-Unternehmen. Dies ist ein festes Format, was bedeutet, dass Sie beim Aufrufen der JavaScript-Sprach-API das Exchange-Objekt angeben müssen.
Der grüne Code ist die JavaScript-API. Wenn wir ihn aufrufen, rufen wir tatsächlich die Funktion im Austauschobjekt auf. Beachten Sie den Punkt nach dem blauen Code, der ebenfalls ein festes Format darstellt. Die Funktion hier ist die gleiche wie die Funktion, die wir in der Mittelschule gelernt haben. Wenn die Funktion keine Parameter erfordert, verwenden Sie leere Klammern, um dies anzuzeigen. Wenn die Funktion Parameter übergeben muss, schreiben Sie die Parameter in die Klammern.
Nachdem wir Ihnen anhand von Beispielen die grundlegende Struktur und Prinzipien des Codes näher gebracht haben, zeigen wir Ihnen nun einige APIs der JavaScript-Sprache, die Sie in Zukunft häufig verwenden werden. SetContractType(“Produktcode”) ——Legen Sie den Vertragstyp fest, d. h. welches Produkt Sie handeln möchten Beispiel: exchange.SetContractType(“rb1905”); //Setze den Transaktionstyp auf “Rebar 1905 Contract”
GetTicker – Tick-Daten abrufen Beispiel: exchange.GetTicker(); //Tick-Daten abrufen
GetRecords - K-Line-Daten abrufen Beispiel: exchange.GetRecords(); //K-Line-Daten abrufen
Kaufen Beispiel: exchange.Buy(5000, 1); //Kaufen Sie ein Lot für 5000 Yuan
Verkaufen——Kaufen Beispiel: exchange.Sell(5000, 1); //Verkaufe ein Lot für 5.000 Yuan
GetAccount——Kontoinformationen abrufen Beispiel: exchange.GetAccount(); //Kontoinformationen abrufen
GetPosition – Positionsinformationen abrufen Beispiel: exchange.GetPosition(); //Positionsinformationen abrufen
SetDirection——Legen Sie den Long- oder Short-Order-Typ fest Beispiel: exchange.SetDirection(“buy”); //Setzen Sie den Auftragstyp auf “Kaufen”, um eine Long-Position zu eröffnen exchange.SetDirection(“closebuy”); //Setzen Sie den Auftragstyp auf „Verkaufen“, um Long-Positionen zu schließen exchange.SetDirection(“sell”); //Setzen Sie den Auftragstyp auf „Verkaufen“, um eine Short-Position zu eröffnen exchange.SetDirection(“closesell”); //Setzen Sie den Auftragstyp auf Kaufen, um Short-Positionen zu schließen
Log - Ausgabe einer Meldung im Log Beispiel: Log(“hallo, welt”); // Gib “hallo welt” im Log aus
Schlafen - Unterbrechen Sie das Programm für eine gewisse Zeit Beispiel: Sleep(1000); //Pausiere das Programm für 1 Sekunde
Einige von Ihnen fragen sich vielleicht, wie man sich die vielen oben genannten APIs merken soll? Tatsächlich müssen Sie sich das alles nicht merken. Auf der offiziellen Website von Inventor Quant finden Sie eine ausführliche API-Dokumentation. Genau wie beim Nachschlagen in einem Wörterbuch: Wenn Sie es brauchen, schlagen Sie einfach nach. Lassen Sie sich nicht von den Codes und anderen Inhalten abschrecken, mit denen Sie zum ersten Mal vertraut sind. Wir wollen unsere eigenen Strategien mithilfe dieser Sprachen organisieren. Bitte denken Sie daran, dass Technologie nie die Schwelle zur Quantifizierung darstellt. Ob Sie eine gute Strategie haben, ist der Schlüssel dazu, ob Sie langfristig auf dem quantitativen Markt bestehen können.
Die oben genannten APIs sind die am häufigsten verwendeten APIs im quantitativen Handel. Sie umfassen im Wesentlichen: Daten abrufen, Daten berechnen, Kauf- und Verkaufsaufträge erteilen, was für die Handhabung einer einfachen quantitativen Handelsstrategie ausreicht. Wenn Sie eine komplexere Strategie schreiben möchten, müssen Sie natürlich auf die offizielle Website des Inventor Quantitative Tool gehen, um diese zu erhalten.
Programmieren ist wie das Zusammensetzen von Legosteinen, APIs sind wie die verschiedenen Teile der Steine und der Programmiervorgang besteht darin, die verschiedenen Legoteile zu einem kompletten Spielzeug zusammenzusetzen. Im nächsten Abschnitt zeige ich Ihnen, wie Sie mithilfe der Mai Language API eine vollständige quantitative Handelsstrategie zusammenstellen.
Nachdem Sie die vorherigen Abschnitte studiert haben, können Sie nun endlich mit dem Schreiben quantitativer Handelsstrategien beginnen. Dies ist für Sie der wichtigste Schritt auf dem Weg vom manuellen zum quantitativen Handel. Tatsächlich ist es gar nicht so mysteriös. Eine Strategie zu schreiben bedeutet nichts anderes, als Ihre Ideen in Code umzusetzen. In diesem Abschnitt wird eine quantitative Handelsstrategie von Grund auf implementiert und Sie werden mit der Erstellung von Strategien im Inventor Quantitative System vertraut gemacht.
Öffnen Sie zunächst die offizielle Website des Inventor Quantitative Tool und klicken Sie nacheinander auf „Strategiebibliothek“ und „Neue Strategie“. Beachten Sie, dass Sie vor dem Schreiben des Codes im Dropdown-Menü „Programmiersprache“ die Sprache Mai oder JavaScript auswählen müssen. Natürlich unterstützt die Plattform auch Python, C++ und visuelle Sprachen.
Im vorherigen Kapitel haben wir eine Strategie für den Preisdurchbruch durch den gleitenden Durchschnitt vorgestellt. Das heißt: Wenn der Preis höher ist als der Durchschnittspreis der letzten 10 Tage, kaufen; wenn der Preis niedriger ist als der Durchschnittspreis der letzten 10 Tage, verkaufen. Obwohl der Preis den Marktstatus direkt widerspiegeln kann, wird es jedoch viele falsche Durchbruchssignale geben. Daher müssen wir diese Strategie aktualisieren und verbessern.
Wählen Sie zunächst einen längeren gleitenden Durchschnitt aus, um die Trendrichtung zu bestimmen, der mindestens fast die Hälfte der falschen Durchbruchsignale herausgefiltert hat. Obwohl der lange gleitende Durchschnitt langsam ist, wird er stabiler sein; um dann die Erfolgsrate des Einstiegs weiter zu erhöhen, fügen Sie eine weitere Bedingung hinzu, dass dieser lange gleitende Durchschnitt mindestens nach oben geht; verwenden Sie schließlich die relative Positionsbeziehung von Preis, kurzfristigem gleitendem Durchschnitt und langfristigem gleitendem Durchschnitt, um eine vollständige Handelsstrategie zu bilden.
Mit den oben genannten strategischen Ideen und Gedanken können wir versuchen, die Strategielogik aufzubauen. Die Logik besteht hier nicht darin, von Ihnen zu verlangen, die Gesetze der Himmelsbewegung zu berechnen; so kompliziert ist das nicht. Es handelt sich lediglich um den verbalen Ausdruck früherer strategischer Ideen.
Eröffnung einer Long-Position: Wenn keine aktuelle Position vorhanden ist und der Schlusskurs höher ist als der kurzfristige gleitende Durchschnitt, und der Schlusskurs höher ist als der langfristige gleitende Durchschnitt, und der kurzfristige gleitende Durchschnitt höher ist als der langfristige gleitende Durchschnitt, und der langfristige gleitende Durchschnitt steigt.
Eröffnen Sie eine Short-Position: Wenn keine aktuelle Position vorhanden ist und der Schlusskurs unter dem kurzfristigen gleitenden Durchschnitt liegt, der Schlusskurs unter dem langfristigen gleitenden Durchschnitt liegt, der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt liegt und der langfristige gleitende Durchschnitt fällt.
Schließen einer Long-Position: Wenn Sie derzeit eine Long-Order halten und der Schlusskurs unter dem langfristigen gleitenden Durchschnitt liegt, oder der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt liegt, oder der langfristige gleitende Durchschnitt sinkt.
Schließen von Short-Positionen: Wenn Sie derzeit eine Short-Order halten und der Schlusskurs höher ist als der langfristige gleitende Durchschnitt oder der kurzfristige gleitende Durchschnitt höher ist als der langfristige gleitende Durchschnitt oder der langfristige gleitende Durchschnitt steigt.
Das Obige ist der logische Teil der gesamten quantitativen Handelsstrategie. Wenn wir die Textversion der Strategielogik in Code umwandeln, umfasst sie drei Schritte: Erfassen der Marktbedingungen, Berechnen von Indikatoren und Platzieren von Kauf- und Verkaufsaufträgen.
Der erste Schritt besteht darin, die Marktinformationen zu erhalten. Bei dieser quantitativen Handelsstrategie müssen wir nur den Schlusskurs ermitteln. In der Mai-Sprache lautet die API zum Ermitteln des Schlusskurses: CLOSE. Das heißt, Sie müssen nur CLOSE in den Code schreiben, um den Schlusskurs der letzten K-Linie zu erhalten.
Dann kommen die Berechnungsindikatoren. In dieser quantitativen Handelsstrategie verwenden wir insgesamt 2 Technologien, nämlich: kurzfristigen gleitenden Durchschnitt und langfristigen gleitenden Durchschnitt. Wir gehen davon aus, dass der kurzfristige gleitende Durchschnitt ein gleitender Durchschnitt über 10 Perioden und der langfristige gleitende Durchschnitt ein gleitender Durchschnitt über 50 Perioden ist. Wie verwenden wir also Code, um den gleitenden Durchschnitt über 10 Perioden und den gleitenden Durchschnitt über 50 Perioden darzustellen? Bitte beachten Sie die folgende Abbildung:
Abbildung 2-11 Mai-Sprachstrategiecode
Beim manuellen Handel können wir auf einen Blick erkennen, ob der gleitende Durchschnitt der 50 Perioden steigt oder fällt, aber wie drücken wir dies im Code aus? Denken Sie sorgfältig darüber nach, um zu beurteilen, ob der gleitende Durchschnitt steigt. Ist es nicht so, dass der 50-Perioden-Durchschnittswert der aktuellen K-Linie größer ist als der 50-Perioden-Durchschnittswert der vorherigen K-Linie, und ist der 50-Perioden-Durchschnittswert der vorherigen K-Linie größer als der 50-Perioden-Durchschnittswert der vorherigen K-Linie? Das Gegenteil ist der Fall, was bedeutet, dass der gleitende Durchschnitt fällt. Im Code sollte es also so aussehen:
Abbildung 2-12 Code zur Beurteilung des gleitenden Durchschnitts in der Mai-Sprache
Beachten Sie den rosaroten Code „AND“ in den Zeilen 8 und 9 der obigen Abbildung. In der Mai-Sprache bedeutet er „und“. Beispielsweise wird die 9. Zeile wie folgt ins Chinesische übersetzt: Wenn der 50-Perioden-gleitende Durchschnitt der aktuellen K-Linie größer ist als der 50-Perioden-gleitende Durchschnitt der vorherigen K-Linie und der 50-Perioden-gleitende Durchschnitt der vorherigen K-Linie größer ist als der 50-Perioden-gleitende Durchschnitt der vorherigen K-Linie, dann wird der Wert als „Ja“ berechnet; andernfalls wird der Wert als „Nein“ berechnet und das Ergebnis „MA50_ISUP“ zugewiesen.
Der letzte Schritt besteht darin, Kauf- und Verkaufsaufträge zu erteilen. Sie müssen nur die Auftrags-API des quantitativen Tools des Erfinders nach dem Kauf- und Verkaufslogikcode aufrufen, um die Kauf- und Verkaufsvorgänge auszuführen. Bitte beachten Sie die folgende Abbildung:
Abbildung 2-13 Kauf- und Verkaufstransaktionscode in der Sprache Mai
Beachten Sie den rosaroten Code „OR“ in den Zeilen 13 und 14 im obigen Bild. In der Mai-Sprache bedeutet er „oder“. Beispielsweise wird Zeile 13 ins Chinesische wie folgt übersetzt: Wenn der Schlusskurs der aktuellen K-Linie unter dem 50-Perioden-Gleitenden Durchschnitt der aktuellen K-Linie liegt oder der 10-Perioden-Gleitende Durchschnitt der aktuellen K-Linie unter dem 50-Perioden-Gleitenden Durchschnitt der aktuellen K-Linie liegt, wird der Wert als „Ja“ berechnet und sofort eine Bestellung aufgegeben; andernfalls wird er als „Nein“ berechnet und nichts getan.
Bitte beachten: „UND“ und „ODER“ sind logische Operatoren in der Mai-Sprache: „UND“ bedeutet, dass, wenn alle Bedingungen „ja“ sind, die letzte Bedingung „ja“ ist; „ODER“ bedeutet, dass die letzte Bedingung „Ja“ ist, sofern eine der Bedingungen „Ja“ lautet.
Das Obige beschreibt den gesamten Prozess des Schreibens von Handelsstrategien in der Sprache Mai mit dem Inventor Quantitative Tool. Insgesamt sind es nur drei Schritte: von der Strategieidee über die Konzeption der Strategie und die Beschreibung der Logik in Worten bis hin zur Implementierung der vollständigen Handelsstrategie mit Code. Obwohl dies eine einfache Strategie ist, ähnelt der spezifische Implementierungsprozess dem einer komplexeren Strategie, mit der Ausnahme, dass der Algorithmus und die Datenstruktur der Strategie unterschiedlich sind. Solange Sie den quantitativen Strategieprozess in diesem Abschnitt verstehen und beherrschen, können Sie die Mai-Sprache verwenden, um bei Bedarf quantitative Strategieforschung zu betreiben und die quantitativen Tools des Erfinders zu üben.
Bei der Entwicklung quantitativer Handelsstrategien sind Programmiersprachen wie Waffen und Ausrüstung. Eine gute Programmiersprache kann Ihnen helfen, mit halbem Aufwand das doppelte Ergebnis zu erzielen. Beispielsweise gibt es in der quantitativen Handelsbranche mehr als ein Dutzend am häufigsten verwendete Sprachen, darunter Python, C++, Java, C#, EasyLanguage, Mai Language usw. Welche Waffe sollte ich wählen, um auf das Schlachtfeld zu ziehen? Im nächsten Abschnitt stellen wir diese gängigen Programmiersprachen und die Eigenschaften der einzelnen Programmiersprachen vor.
In Kapitel 1 und Kapitel 2 haben wir die Grundlagen des quantitativen Handels und den Einsatz der quantitativen Werkzeuge des Erfinders kennengelernt. In diesem Kapitel werden wir die Handelsstrategie im Detail umsetzen. Wenn Sie Ihre Arbeit gut machen möchten, müssen Sie zuerst Ihre Werkzeuge schärfen. Um Handelsstrategien umzusetzen, müssen Sie zunächst eine Programmiersprache beherrschen. In diesem Abschnitt werden zunächst die wichtigsten Programmiersprachen im quantitativen Handel sowie die Merkmale der einzelnen Programmiersprachen vorgestellt.
Bevor Sie eine Programmiersprache lernen, müssen Sie zunächst das Konzept „Programmiersprache“ verstehen. Eine Programmiersprache ist eine Sprache, die sowohl Menschen als auch Computer verstehen können. Es handelt sich um einen standardisierten Kommunikationscode. Der Zweck einer Programmiersprache besteht darin, Computer mithilfe der menschlichen Sprache zu steuern und ihnen mitzuteilen, was wir tun möchten. Computer können Anweisungen gemäß Programmiersprachen ausführen, und wir können auch Codes schreiben, um Computern Anweisungen zu erteilen.
So wie unsere Eltern uns in jungen Jahren das Sprechen beigebracht haben, haben sie uns auch beigebracht, die Worte anderer zu verstehen. Nach einer langen Zeit der Beeinflussung und des Selbststudiums lernten wir, ohne es zu merken, sprechen und konnten verstehen, was andere Kinder sagten. Es gibt viele Sprachen, darunter Chinesisch, Englisch, Französisch usw. Zum Beispiel: Chinesisch: Hallo Welt Englisch: Hallo Welt Französisch: Bonjour tout le monde
Wenn Sie eine Programmiersprache verwenden, um „Hallo Welt“ auf einem Computerbildschirm anzuzeigen, würde dies folgendermaßen aussehen: C-Sprache: puts(“Hallo Welt”); Java-Sprache: System.out.println(“Hallo Welt”); Python-Sprache: print(“Hallo Welt”) Wir können sehen, dass Computersprachen ihre eigenen spezifischen Regeln haben und es viele Sprachen gibt. Diese Sprachregeln sind die Programmiersprachenklassifikationen, die wir Ihnen heute erklären müssen. In jeder Klassifikation müssen wir uns nur die grundlegendsten und am häufigsten verwendeten Regeln merken, und wir können diese Programmiersprachen verwenden, um mit Computern zu kommunizieren und Computer entsprechende Strategien gemäß unseren Anweisungen ausführen zu lassen.
Um Ihnen die Referenz und den Vergleich zu erleichtern und die für Sie geeignete Programmiersprache für den quantitativen Handel auszuwählen, klassifizieren wir die sechs am häufigsten verwendeten Programmiersprachen, nämlich Python, Matlab/R, C++, Java/C#, EasyLanguage und visuelle Sprache (wie unten gezeigt).
Abbildung 3-1 Auswertung der Programmiersprache
Wir haben sie anhand ihres Funktionsumfangs, ihrer Laufgeschwindigkeit, ihrer Skalierbarkeit und ihres Lernschwierigkeitsgrades bewertet. Die Bewertung liegt zwischen 1 und 5. Beispielsweise bedeutet eine Bewertung von 5 hinsichtlich des Funktionsumfangs, dass die Funktion leistungsstark ist, und eine Bewertung von 1 bedeutet, dass die Funktion weniger leistungsstark ist. (Wie oben gezeigt) Visuelle Sprache und EasyLanguage sind leicht zu erlernen und eignen sich sehr gut für Anfänger; Python ist leistungsstark und verfügt über starke Erweiterungsmöglichkeiten, sodass es sich für die Entwicklung komplexerer Handelsstrategien eignet; C++ hat eine schnellere Handelsgeschwindigkeit und eignet sich besser für Hochfrequenzhändler.
Die Bewertung der einzelnen Programmiersprachen zielt allerdings vor allem auf deren Anwendung im Bereich des quantitativen Handels ab und enthält persönliche, subjektive Elemente. Gerne können Sie in den Kommentaren auch Kritik äußern oder Ihre Ansichten zur Diskussion stellen. Als Nächstes werden wir beginnen, diese Programmiersprachen nacheinander vorzustellen.
Visuelle Programmierung hat eine lange Geschichte und ist nichts Neues. Dieses mit verschiedenen Steuermodulen ausgestattete Programmierkonzept nach dem Motto „What you see is what you get“ kann Codelogik erstellen und Handelsstrategien ganz einfach per Drag & Drop entwerfen. Der Prozess ähnelt sehr dem Bauen von Bausteinen.
Abbildung 3-2 Visuelle Programmiersprachenschnittstelle
Wie oben gezeigt, kann dasselbe Programm mit nur wenigen Codezeilen in der visuellen Programmierung der Inventor Quantitative Trading Platform abgeschlossen werden. Dadurch wird die Hemmschwelle zum Programmieren deutlich gesenkt, was insbesondere für Händler ohne Programmierkenntnisse eine tolle Bedienerfahrung darstellt.
Da die zugrunde liegende Implementierungsstrategie dieser visuellen Sprache in C++ konvertiert wird, hat sie kaum Auswirkungen auf die Ausführungsgeschwindigkeit des Programms. Allerdings sind die Funktionalität und Skalierbarkeit relativ schwach und es ist nicht möglich, übermäßig komplexe oder anspruchsvolle Handelsstrategien zu entwickeln.
Bei der sogenannten EasyLanguage handelt es sich um eine Programmiersprache, die nur in einigen kommerziellen quantitativen Handelsprogrammen zum Einsatz kommt. Obwohl diese Sprachen auch über einige objektorientierte Funktionen verfügen, basieren ihre Anwendungen hauptsächlich auf Skripten. Auch syntaktisch ist es unserer natürlichen Sprache sehr ähnlich. Für Anfänger im quantitativen Handel ist EasyLanguage als Einstiegspunkt die bessere Wahl. Beispiel: die Mai-Sprache in der quantitativen Handelsplattform des Erfinders.
Diese Skriptsprache kann problemlos Strategie-Backtests und realen Handel in ihrer spezifischen Software durchführen, ist jedoch häufig in Bezug auf die Skalierbarkeit eingeschränkt. Beispielsweise können Strategieentwickler keine externen APIs aufrufen. Darüber hinaus läuft diese Skriptsprache hinsichtlich der Ausführungsgeschwindigkeit auf ihrer eigenen virtuellen Maschine und ihre Leistungsoptimierung ist nicht so gut wie bei Java/C#, sodass sie langsamer ist.
Auf Stackoverflow ist die Anzahl der Besuche der Mainstream-Programmiersprachen in den letzten Jahren weitgehend unverändert geblieben, nur Python weist einen Aufwärtstrend auf. Python kann für die Website-Entwicklung, maschinelles Lernen, Deep Learning, Datenanalyse usw. verwendet werden. Aufgrund seiner Flexibilität und Offenheit ist es die am weitesten verbreitete Sprache geworden. Dasselbe gilt für den Bereich quantitativer Investitionen. Derzeit basieren die meisten inländischen quantitativen Plattformen auf Python.
Die grundlegenden Datenstrukturen, Listen und Wörterbücher von Python sind sehr leistungsfähig und können grundsätzlich die Anforderungen der Datendarstellung erfüllen. Wenn Sie eine schnellere und umfassendere Datenstruktur benötigen, empfiehlt sich die Verwendung von NumPy und SciPy. Diese beiden Bibliotheken gelten grundsätzlich als Standardbibliotheken für wissenschaftliches Rechnen mit Python.
Für das Financial Engineering ist Pandas eine gezieltere Bibliothek, die über zwei Datenstrukturen, Series und DataFrame, verfügt und sich sehr gut für die Verarbeitung von Zeitreihen eignet.
In Bezug auf die Geschwindigkeit liegt Python im Mittelfeld, langsamer als C++ und schneller als EasyLanguage, hauptsächlich weil Python eine dynamische Sprache ist und seine Geschwindigkeit bei der Ausführung in reinem Python durchschnittlich ist. Sie können jedoch Cython verwenden, um einige Funktionen statisch zu optimieren, um die Geschwindigkeit von C++ anzunähern.
Als Verbindungssprache ist Python die unangefochtene Nummer eins in Sachen Erweiterungsleistung. Neben der Möglichkeit, sich erweiterbar mit anderen Sprachen zu verbinden, ist die Erweiterungs-API auch auf eine sehr einfache Verwendung ausgelegt. Was den Lernschwierigkeitsgrad angeht, verfügt Python über eine einfache Syntax, gut lesbaren Code und ist leicht zu erlernen.
Als nächstes kommen Matlab und R. Diese beiden Sprachen werden hauptsächlich zur Datenanalyse verwendet. Die Autoren der Sprachen haben viele syntaktische Designs für wissenschaftliche Operationen erstellt. Ihre Besonderheit besteht darin, dass sie quantitative Handelsoperationen auf natürliche Weise unterstützen. Allerdings ist sein Anwendungsbereich relativ begrenzt und es wird im Allgemeinen für die Datenanalyse und das Strategie-Backtesting verwendet. Für die Entwicklung von Handelssystemen und Strategiealgorithmen sind die Benutzerfreundlichkeit und Stabilität relativ schlecht.
Darüber hinaus sind ihre Ausführungsgeschwindigkeit und Skalierbarkeit relativ gering, da Matlab und R auf virtuellen Maschinen mit unterschiedlichen Sprachen ausgeführt werden. In Bezug auf die Leistung sind ihre virtuellen Maschinen viel schlechter als Java und C#. Da ihre Syntax jedoch eher mathematischen Ausdrücken ähnelt, sind sie relativ leichter zu erlernen.
C++ ist eine universelle Programmiersprache, die mehrere Programmiermodelle unterstützt, etwa prozedurale Programmierung, Datenabstraktion, objektorientierte Programmierung, generische Programmierung und Entwurfsmuster. Mit C++ können Sie alle gewünschten Funktionen implementieren, der größte Nachteil einer so leistungsstarken Sprache besteht jedoch darin, dass sie sehr schwer zu erlernen ist und beispielsweise Vorlagen, Zeiger, Speicherlecks usw. aufweist.
Derzeit ist C++ immer noch die bevorzugte Programmiersprache für den Handel mit großen Mengen und hoher Frequenz. Der Grund ist einfach. Da die Eigenschaften der Sprache C++ für den zugrunde liegenden Computer leichter zugänglich sind, ist sie das effektivste Werkzeug für die Entwicklung leistungsstarker Backtesting- und Ausführungssysteme, die große Datenmengen verarbeiten.
Java/C# sind beides statische Sprachen, die auf virtuellen Maschinen ausgeführt werden. Im Vergleich zu C++ gibt es keinen Array-Out-of-Bounds-Fehler, keinen Coredump, die ausgelösten Ausnahmen können den Speicherort des Fehlercodes genau lokalisieren, es verfügt über einen integrierten Garbage-Collection-Mechanismus, man muss sich keine Sorgen über Speicherlecks usw. machen. Daher sind sie auch im Hinblick auf den Schwierigkeitsgrad des Erlernens der Syntax einfacher als C++. Da ihre virtuellen Maschinen alle über eine eigene JIT-Funktion zur Laufzeitkompilierung verfügen, ist ihre Geschwindigkeit in puncto Ausführungsgeschwindigkeit nur der von C++ unterlegen.
Allerdings ist es hinsichtlich der Funktionalität nicht möglich, das zugrundeliegende Handelssystem wie bei C++ zu optimieren. In Bezug auf die Erweiterungsleistung ist es schwächer als C++, da die Erweiterung über die Brücke von C erfolgen muss und diese beiden Sprachen selbst auf virtuellen Maschinen ausgeführt werden. Beim Erweitern von Funktionsmodulen muss daher eine zusätzliche Wandschicht überquert werden, um dies zu erreichen.
Andererseits ist die quantitative Programmiersprache nicht wichtig, wichtig ist die Idee. Es ist absolut kein Problem, die quantitative Mai-Sprache und die Visualisierungssprache des Erfinders als Sprungbrett für den quantitativen Einstieg zu verwenden. Um sich nach dem Einstieg zu verbessern, müssen Sie in Kombination mit unterschiedlichen Marktbedingungen ständig versuchen, zu erkunden. Man kann sagen, dass Ideen den Ausweg bestimmen und Visionen den Bereich bestimmen.
„Entwerfen Sie Ihre Strategie, handeln Sie Ihre Ideen.“ Aus dieser Perspektive besteht der Kern des quantitativen Handels immer noch darin, Ideen zu handeln. Als quantitativer Händler müssen Sie nicht nur die grundlegende Syntax und Funktionen der Strategieschreibplattform beherrschen, sondern auch Handelskonzepte im tatsächlichen Einsatz erleben. Die Quantifizierung ist lediglich ein Werkzeug und Träger zur Abbildung verschiedener Handelskonzepte.
Ich glaube, dass Sie mit der obigen Einführung in Programmiersprachen wissen müssen, wie Sie wählen sollen. In den nächsten Kapiteln werden wir lernen, quantitative Handelsstrategien gezielt entsprechend der Klassifizierung der Programmiersprachen zu entwickeln.
Was ist Mai-Sprache? Die sogenannte Mai-Sprache ist ein Satz programmierter Funktionsbibliotheken, die aus frühen technischen Aktienindikatoren erweitert wurden. Die Algorithmen sind in Funktionen gekapselt und Benutzer müssen die Funktionen nur zeilenweise aufrufen, als würden sie mit Bausteinen spielen, um die Strategielogik zu implementieren.
Es verwendet den Konstruktionsmodus „kleine Syntax, große Funktion“, was die Schreibeffizienz erheblich verbessert. Strategien, die in anderen Sprachen mehr als 100 Sätze erfordern, können in der Mai-Sprache im Allgemeinen in nur einem Dutzend Sätzen geschrieben werden. In Verbindung mit der Finanzstatistik-Funktionsbibliothek und der Datenstruktur der quantitativen Tools des Erfinders kann es auch einige komplexe Handelslogiken unterstützen.
Damit Sie die wichtigsten Kenntnisse dieses Abschnitts schnell erfassen können, sollten Sie sich vor der Einführung in die Inventor Quantitative Microwave Language Quick Start zunächst mit den Konzepten in diesem Abschnitt vertraut machen. Wir verwenden weiterhin den langfristigen 50-Tage-Durchschnitt und den kurzfristigen 10-Tage-Durchschnitt als Basisfälle und überprüfen den vollständigen Strategiefall, der im vorherigen Kapitel erwähnt wurde:
Eröffnung einer Long-Position: Wenn keine aktuelle Position vorhanden ist und der Schlusskurs höher ist als der kurzfristige gleitende Durchschnitt, und der Schlusskurs höher ist als der langfristige gleitende Durchschnitt, und der kurzfristige gleitende Durchschnitt höher ist als der langfristige gleitende Durchschnitt, und der langfristige gleitende Durchschnitt steigt.
Eröffnen Sie eine Short-Position: Wenn keine aktuelle Position vorhanden ist und der Schlusskurs unter dem kurzfristigen gleitenden Durchschnitt liegt, der Schlusskurs unter dem langfristigen gleitenden Durchschnitt liegt, der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt liegt und der langfristige gleitende Durchschnitt fällt.
Schließen einer Long-Position: Wenn Sie derzeit eine Long-Order halten und der Schlusskurs unter dem langfristigen gleitenden Durchschnitt liegt, oder der kurzfristige gleitende Durchschnitt unter dem langfristigen gleitenden Durchschnitt liegt, oder der langfristige gleitende Durchschnitt sinkt.
Schließen von Short-Positionen: Wenn Sie derzeit eine Short-Order halten und der Schlusskurs höher ist als der langfristige gleitende Durchschnitt oder der kurzfristige gleitende Durchschnitt höher ist als der langfristige gleitende Durchschnitt oder der langfristige gleitende Durchschnitt steigt.
Wenn es im Mai-Sprachcode geschrieben ist, sieht es folgendermaßen aus:
Abbildung 3-3 Vollständiges Beispiel der Mai-Sprache
Um eine vollständige quantitative Handelsstrategie zu schreiben, sind normalerweise mehrere Schritte erforderlich: Datenerfassung, Datenberechnung, logische Berechnung, Auftragserteilung usw. Wie in der obigen Abbildung gezeigt, wird im gesamten Code nur eine API zum Abrufen der Basisdaten verwendet, nämlich „CLOSE“ in der ersten und zweiten Zeile; dann sind die erste bis neunte Zeile der Datenberechnungsteil und schließlich sind die elfte bis vierzehnte Zeile der Teil zur Logikberechnung und Auftragserteilung.
Bitte beachten Sie, dass der violette Code eine Variable ist. In der ersten bis neunten Zeile ist das grüne „:=“ ein Zuweisungsoperator. Nach der Berechnung werden die Daten auf der rechten Seite des Zuweisungsoperators der Variablen auf der linken Seite zugewiesen. Der orangefarbene Code ist die API. In der ersten Zeile müssen beispielsweise zum Aufrufen des MA (gleitender Durchschnitt) zwei Parameter übergeben werden. Diese können als Einstellungen verstanden werden. Das heißt, beim Aufrufen des MA müssen Sie den Typ des MA festlegen. Das rosarote „AND“ und „OR“ sind logische Operatoren, die hauptsächlich zum Verbinden mehrerer logischer Berechnungen usw. verwendet werden. Beginnen wir mit dem Erlernen der detaillierten Grundlagen der Mai-Sprache, nachdem wir die oben genannten Grundkenntnisse erworben haben.
Grundlegende Daten (Eröffnungskurs, Höchstkurs, Tiefstkurs, Schlusskurs, Handelsvolumen) sind ein unverzichtbarer Bestandteil des quantitativen Handels. Um die neuesten grundlegenden Daten in der Strategie zu erhalten, müssen Sie nur die API des quantitativen Tools des Erfinders aufrufen. Wenn Sie historische Basisdaten abrufen möchten, können Sie „REF“ verwenden, z. B.: REF (CLOSE, 1) dient zum Abrufen des Schlusskurses von gestern.
Eine Variable ist eine Zahl, die geändert werden kann. Der Name einer Variable kann als Code verstanden werden. Die Benennung unterstützt chinesische Schriftzeichen, Buchstaben, Zahlen und Bindestriche, die Länge muss jedoch auf 31 Zeichen begrenzt sein. Variablennamen, Parameternamen oder Funktionsnamen (API) dürfen sich nicht wiederholen und jede Anweisung sollte mit einem Semikolon enden. Möchten Sie nach dem Schreiben noch eigene Sprachkommentare hinzufügen, verwenden Sie am Ende „//“. Es muss im Großbuchstabenmodus der halbbreiten Eingabemethode geschrieben werden. Wie in der folgenden Abbildung dargestellt:
Abbildung 3-4 Datentyp der Mai-Sprache
Bei der Variablenzuweisung wird der Wert auf der rechten Seite des Zuweisungsoperators der Variablen auf der linken Seite zugewiesen. Es gibt vier Arten von Zuweisungsoperatoren, die steuern können, ob der Wert im Diagramm angezeigt wird, und die Anzeigeposition definieren. Die grünen Schriftarten in der folgenden Abbildung sind Zuweisungsoperatoren, nämlich „:“, „:=“, „^^“ und „..“. Die Codekommentare in der Abbildung erklären ihre Bedeutung im Detail.
Abbildung 3-5 Zuweisung von Variablen in der Mai-Sprache
In der Mai-Sprache gibt es viele Datentypen, von denen der numerische Typ, der Zeichenfolgentyp und der Boolesche Typ am häufigsten verwendet werden. Numerische Typen sind Zahlen, einschließlich Ganzzahlen, Dezimalzahlen, positive und negative Zahlen usw., z. B.: 1, 2, 3, 1,1234, 2,23456 …; Zeichenfolgentypen können als Text, Chinesisch, Englisch und Zahlen verstanden werden, z. B.: „Inventor Quantification“, „CLOSEPRICE“, „6000“, und Zeichenfolgentypen müssen in englische Semikolons eingeschlossen werden. Der Boolesche Typ ist der einfachste, er hat nur zwei Werte „ja“ und „nein“, z. B.: 1 steht für „ja“ für wahr und 0 steht für „nein“ für falsch.
Relationale Operatoren sind, wie der Name schon sagt, Operatoren, die zum Vergleichen der Beziehung zwischen zwei Werten verwendet werden. Sie sind gleich, größer als, kleiner als, größer oder gleich, kleiner oder gleich und ungleich, wie unten gezeigt:
Abbildung 3-6 Mai-Sprachoperatoren
Logische Operationen können einzelne Boolesche Aussagen zu einem Ganzen verbinden. Die am häufigsten verwendeten sind „UND“ und „ODER“. Angenommen, es gibt zwei Werte vom Typ Boolesch, nämlich „Schlusskurs ist höher als Eröffnungskurs“ und „Schlusskurs ist höher als gleitender Durchschnitt“, dann können wir sie zu einem Booleschen Wert kombinieren, wie etwa: „Schlusskurs ist höher als Eröffnungskurs und (UND) Schlusskurs ist höher als gleitender Durchschnitt“, „Schlusskurs ist höher als Eröffnungskurs oder (ODER) Schlusskurs ist höher als gleitender Durchschnitt“.
Abbildung 3-7 Logische Operation der Mai-Sprache
Achtung alle: „UND“ bedeutet, dass, wenn alle Bedingungen „ja“ sind, die letzte Bedingung „ja“ ist; „ODER“ bedeutet, dass die letzte Bedingung „Ja“ ist, sofern eine der Bedingungen „Ja“ lautet. „UND“ kann als „&&“ und „ODER“ als „||“ geschrieben werden.
Häufig verwendete arithmetische Operatoren in der Mai-Sprache (“+”, “-”,*”, „/“) unterscheidet sich nicht von der Mathematik, die man in der Grundschule lernt, wie unten gezeigt:
Abbildung 3-8 Arithmetische Operationen in der Mai-Sprache
Wenn es eine 100 gibt*Welchen Schritt berechnet das Programm zuerst für den Ausdruck (10-1)/(10+5)? Aus der Mittelschulmathematik wissen wir: ① Handelt es sich um eine Operation auf gleicher Ebene, wird grundsätzlich von links nach rechts gerechnet. ② Wenn sowohl Addition und Subtraktion als auch Multiplikation und Division vorliegen, berechnen Sie zuerst die Multiplikation und Division, dann die Addition und Subtraktion. ③Wenn Klammern vorhanden sind, berechnen Sie zuerst den Inhalt der Klammern. ④ Wenn es den Betriebsgesetzen entspricht, können die Betriebsgesetze zur Vereinfachung der Berechnung verwendet werden. Die Priorität der Mai-Sprache ist die gleiche wie unten gezeigt:
Abbildung 3-9 Priorität arithmetischer Operationen in der Sprache Mai
In der Mai-Sprache des quantitativen Tools des Erfinders gibt es zwei Modi zur Ausführung der Programmstrategie, nämlich: Schlusskursmodus und Echtzeitkursmodus. Der Schlusskursmodus bedeutet, dass das aktuelle K-Liniensignal hergestellt wird und die Auftragstransaktion sofort ausgeführt wird, wenn die nächste K-Linie beginnt. Der Echtzeit-Preismodus bedeutet, dass die Auftragstransaktion sofort ausgeführt wird, sobald das aktuelle K-Line-Signal vorliegt.
Wenn es sich um eine Intraday-Strategie handelt und Sie die Position am Ende des Handelstages schließen müssen, müssen Sie die Zeitfunktion „TIME“ verwenden. Diese Funktion wird vierstellig angezeigt, wenn sie über der Sekundenperiode und unter der Tagesperiode liegt, also: HHMM (1450-14:50). Hinweis: Wenn Sie die TIME-Funktion als Bedingung zum Schließen einer Position am Ende des Handels verwenden, wird empfohlen, dass auch die Öffnungsbedingung ein entsprechendes Zeitlimit hat. Wie unten gezeigt:
Abbildung 3-10 Mikrofon-Sprachzeitfunktion
Abbildung 3-11 Klassifizierung des Mai-Sprachmodells
Es gibt zwei Arten der Modellklassifizierung in der Mai-Sprache, nämlich: nichtfilterndes Modell und filterndes Modell. Dies ist eigentlich sehr einfach zu verstehen: Das nicht filternde Modell ermöglicht kontinuierliche Öffnungs- oder Schließsignale, wodurch die Funktionen des Hinzufügens und Reduzierens von Positionen realisiert werden können. Das Filtermodell erlaubt keine kontinuierlichen Öffnungs- oder Schließsignale. Das heißt, wenn ein Öffnungssignal erscheint, werden nachfolgende Öffnungssignale herausgefiltert, bis ein Schließsignal erscheint. Die Reihenfolge der Signale im nicht filternden Modell ist: öffnen-schließen-öffnen-schließen-öffnen…..
Das Obige ist eine kurze Einführung in die Mai-Sprache. Nachdem Sie sie gelernt haben, können Sie quantitative Handelsstrategien programmieren. Wenn Sie komplexere Strategien schreiben müssen, können Sie die Dokumentation zur Mai Language API des Inventor Quantitative Tool zu Rate ziehen oder sich direkt an den offiziellen Kundendienst wenden, um quantitative Handelsstrategien für Sie schreiben zu lassen.
Auch Daytrading ist ein Handelsmodell. Bei dieser Methode werden Positionen nicht über Nacht gehalten, daher ist das Risiko von Marktvolatilität geringer. Sobald ungünstige Marktbedingungen eintreten, können rechtzeitig Anpassungen vorgenommen werden. Nachdem Sie in diesem Abschnitt die Einführung in die Mai-Sprache gelernt haben, zeigen wir Ihnen im nächsten Abschnitt, wie Sie eine durchführbare quantitative Intraday-Handelsstrategie schreiben.
Im vorherigen Artikel haben wir die Voraussetzungen für die Umsetzung von Handelsstrategien unter den Gesichtspunkten Einführung in die Mai-Sprache, grundlegende Syntax, Modellausführungsmethode, Modellklassifizierung usw. erläutert. In diesem Artikel werden wir den Inhalt des vorherigen Artikels fortsetzen und Ihnen dabei helfen, aus den häufig verwendeten Strategiemodulen und technischen Indikatoren Schritt für Schritt eine durchführbare quantitative Intraday-Handelsstrategie zu realisieren.
Überlegen Sie einmal: Wie baut man einen Roboter aus Legosteinen? Man kann es nicht Stück für Stück zusammensetzen, von oben nach unten oder von unten nach oben. Jeder mit ein wenig gesundem Menschenverstand weiß, dass Kopf, Arme, Beine, Flügel usw. einzeln zusammengesetzt und dann zu einem kompletten Roboter kombiniert werden müssen. Dasselbe gilt beim Schreiben von Programmen. Schreiben Sie die erforderlichen Funktionen in Strategiemodule und kombinieren Sie die Strategiemodule dann zu einer vollständigen quantitativen Handelsstrategie. Nachfolgend liste ich einige häufig verwendete Strategiemodule auf:
Die Stufenerhöhung wird durch Berechnung des Prozentsatzes der Differenz zwischen dem Schlusskurs der aktuellen K-Linie und dem Schlusskurs der vorherigen N-Perioden berechnet. Um beispielsweise den Anstieg der letzten 10 K-Linien-Perioden zu berechnen, kann der Code wie folgt geschrieben werden:
Abbildung 3-12 Entwicklung der Mai-Sprachphase
Um einen neuen Höchststand festzulegen, müssen wir berechnen, ob die aktuelle K-Linie höher ist als der höchste Preis in N Perioden. Um beispielsweise zu berechnen, ob die aktuelle K-Linie höher ist als der höchste Preis der letzten 10 K-Linien, kann der Code wie folgt geschrieben werden:
Abbildung 3-13 Mai Language erreicht einen neuen Höhepunkt
Ein großvolumiger Aufwärtsangriff kann als steigende Preise und ein starker Anstieg des Ha