0
konzentrieren Sie sich auf
72
Anhänger

Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis

Erstellt in: 2019-06-25 15:48:58, aktualisiert am: 2023-10-31 21:01:08
comments   2
hits   11496

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“ Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 2-8 Schritte zum Erstellen eines Roboters

Zusammenfassen

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?

Vorschau des nächsten Abschnitts

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.

Hausaufgaben

  1. Versuchen Sie, einen Austausch hinzuzufügen.
  2. Versuchen Sie, in diesem Abschnitt die Handelsstrategie zu beschreiben.

2.3 Allgemeine API-Erklärung

Zusammenfassung

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.

Was ist eine API?

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.

Was ist API im quantitativen Handel?

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.

Häufig verwendete Mai-Sprach-API

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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.

Häufig verwendete JavaScript-Sprach-APIs

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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.

Zusammenfassen

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.

Hausaufgaben

  1. Versuchen Sie, in der Mai-Sprache eine Aussage zu schreiben, dass der gleitende Durchschnitt der 5-Perioden den gleitenden Durchschnitt der 10-Perioden kreuzt.
  2. Versuchen Sie, mit GetAccount in JavaScript Ihre Kontoinformationen abzurufen und diese mit Log in das Protokoll zu drucken.

Vorschau des nächsten Abschnitts

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.

2.4 So schreiben Sie Strategien für das Inventor Quantitative System

Zusammenfassung

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.

Vorbereiten

Ö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.

Strategische Ideen

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.

Strategielogik

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.

Sprachstrategie

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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.

Zusammenfassen

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.

Hausaufgaben

  1. Versuchen Sie, die Strategien in diesem Abschnitt selbst umzusetzen.
  2. Fügen Sie basierend auf der Strategie in diesem Abschnitt die Stop-Profit- und Stop-Loss-Funktionen hinzu.

Vorschau des nächsten Abschnitts

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.

Kapitel 3 Einfache Programmiersprache zur Implementierung von Handelsstrategien

3.1 Horizontale Bewertung von Programmiersprachen für den quantitativen Handel

Zusammenfassung

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.

Was ist eine Programmiersprache

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.

Programmiersprachenklassifizierung

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). Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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 Sprache

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. Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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.

Einfache Sprache

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.

Python

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.

Matlab/R

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++

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

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.

Zusammenfassen

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.

Hausaufgaben

  1. Welche Vorteile bietet die Programmiersprache Python für den quantitativen Handel?
  2. Versuchen Sie, einige häufig verwendete APIs in der Sprache Mai des Erfinders zu schreiben?

Vorschau des nächsten Abschnitts

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.

3.2 Kurzanleitung zur Mai-Sprache

Zusammenfassung

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.

Komplette Strategie

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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.

Basisdaten

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.

Variable

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-4 Datentyp der Mai-Sprache

Variablenzuweisung

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. Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-5 Zuweisung von Variablen in der Mai-Sprache

Datentyp

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.

Beziehungsoperator

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-6 Mai-Sprachoperatoren

Logische Operatoren

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“. Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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.

Arithmetik-Operator

Häufig verwendete arithmetische Operatoren in der Mai-Sprache (“+”, “-”,*”, „/“) unterscheidet sich nicht von der Mathematik, die man in der Grundschule lernt, wie unten gezeigt: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-8 Arithmetische Operationen in der Mai-Sprache

Prioritäten

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-9 Priorität arithmetischer Operationen in der Sprache Mai

Ausführung

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.

Intraday-Strategien

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-10 Mikrofon-Sprachzeitfunktion

Modellklassifizierung

Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis 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…..

Zusammenfassen

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.

Vorschau des nächsten Abschnitts

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.

Hausaufgaben

  1. Versuchen Sie, mit dem Inventor Quantitative Tool eine API in der Mai-Sprache zu schreiben, um grundlegende Daten zu erhalten.
  2. Welche Möglichkeiten gibt es, Variablenzuweisungen in einem Diagramm anzuzeigen?

3.3 So implementieren Sie Strategien in der Mai-Sprache

Zusammenfassung

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.

Richtlinienmodul

Ü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:

Phasenanstieg

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-12 Entwicklung der Mai-Sprachphase

Neue Höchststände

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: Inventors Einführung in den quantitativen Handel - Von den Grundlagen zur Praxis Abbildung 3-13 Mai Language erreicht einen neuen Höhepunkt

Großes Volumen nach oben

Ein großvolumiger Aufwärtsangriff kann als steigende Preise und ein starker Anstieg des Ha