Einführung in die Erfindung von quantitativen Transaktionen - von der Basis bis zum Kampf.

Schriftsteller:Gutes, Erstellt: 2019-06-25 15:48:58, Aktualisiert: 2023-10-31 21:01:08

Wenn der Preis von oben nach unten geht und den Unterkurs bricht, also wenn er die Stützlinie bricht, denken wir, dass die Oberflächenkräfte stärker werden, eine Welle des Abwärtstrends hat sich gebildet und ein Verkaufssignal erzeugt.imgSchaubild 4-20

Wenn der Preis nach dem Kauf in die offene Position zurückfällt und wieder in die Mitte der Brennlinie fällt, denken wir, dass die Mehrparteienkraft schwächer wird oder die Oberflächenkraft stärker wird und ein Verkaufsplatzsignal erzeugt wird; wenn der Kauf nach der Eröffnung der Position wieder in die Mitte der Brennlinie fällt, denken wir, dass die Oberflächenkraft schwächer wird oder die Mehrparteienkraft stärker wird und ein Kauf-Platzsignal erzeugt wird.

Kauf- und Verkaufsbedingungen

Mehrfachgeschäft:如果无持仓,并且收盘价大于上轨,并且时间非14:45 Kauffreier Handel:如果无持仓,并且收盘价小于下轨,并且时间非14:45 Mehrfach-Platzierung:如果持多单,并且收盘价小于中轨,或者时间是14:45 Leerstand:如果持空单,并且收盘价大于中轨,或者时间是14:45

Implementierung der Strategiecode

Um eine Strategie umzusetzen, müssen wir zunächst darüber nachdenken, welche Daten wir benötigen, über welche API wir sie erhalten, wie wir die Transaktionslogik berechnen, und schließlich, wie wir die Transaktionen durchführen.

Schritt 1: Nutzen Sie das CTA-Strategie-Framework

Das sogenannte CTA-Strategie-Framework ist ein Standard-Framework, das von den Erfindern der Quantitative Trading-Officials eingeführt wurde, mit dem man die triviale Frage der Entwicklung einer Quantitative Trading-Strategie nicht berücksichtigen muss, sondern sich direkt auf die Programmierung der Handelslogik konzentrieren kann. Wenn man das Framework nicht verwendet, muss man zum Beispiel bei der Bestellung Fragen wie Monatsumstellung, Bestellpreise, Widerruf oder Nachverfolgung von Bestellungen bei Nicht-Transaktionen berücksichtigen...imgSchaubild 4-21

Die Abbildung oben ist das CTA-Rahmenwerkzeug, das mit den Quantifizierungswerkzeugen der Erfinder verwendet wird. Es ist ein festes Codeformat, in dem alle transaktionslogischen Codes von Linie 3 an geschrieben werden.

Es ist zu beachten, dass der Sortencode in der obigen Abbildung rb000/rb888 ist. Dies bedeutet, dass die Signaldaten mit rb000, die Transaktionsdaten mit rb888 verwendet werden und automatisch wechseln. Natürlich können Sie auch spezifische Sortencodes angeben, z. B. den Sortencode rb1910, d. h. sowohl die Signaldaten als auch die Transaktionsdaten mit rb1910.

FMZ hat eine eingebaute Commodity Futures Trading-Klasse-Datei in JavaScript, die direkt in der Strategie-Editor-Interface mit einem Klick in den Code verwendet werden kann:img

Zweiter Schritt: Verschiedene Daten erhalten

Wenn Sie sich genau überlegen, welche Daten Sie benötigen, dann sehen Sie aus unserer strategischen Handelslogik: Zuerst müssen Sie den aktuellen Haltestand erhalten, dann vergleichen Sie die Wechselbeziehung zwischen dem Schlusskurs und dem mittleren Kurs auf dem Brin-Band-Indikator, um zu beurteilen, ob der Markt kurz vor dem Schließen steht.

Erhalten von K-Line-Daten

Zunächst ist es notwendig, die K-Linien-Array und die oberen Wurzeln der K-Linien zu erhalten, denn mit der K-Linien-Array kann der Brennband-Indikator berechnet werden.imgAbbildung 4-22

Wie in der Grafik oben gezeigt: Zeile 4: Erhalten Sie die K-Strang-Array, die in einem festen Format ist. Zeile 5: Filtern Sie die Länge der K-String, da wir die Parameter für die Berechnung des Blink-Band-Indikators mit 20 berechnen, wenn die K-String kleiner als 20 ist, können Sie den Blink-Band-Indikator nicht berechnen. Hier müssen Sie also die Länge der K-String filtern. Zeile 6: Aus der gewonnenen K-Linien-Array erhält man zuerst das Objekt der oberen Wurzel K-Line und dann aus diesem Objekt den Schlusspreis. Das zweite Element der Negativzahl einer Array ist die Länge der Array minus 2 ((r[r.length - 2]); alle Elemente in der K-Line-Array sind ein Objekt, das den Eröffnungspreis, den Höchstpreis, den Mindestpreis, den Schlusspreis, die Transaktion, die Zeit enthält.

Zeitdaten für die K-Linie erhalten

Da wir die Tagesstrategie sind, müssen wir die Position vor dem Abschluss ausgleichen, also müssen wir entscheiden, ob die aktuelle K-Linie kurz vor dem Abschluss ist.imgSchaubild 4-23.

Wie in der Abbildung oben gezeigt: Zeile 8: Holen Sie sich die Zeitstrich-Eigenschaft für die Wurzel K und erstellen Sie einen Zeitobjekt ((new Date ((Zeitstrich)). Zeile 9: Berechnen Sie die Anzahl der Stunden und Minuten je nach Zeitobjekt und entscheiden Sie, ob die Uhrzeit der Wurzel K 14:45 ist.

Erhalten von Lagerbestandsdaten

Haltungsinformationen sind eine wichtige Voraussetzung für die Quantifizierung der Handelsstrategie. Bei der Erstellung von Handelsbedingungen muss auch durch den Haltungsstatus und die Anzahl der Haltungen entschieden werden, ob eine Bestellung ausgeführt wird.imgSchaubild 4-24 Wie in der Grafik oben gezeigt: Zeile 11: Erhalten Sie den aktuellen Bestandsstand. Wenn mehrere Bestellungen vorhanden sind, ist der Wert 1; wenn leere Bestellungen vorhanden sind, ist der Wert 1; wenn keine Bestellungen vorhanden sind, ist der Wert 0.

Erhalten von Blinkband-Daten

Als nächstes ist es notwendig, die Werte der Brennband-Indikatoren auf, im Mittelpunkt und unter der Bahn zu berechnen. Zuerst müssen Sie die Brennband-Arrays erhalten, um die Werte der Ober- und Unterbahn aus der Array zu erhalten. In den Quantifizierungswerkzeugen der Erfinder ist es einfach, die Brennband-Arrays zu erhalten, indem Sie die API des Brennbands direkt aufrufen.

Die zweidimensionale Matrix ist eigentlich gut verstanden, sie ist die Matrix in der Matrix, also ist die Reihenfolge, in der sie gewonnen wird, wie folgt: zuerst die angegebene Matrix in der Matrix gewonnen, dann die angegebene Element aus der angegebenen Matrix gewonnen, wie in der folgenden Abbildung gezeigt:imgAbbildung 4-25

Die Zeilen 13 bis 19 sind die Werte der auf, mittleren und untergeordneten Brennengrenzen. Die Zeilen 13 und 16 sind die Werte der auf, mittleren und untergeordneten Brennengrenzen der oberen, mittleren und untergeordneten K-Werte der oberen, mittleren und untergeordneten Werte.imgAbbildung 4-26

Schritt drei: Bestellgeschäft

Mit diesen Daten kann man die Transaktionslogik und den Code für die Transaktionen schreiben. Das Format ist auch sehr einfach. Am häufigsten wird der "if" Satz verwendet, der mit den Worten beschrieben werden kann:imgSchaubild 24-27

In der Abbildung 21 bis 24 sind die Handelslogik und der Code für den Auftrag. Von oben nach unten sind es: Plain, Plain, Plenty, Open.

Nehmen wir zum Beispiel die mehrfache (siehe Zeile 23), die eine Zif-Satz-Zif ist, in der die Klammern-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Zif-Z

Wenn Sie genau hinschauen, werden Sie vielleicht feststellen, dass diese Zeilen einen Return-1 und einen Return-1 haben, was ein festes Format ist, das bedeutet: Wenn gekauft wird, schreiben Sie Return-1, wenn verkauft wird, schreiben Sie Return-1.

Die vollständige Strategiecode

Wenn man nun einen vollständigen Strategie-Code schreibt, wäre es nicht einfach, ihn getrennt zu schreiben, wenn man das Trading-Framework, die Trading-Daten, die Trading-Logik, die Kauf- und Verkaufsbestellungen und so weiter, hier ist der gesamte Code für den Strategie:imgAbbildung 4 bis 28

Zwei Punkte sind zu beachten: Versuchen Sie (aber nicht unbedingt) die Strategielogik so zu schreiben, dass die Bedingungen der Wurzelklasse K und der Unterwurzelklasse K oder der Oberwurzelklasse K festgesetzt werden, so dass die Ergebnisse der Wiederholung nicht von den Ergebnissen der echten Platte abweichen. Es kann auch anders geschrieben werden, aber es ist wichtig zu beachten, ob die Strategielogik korrekt ist. Im Allgemeinen wird die Logik der Ausgleichsposition vor der Logik der Eröffnung geschrieben, um so weit wie möglich die Strategielogik zu Ihren Erwartungen anzupassen.

Zusammenfassung

Wir lernen jeden Schritt zur Entwicklung einer vollständigen Quantifizierungs-Trading-Strategie, einschließlich: Strategienübersicht, Berechnungsmethode für die Brennleiste, Strategielogik, Verkaufsbedingungen, Implementierung der Strategiecode usw. Mit diesem Strategie-Fall kann nicht nur die Programmierung der Quantifizierungs-Tools der Erfinder vertraut gemacht werden, sondern auch verschiedene Strategien nach dieser Vorlage angepasst werden.

Die Quantitative Trading Strategie ist nichts anderes als eine Zusammenfassung der subjektiven Trading-Erfahrung oder des Systems, und wenn wir die Erfahrungen oder Systeme, die in den subjektiven Transaktionen verwendet wurden, einzeln schreiben, bevor wir die Strategie schreiben, und sie dann einzeln in den Code übersetzen, werden Sie feststellen, dass es viel einfacher ist, eine Strategie zu schreiben.

Nächste Nachricht

Bei der Entwicklung von Quantitative-Trading-Strategien, wenn nur eine Programmiersprache zur Auswahl steht, sollten Sie nicht zögern, Python zu wählen. Von der Datenerfassung über die Strategie-Rückmessung bis hin zu den Transaktionen, Python hat die gesamte Geschäftskette abgedeckt.

Hausaufgaben nach dem Unterricht

1. Versuchen Sie, mit dem Wissen aus diesem Abschnitt eine zweiseitige Strategie zu realisieren. 2. Versuchen Sie, die KDJ-Pointer-Algorithmen mit der JavaScript-Sprache in den Quantifizierungswerkzeugen der Erfinder zu implementieren.

4.3 Schnelle Einführung in die Sprache Python

Zusammenfassung

Bei der Entwicklung von Quantitative-Trading-Strategien, wenn nur eine Programmiersprache zur Auswahl steht, sollten Sie nicht zögern, Python zu wählen. Von der Datenerfassung über die Strategie-Rückmessung bis hin zu den Transaktionen, Python hat die gesamte Geschäftskette abgedeckt.

Warum so viele Programmiersprachen lernen?

Wenn wir uns die letzten Kurse anschauen, dann haben wir gemeinsam die folgenden Sprachen gelernt: Mac, Visualisierungssprache, JavaScript, einschließlich der Sprache Python, die wir in diesem Abschnitt lernen werden.

In der Tat hat jede Programmiersprache ihre eigenen sprachlichen Eigenschaften, und diese Sprachen haben keine Vor- und Nachteile, sondern es ist vielmehr wichtig zu sehen, welche Programmiersprache für Sie besser geeignet ist und ob diese Programmiersprache zu Ihnen passt.

Gleichzeitig sind wir bestrebt, die Türen der Quantifizierung für alle zu öffnen und das Wissen über verschiedene Programmiersprachen zu verbreiten.

Warum wählen Sie Python?

Der Prozess der Quantifizierung von Transaktionen ist nichts anderes als die Erfassung von Daten, die Analyse von Rechendaten, die Verarbeitung von Daten usw. In Bezug auf die Datenanalyse ist keine andere Sprache so rechnerisch und leistungsfähig wie Python. Vor allem bei der Zeitreihenanalyse von Daten (K-Linien sind Zeitreihendaten) hat Python einen einfachen und komfortableren Vorteil. Außerdem ist Python einfacher zu lernen als andere Programmiersprachen und ein gutes Python-Programm fühlt sich wie das Lesen von Englisch an.

Fünf Gründe, Python zu wählen

1. Quantitative Anwendung ist weit verbreitet:

In den Vereinigten Staaten ist Quantipian und inländische Erfinder in der Python-Sprache verfügbar.

2. Einfach zu lernen:

Die Designphilosophie von Python ist eine benutzerzentrierte, leicht zu deaktivierende Interpretationssprache.

3. Freie und offene Quellen:

Es gibt keine Nutzungskosten, es gibt Open-Source-Code-Sharing, es gibt mehr Lern- und Nutzungseffizienz.

4. Eine reiche Bibliothek:

Die Datenverarbeitung, die Datenverarbeitung, die Visualisierung, die statistische Analyse, die technische Analyse, das maschinelle Lernen...

5. Anwendungsoberfläche:

Die Daten der verschiedenen Plattformen erhalten die Schnittstelle zwischen Speicherung von Anrufen und Echtzeitverbindungen.

Die vollständige Strategie

Um Ihnen zu helfen, die Schwerpunkte dieses Abschnitts schnell zu verstehen, geben wir Ihnen einen ersten Einblick in die Konzepte der Nomen in diesem Abschnitt, bevor wir Ihnen einen kurzen Einblick in die Erfindung der Quantifizierung der JavaScript-Sprache geben.

Mehrfachgeschäft: wenn es keine Position gibt und die 5-Prozess-Gerade größer ist als die 20-Prozess-Gerade.Kauffreier Handel: wenn es keine Position gibt und die 5-Prozess-Gleichlinie kleiner als die 20-Prozess-Gleichlinie ist.Mehrfach-Platzierung: wenn mehrere Bestellungen vorhanden sind und die 5-Zyklus-Gleichlinie kleiner als die 20-Zyklus-Gleichlinie ist.Leerstand: wenn die aktuelle Bestellung leer ist und die 5-Zyklus-Gerade größer als die 20-Zyklus-Gerade ist.

Wenn man es in Python schreibt, sieht es so aus:imgAbbildung 4-29

Der Code in der Abbildung oben ist eine vollständige Quantitative Trading Strategie in Python. Es kann auf der Tischplatte ausgeführt werden und automatisch Transaktionen bestellen.

Aber der Entwurfsprozess für die gesamte Strategie ist fast derselbe: Setzen Sie die Handelssorte ein, erhalten Sie K-String-Daten, erhalten Sie Lagerinformationen, berechnen Sie die Transaktionslogik, buchen Sie und verkaufen Sie. Das heißt, obwohl die Programmiersymmetrie unterschiedlich ist, ist die geschriebene Strategielogik die gleiche.

Auswahl der Versionen

Es gibt zwei Versionen von Python, nämlich Python 2 und Python 3. Es gab einmal einen Abschnitt, der sagte, dass Python wie eine Zweispritzgranate ist, aber man kann nur eine Kugel pro Mal abfeuern, aber man weiß nie genau, was genauer ist.

Kennzeichen

Die Identifikatoren sind die Namen der Variablen, wie Test, Test 10, Test 10 und Test 10 in der folgenden Abbildung.Der Name der Variablen, der Funktionsnamen und der Funktionsparameter ist in Python groß geschrieben, d.h. der Name der Variablen Test und der Variablenname Test sind zwei verschiedene Variablen.Die Zeichen können auch Zahlen sein, wie in der folgenden Abbildung gezeigt wird:imgAbbildung 4-30

Kommentare

Eine Anmerkung ist eine Übersetzung oder Interpretation einer Zeile Code, deren Regeln sehr einfach sind. Die Interpretation umfasst Einzelzeilen-Anmerkungen und Block-Anmerkungen. Einzelzeilen-Anmerkungen beginnen mit einem Wellennummer ((#), Block-Anmerkungen beginnen mit drei Einzelzeichen (() oder drei Doppelzeichen ((""") und enden mit drei Einzelzeichen (()) oder drei Doppelzeichen ((""")), wie hier gezeigt:imgSchaubild 4-31

Linien und Schrumpfungen

Das Besondere an Python ist die Verwendung von Verkleinerungen, die den Codeblock ohne großes Klammerzeichen {} bezeichnen. Die Anzahl der Verkleinerungen ist variabel, aber die Aussagen für denselben Codeblock müssen die gleiche Anzahl von Verkleinerungen enthalten. Wie in der Abbildung unten: In diesem Fall gibt das Programm eine Fehlermeldung.imgAbbildung 4-32

Variablen

Variablen können Daten jeglicher Art speichern. Der Name der Variablen ist direkt zu schreiben, um die Variable zu erstellen, aber wenn die Variablen erstellt werden, muss der Variablenwert gleichzeitig gesetzt werden, sonst gibt der Programm einen Fehler zurück. Die Gleichzahl ((=) ist ein Variablenname auf der linken Seite und die Gleichzahl ((=) auf der rechten Seite ist der Wert, der in der Variable gespeichert ist.imgAbbildung 4 bis 33

Daten

In Python gibt es sechs Datentypen, von denen drei unveränderliche und drei variable Daten sind. Im Sinne des Namens ist eine unveränderliche Datenart, deren Wert nach der Erstellung nicht geändert werden kann und deren Adresse im Speicher einzigartig ist. Variable Daten (drei): Number (zahlen), String (String), Tuple (Element); Variable Daten (drei): List (Liste), Dictionary (Wörterbuch) und Set (Sammlung).imgAbbildung 4 bis 34

Zahlen

Python unterstützt die Zahlen-Typen int ((Integrität) ∞ float (Floating) ∞ bool (Bool) ∞ complex (Plural) ∞ und die integrierte Funktion type (Typ) ∞, mit der man den Objekttyp der Variablen abfragen kann.imgAbbildung 4 bis 35

Die Operatoren

Wie in den meisten Sprachen sind die mathematischen Operationen in Python sehr intuitiv. Ob Arithmetische Operatoren, Vergleicheoperatoren oder Logische Operatoren, das wissen wir in der Schule. Hierbei handelt es sich um mathematische Operationen, bei denen die Vergleicheoperatoren zwei Werte kleiner oder kleiner vergleichen können. Die Logische Operatoren bestehen hauptsächlich aus: logisch, logisch und nicht logisch.imgAbbildung 4-36

Es ist zu beachten: and ist logisch mit, was für und bedeutet. or ist logisch oder, was für oder bedeutet. ! ist nicht logisch, was für oder bedeutet: Die endgültige Bedingung ist die endgültige Bedingung, wenn alle Voraussetzungen für die Erfüllung der Erfüllung der Erfüllung der Erfüllung der Erfüllung sind. Das ist unter allen Bedingungen möglich, solange eine der Bedingungen wahr ist, ist die letzte Bedingung wahr.

Prioritäten

Wenn es eine 100* ((10-1) /(10+5) -Expression gibt, welche Stufe berechnet man zuerst? Die Mittelschule Mathematik sagt uns: (1) Wenn es sich um eine gleichrangige Operation handelt, wird die Berechnung in der Regel von links nach rechts durchgeführt. (2) Wenn es sowohl eine Addition als auch eine Subtraktion gibt, wird zuerst multipliziert und dann wieder gezählt und subtrahiert.imgAbbildung 4 bis 37

Die Bullenwerte

Die Boole-Typen stehen für True und False und werden häufig in Konditionalitätsentscheidungen und Loop-Sätzen verwendet. In Python werden zwei Konstanten definiert, die die Konstante True und die Konstante Flase darstellen.imgAbbildung 4 bis 38

String

Strings sind Wörter, die häufig bei der Einstellung von Sortencodes verwendet werden, z. B. if1905. In Python werden Strings mit einem einzeiligen oder doppelten Anführungszeichen eingekettet.imgAbbildung 4-39

Liste

Eine Liste ist der am häufigsten verwendete Datentyp in Python. Man kann sich eine Liste als Container vorstellen, allerdings sind die Elemente in einem Container von links nach rechts geordnet, wobei das erste Element 0 ist, das zweite Element 1 und so weiter.imgAbbildung 4-40

Funktionen

Die Funktionen in Python unterscheiden sich nicht wesentlich von den Funktionen, die wir in der Mittelschule kennen.imgSchaubild 44-41

Wenn Satz

Wenn es heute regnet, werde ich wetten. Das bedeutet, dass der Satz nur dann ausgeführt wird, wenn die angegebene Bedingung True ist.imgSchaubild 44-42

Wenn... sonst

Die if...else-Sätze werden auch häufig verwendet, z. B.: Wenn es heute regnet, werde ich wetten; sonst werde ich nicht wetten. Die else-Sätze sind eine Erweiterung der if-Sätze, d. h. wenn die angegebene Bedingung Falsch ist, wird dieelse-Sätze erst dann ausgeführt, wenn der andere Code ausgeführt wird.imgSchaubild 44-43

Elif-Sätze

Da Python keine Switch-Anweisungen unterstützt, kann Python nur die Elif-Anweisungen für die Beurteilung mehrerer Bedingungen verwenden. Zum Beispiel: Wenn es Sonnenstrahlen sind, sehe ich mehr; wenn es nicht Sonnenstrahlen sind, sehe ich leer; sonst beobachte ich; wie in der folgenden Abbildung gezeigt:imgSchaubild 44-44

For-Zyklen

Manchmal, wenn wir die Daten der K-Linien in den letzten Tagen aus der K-Linien-Array abrufen wollen, können wir die Position der K-Linien-Daten in der Reihe nach abrufen.imgAbbildung 4-45

while-Zyklus

Wir alle wissen, dass sich die Branche ständig verändert, und wenn Sie die neuesten K-Linien-Arrays erhalten möchten, müssen Sie immer wieder denselben Code laufen lassen, und dann verwenden Sie die Whilex-Schleife, um die neuesten K-Linien-Arrays zu erhalten, solange die Bedingung wahr ist.imgSchaubild 44-46

Unterbrechungs- und Kontinuuswörter

Der Kreislauf ist präkonditioniert, er beginnt nur dann, wenn die Voraussetzung true ist, wiederholt etwas zu tun, bis die Voraussetzung false ist, und der Kreislauf endet. Die Break-Sätze können jedoch sofort aus dem Kreislauf springen, während der Kreislauf ausgeführt wird; die Continuue-Sätze können einen Kreislauf unterbrechen und dann den nächsten Kreislauf fortsetzen, wie hier gezeigt:imgSchaubild 44-47

Rücksendung

Die return-Anweisung beendet die Ausführung der Funktion und gibt den Wert der Funktion zurück. Die return-Anweisung kann nur innerhalb des Funktionskörpers erscheinen, und wenn sie irgendwo anders im Code erscheint, führt dies zu einem Syntaxfehler!imgSchaubild 44-48

Strategische Strukturen

Strategie-Architekturen können als festes Format der Strategien verstanden werden, deren Erfinder das Quantifizierungswerkzeug mit einem Beratungsmodell verwenden.

Die Zeile 4 bis 7 ist die Haupteingabefunktion des gesamten Programms, d.h. der Computer führt den Code von Zeile 4 aus; direkt nach der Ausführung der Zeile 5 geht es in einen unendlichen Kreislauf; dann werden in einem unendlichen Kreislauf die strategischen Logikfunktionen onTick und Sleep ausgeführt; die onTick-Funktion ist auch Zeile 1 des Codes, in der Sie die strategische Logik in Zeile 2 schreiben können; wir wissen, dass in einem Kreislauf die Ausführung des Programms sehr schnell ist, so dass die Schlaffunktion eine Pause einstellen kann, und die nächste Generation von Schlaf (Sleep) ist eine Pause von 500 Millisekunden in jedem Kreislauf.imgAbbildung 44-49

Zusammenfassung

Das ist eine schnelle Einführung in die Python-Sprache, die zwar nur eine einfache Grundkenntnis ist, aber für das Schreiben einer einfachen Quantitative-Trading-Strategie geeignet ist.

Nächste Nachricht

In der Technischen Analyse sind Trendstrategien wie Durchbruch und Durchbruch zweifellos die wichtigsten Strategien. Obwohl die beiden Strategien auf den Trend der Preisbewegung abzielen, unterscheiden sich ihre Handelsphilosophie und ihre Risikokarakteristiken.

Hausaufgaben nach dem Unterricht

1. Versuchen Sie, historische K-Line-Daten mit der Python-Sprache in den Quantifizierungswerkzeugen der Erfinder zu erhalten. 2. Versuchen Sie, den anfangs genannten Strategiecode zu schreiben und eine Anmerkung zu schreiben.

4.4 Strategische Transaktionen in Python

Zusammenfassung

In der letzten Seite haben wir eine Einführung in die Python-Sprache gelernt, grundlegende Grammatik, Strategie-Frameworks usw.. Obwohl der Inhalt langweilig ist, ist es eine notwendige Fähigkeit, die Sie für die Umsetzung einer Handelsstrategie lernen müssen.

Strategie-Bericht

Von den zahlreichen Handelsstrategien, von denen die Dongjian-Channel-Strategie eine der klassischsten ist, ist sie bereits im Jahr 1970 bekannt geworden, als ausländische Firmen spezielle Simulations-Tests und Untersuchungen an den Mainstream-Programmatized-Trading-Strategien durchführten.

Später fand in den USA eine weitere Ausbildung der berühmtesten Seehundehändler in der Geschichte statt, die einen großen Erfolg hatte. Die Handelsmethoden der Seehunde waren damals geheim, aber es dauerte mehr als ein Jahrzehnt, bis die Seehundehandelsgesetze bekannt wurden, und es wurde entdeckt, dass die Seehunde eine verbesserte Donchi-An-Gang-Strategie verwendeten.

Die Breach-Trading-Strategien eignen sich für die eher flüssigen Handelsarten. Die häufigste Breach-Trading-Methode ist die Verwendung der relativen Position zwischen Preis und Unterstützung und Widerstand, um den Kauf- und Verkaufsplatz eines bestimmten Handels zu bestimmen.

Die strategischen Regeln für den Dongch'an Tunnel

Das Dongjian-Kanal ist ein Trend-Indikator, dessen Aussehen und Signal dem Brennbänder-Indikator ähneln. Das Dongjian-Kurskanal basiert jedoch auf den höchsten und niedrigsten Preisen in einem Periodenabschnitt. Der Indikator besteht aus drei unterschiedlich farbigen Kurven, die standardmäßig die höchsten und niedrigsten Preise innerhalb von 20 Zyklen darstellen, um die Marktpreisschwankungen zu zeigen.

Wenn der Preis über die Spur geht, ist es ein Kaufsignal; wenn der Preis umgekehrt unter die Spur geht, ist es ein Verkaufssignal. Da sein Auf- und Abgang mit dem Höchst- und Mindestpreis berechnet wird, steigt und fällt der Preis in der Regel selten gleichzeitig über die Tunnellinie. In den meisten Fällen bewegt sich der Preis entweder auf oder ab der Spur oder zwischen der Spur und der Spur.

Die Berechnung des Dongjian Tunnels

In den Quantifizierungswerkzeugen der Erfinder ist die Berechnungsmethode des Dongjian-Kanals sehr einfach und kann direkt mit dem Höchst- oder Mindestpreis innerhalb des angegebenen Zyklus ermittelt werden.imgAbbildung 4-50

Strategische Logik

Es gibt viele Anwendungsmöglichkeiten des Dongjian-Kanals, die einzeln oder in Kombination mit anderen Indikatoren verwendet werden können. In diesem Abschnitt werden wir die einfachste Anwendungsmethode verwenden. Das heißt: Wenn der Preis von unten nach oben durchbricht, also die oberen Drucklinien durchbricht, denken wir, dass die Mehrparteienkräfte stärker werden, eine Welle von Aufschwung hat sich gebildet und ein Kauf-Offeneröffnungssignal erzeugt; Wenn der Preis von oben nach unten durchbricht, also die Unterstützungslinie bricht, denken wir, dass die oberen Kräfte stärker werden, eine Welle des Abwärtstrends hat sich gebildet und ein Verkaufseröffnungssignal erzeugt.imgSchaubild 4-51

Wenn der Preis nach dem Kauf in die offene Position zurück in den Mittelgang des Dongjian-Kanals fällt, denken wir, dass die Mehrparteienkraft schwächer wird oder die Oberflächenkraft stärker wird und ein Verkaufsplatzsignal erzeugt wird; wenn der Preis nach dem Verkauf der offenen Position wieder in den Mittelgang des Dongjian-Kanals fällt, denken wir, dass die Oberflächenkraft schwächer wird oder die Mehrparteienkraft stärker wird und ein Kauf-Platzsignal erzeugt wird.

Kauf- und Verkaufsbedingungen Mehrfachgeschäft: Wenn keine Lagerbestände vorhanden sind und der Verkaufspreis über dem Kurs liegtKauffreier Handel: Wenn keine Lagerbestände vorhanden sind und der Verkaufspreis unter dem Kurs liegtMehrfach-Platzierung: wenn mehrere Bestellungen gehalten werden und der Verkaufspreis unter dem Mittelwert liegtLeerstand: Wenn die Rechnung leer ist und der Verkaufspreis höher ist als der Mittelpreis

Implementierung der Strategiecode

Der erste Schritt zur Umsetzung der Strategie ist, zuerst Daten zu erhalten, da Daten der Voraussetzung für eine Handelsstrategie sind. Stellen Sie sich vor, welche Daten wir alle benötigen? und wie wir diese Daten erhalten?

Schritt 1: Die Transaktionslibrary nutzen

Sie können sich die Handelslibrary als ein Funktionsmodul vorstellen. Der Vorteil der Handelslibrary besteht darin, dass Sie sich darauf konzentrieren können, die Strategielogik zu schreiben. Zum Beispiel: Wenn wir eine Handelslibrary verwenden, können wir die folgenden API direkt in der Handelslibrary verwenden, wenn wir eine Position eröffnen.imgAbbildung 4-52

Die Abbildung oben ist das CTA-Rahmenwerkzeug, das mit den Quantifizierungswerkzeugen der Erfinder verwendet wird. Es ist ein festes Codeformat, in dem alle transaktionslogischen Codes von Linie 4 an geschrieben werden. Ansonsten werden keine Änderungen erforderlich.

Die Template-Klasse-Library für JavaScript ist eingebaut und Python benötigt eine Kopie, um diese zu speichern:https://www.fmz.com/strategy/24288Und dann wählen Sie auf der Politik-Edit-Seite einen Hinweis.

img

Zweiter Schritt: Verschiedene Daten erhalten

Wenn Sie sich genau überlegen, welche Daten Sie benötigen, dann sehen Sie aus unserer strategischen Handelslogik: Zuerst müssen Sie den aktuellen Haltestand erhalten, dann vergleichen Sie die Wechselbeziehung zwischen dem Schlusskurs und dem mittleren Kurs auf dem Brin-Band-Indikator, um zu beurteilen, ob der Markt kurz vor dem Schließen steht.

Erhalten von K-Line-Daten

Zunächst ist es notwendig, die K-Funktions-Array und den aktuellen K-Funktions-Schlusspreis zu erhalten, da die K-Funktions-Array die API zum Erhalt des höchsten oder niedrigsten Preises für N-Zyklen ermöglicht.imgAbbildung 4-53 Wie in der Grafik oben gezeigt: Zeile 4: Erhalten Sie die K-Strang-Array, die in einem festen Format ist. Zeile 5: Filtern Sie die Länge der K-String, denn wir berechnen den Höchst- oder Mindestpreis der N-Zyklen und die Parameter sind 50, und wenn die K-String kleiner als 50 ist, ist sie nicht berechenbar. Hier müssen Sie also die Länge der K-String filtern. Wenn die K-String kleiner als 50 ist, springen Sie diese Runde und warten Sie weiter auf die nächste K-String. Zeile 6: Wir verwenden den Code len ((records - 1) um zuerst die letzten Daten der K-Linien-Array, also die neuesten K-Linien-Daten, zu erhalten. Diese Daten sind ein Objekt, das die folgenden Daten enthält: Öffnungspreis, Höchstpreis, Mindestpreis, Schließpreis, Volumen, Zeit usw. Da es ein Objekt ist, verwenden wir direkt den Link.

Erhalten von Lagerbestandsdaten

Die Halteinformationen sind eine wichtige Voraussetzung für die Quantifizierung der Handelsstrategie. Bei der Erstellung der Handelsbedingungen müssen auch durch den Haltsstatus und die Anzahl der Halteinformationen beurteilt werden, ob eine Bestellung ausgeführt wird. Zum Beispiel: Bei der Erstellung der Kauf- und Öffnungsbedingungen muss eine Halte nicht wiederholt ausgeführt werden, wenn es eine Halte gibt; wenn es keine Halte gibt, kann eine Bestellung ausgeführt werden.imgSchaubild 4-54

Wie in der Grafik oben gezeigt: Dies ist eine Funktion, die Informationen zur Lagerhaltung erhält und 0 zurückgibt, wenn die Lagerhaltung leer ist; 1 zurückgibt, wenn mehrere Bestellungen vorhanden sind; 1 zurückgibt, wenn die Bestellungen leer sind. Zeile 2: Erstellen Sie eine Funktion mit dem Namen mp, die keine Parameter hat. Zeile 3: Erhalten Sie eine Lager-Array, die in einem festen Format ist. Zeile 4: Beurteilen Sie die Länge der Array, wenn ihre Länge gleich ist, dann ist es sicherlich eine leere Array, also gibt es 0 zurück. Zeile 6: Beginnen Sie mit der For-Lippe und gehen Sie durch die Array. Die nächste Logik ist sehr einfach. Wenn Sie mehrere Zahlen halten, kehren Sie 1; wenn Sie eine leere Zahlen halten, kehren Sie -1 zurück. Zeile 18: Aufruf der soeben geschriebenen Akquisitions-Holding-Information-Funktion mp.

Erhalten Sie die höchsten und niedrigsten Preise der letzten 50 K-Linien

In den Quantifizierungswerkzeugen der Erfinder kann man direkt mit der Ta.Highest Ta und der Ta.Lowest Ta-Funktion rechnen, ohne die Logik selbst zu schreiben. Und die Ta.Highest Ta und die Ta.Lowest Ta-Funktion geben konkrete Werte und keine Arrayen zurück.imgSchaubild 4-55

Wie in der Grafik oben gezeigt: Zeile 19: Aufruf der TA.Highest-Laser-Funktion, um den maximalen Wert des höchsten Preises von 50 Zyklen zu erhalten Zeile 20: Aufruf der TA.Lowest-Laserfunktion, um den Mindestwert für den Mindestpreis von 50 Zyklen zu erhalten Zeile 21: Das Durchschnittliche wird berechnet, basierend auf dem Maximum des Höchstpreises von 50 Zyklen und dem Minimum des niedrigsten Preises von 50 Zyklen

Schritt drei: Bestellgeschäft

Mit diesen Daten kann man die Transaktionslogik und den Code für die Transaktionen schreiben. Das Format ist auch sehr einfach. Am häufigsten wird die "if" -Sprache verwendet, die mit den Worten beschrieben werden kann:imgAbbildung 4-56

Wie in der Grafik oben gezeigt: Zeile 22: Verwenden Sie eine Transaktionsklasse, eine feste Form Zeile 23 und 24: Dies ist eine einfache Multiplikator-Sprache, in der wir mit den vorher gelernten Multiplikator-Vergleichs- und Multiplikator-Logik-Operationen alle Positionen ausgleichen, wenn wir mehr als eine Order halten und der Verkaufspreis kleiner als die Mittelkurve ist. Zeile 25, 26: Dies ist ein Satz für eine leere Liste, in dem wir mit den vorher gelernten Konzentrations-Vergleichs- und Konzentrations-Logik-Operationen alle Positionen ausgleichen, wenn die aktuelle Leere gehalten wird und der Schlusspreis größer als der Mittelpunkt ist. Zeile 27: Beurteilen Sie den aktuellen Lagerstand, wenn der Lagerstand leer ist, gehen Sie zum nächsten Schritt. Zeilen 28 und 29: Beurteilen Sie, ob der Schlusskurs größer ist als der Kurs. Wenn der Schlusskurs über dem Kurs liegt, kaufen Sie die Position ein. Zeilen 30 und 31: Beurteilen, ob der Schlusskurs unterhalb des Kurses liegt. Wenn der Schlusskurs unterhalb des Kurses fällt, verkaufen Sie die Position.

Zusammenfassung

Hier haben wir jeden Schritt zur Entwicklung einer vollständigen quantitativen Handelsstrategie in Python gelernt, einschließlich: Strategienübersicht, Berechnungsmethoden für Dongjian-Kanäle, Strategielogik, Kauf- und Verkaufsbedingungen, Strategiecode-Implementierung usw. Dieser Abschnitt ist nur eine einfache Strategie, als ein Quadrat, und es gibt mehr als eine Methode, mit der Sie verschiedene Handelsmethoden überlagern können, um Ihre eigene quantitativen Handelsstrategie zu bilden.

Nächste Nachricht

Bei der Entwicklung von Quantitative-Trading-Strategien ist es aus Sicht der Programmiersprachen, die schnellsten Ausführungsgeschwindigkeiten zu entwickeln, unerlässlich, welche Sprache am schnellsten ist. Insbesondere im Bereich der Derivate und HFT-Trading, wo C++ einzigartig ist und die Berechnung von Zahlen vorteilhaft ist, kann C++ die Geschwindigkeit gegenüber JavaScript und Python um mehrere Stufen steigern.

Hausaufgaben nach dem Unterricht

1. Beginnen Sie mit der Umsetzung der Strategie in diesem Abschnitt. 2. Versuchen Sie, der Strategie dieses Abschnitts einen glatten Indikator hinzuzufügen, um die Handelsfrequenz zu reduzieren.

Kapitel 5: Strategie-Rückprüfung, Debug und Verbesserung

5.1 Bedeutung und Fallen der Wiederholung

Zusammenfassung

Die Quantifizierung von Transaktionen unterscheidet sich am meisten von traditionellen Transaktionen. Sie basiert auf den tatsächlichen Marktdaten, die historisch bereits stattgefunden haben, und erstellt einen Bericht über die Performance in einem bestimmten Zeitraum.

Die Bedeutung der Rezension

In den vorhergehenden Kapiteln haben wir die Grundlagen der Mainstream-Programmiersprachen gelernt und Ihnen gezeigt, wie Sie diese Grundlagen nutzen können, um einige einfache Transaktionsstrategien zu schreiben. Es ist schon eine halbe Meile weit.

Aus der Sicht der quantitativen Handelslogik ist Strategie eine Strategie, die auf einer Reihe von Erkenntnissen und Annahmen über den Markt basiert. Rücktests können effizient feststellen, ob diese Annahmen zutreffen und stabil sind.

Aus der Sicht der quantitativen Transaktionsführung kann Retesting auch dazu beitragen, Bugs in der Strategielogik zu erkennen, wie z. B. Futures, Stealth, Multi-Fitness usw.

  • Es wird auch verwendet, um die Genauigkeit der Transaktionssignale zu überprüfen.
  • Überprüfen Sie, ob die Logik der Transaktion und Ihre Ideen funktionieren.
  • Es wurden Fehler in den Handelssystemen entdeckt und die ursprüngliche Strategie verbessert.

Die Bedeutung von Retesting ist daher, den tatsächlichen Handelsprozess mit historischen Daten so authentisch wie möglich zu erfassen, die Wirksamkeit der Strategie zu überprüfen, die teuren Kosten für falsche Strategien zu vermeiden und uns zu helfen, unsere Handelsstrategien auszufiltern, zu verbessern und zu optimieren.

Die Fallen der Wiederholung

Das Signal der Trap-Erkennung blinkt:

Die Handelsstrategie basiert auf statischen historischen Daten; die tatsächlichen Daten sind dynamisch. Zum Beispiel: Wenn der Höchstpreis größer ist als der Schlusspreis von gestern, kauft man eine Position. Die Bedingungen für die Eröffnung dieser Position sind, dass der Höchstpreis dynamisch ist, wenn die K-Linie noch nicht abgelaufen ist.

Die Zukunftsfunktion der Fallen:

Die Zukunft-Funktion ist ein Futures-Preis, d.h. die aktuelle Bedingung kann in der Zukunft geändert werden, so dass die Zukunft-Funktion auch die Ursache für das Signalblinken ist.

Wie in der folgenden Abbildung: Die Wörterumwandlungsfunktion zeigt die Wendepunkte von Spitzen und Wellen und kann ihre Wertschätzung entsprechend dem aktuellsten Echtzeitpreis anpassen, aber wenn sich der aktuelle Preis ändert, ändert sich auch das Ergebnis der Wörterumwandlungsfunktion. Wenn eine Funktion mit einer zukünftigen Funktion verwendet wird, kann das aktuelle Auftragssignal erstellt und ausgeführt werden, aber nach einiger Zeit kann das Signal nicht mehr gültig sein.imgAbbildung 5-1

Die Stehlpreise der Fallstricke

Der Begriff "Stealing" bezieht sich auf die Nutzung des vergangenen Preises für den Handel. Zum Beispiel: Wenn der höchste Preis größer ist als ein bestimmter Preis, dann wird er zum Eröffnungspreis gekauft.

Ein anderer Fall ist, wenn der Preis einen hohen Sprung gegenüber einem strategisch festgelegten Fixpreis macht, kann er bei der Rückprüfung zu einem Fixpreis gehandelt werden, der jedoch im realen Handel offensichtlich nicht erkauft werden kann.

Rechnen Sie den unmöglichen Preis für eine Falle

Der Preis, der nicht verhandelt werden kann, kann in verschiedene Situationen eingeteilt werden: Die erste: In der realen Display-Präsenz kann man normalerweise nicht kaufen, umgekehrt kann man auch fallen.

Die zweite Art: Der Börsen-Shooting-Mechanismus ist: Preis priorisiert, Zeit priorisiert. Einige Sorten von Aufschlüssen haben oft große Bestellungen. Wenn man im echten Geschäft einkauft, muss man warten, bis der Aufschlag dick ist, um eine Transaktion abzuschließen.

Drittens: Wenn es sich um eine Leitzinsstrategie handelt, ist der Rückwärtstrend sehr hoch, da bei der Rückwertung jedes Mal davon ausgegangen wurde, dass diese Preisunterschiede ergriffen wurden. In der Realität können viele Preisunterschiede nicht ergriffen werden oder nur ein Bein erfasst werden, das im Allgemeinen sicherlich in Ihrer Richtung ungünstig ist. Dann müssen Sie sofort das andere Bein füllen.

Der vierte Typ: Schwarze Schwan-Ereignisse. Wie in den folgenden Roten Kreisen, in der Forex-Schwan-Ereignisse, obwohl auf den Oberflächen zu sehen, dass die Eröffnung Preis, Höchstpreis, Mindestpreis, Schließpreis, in der Tat in den extremen Markt des Tages, der mittlere Preis ist ein Vakuum, eine große Anzahl von Stop-Loss-Orders, die zu Treten Ereignisse, die Liquidität ist null, die Transaktionsschwierigkeit ist sehr groß, aber in der Rückprüfung kann ein Stop-Loss.imgAbbildung 5-2

Übermäßige Anpassung der Fallen

Jedes Mal, wenn ich die Grafik unten sehe, denke ich: Ha-ha-ha... Man sieht an dieser Grafik, dass ein absurdes Modell, wenn es komplex genug ist, perfekt zu den Daten passt.imgAbbildung 5 bis 5

Bei quantitativen Transaktionen basiert die Rückkopplung auf historischen Daten, aber die Sammlung von historischen Daten ist begrenzt, wenn die Parameter der Handelsstrategie zu hoch sind oder die Handelslogik zu komplex ist, was dazu führt, dass die Handelsstrategie zu stark an die historischen Daten angepasst wird.

Der Modellierungsprozess für quantitative Strategien ist im Wesentlichen ein Prozess der Suche nach lokalen, nicht-randomisierten Daten aus einer großen Menge von scheinbar zufälligen Daten, die ohne statistische Kenntnisse leicht in die Falle einer übermäßigen Anpassung geraten.

Also, täuschen Sie sich nicht. Wenn Sie feststellen, dass die Daten außerhalb der Probe nicht gut funktionieren, sich zu traurig fühlen, das Modell zu verlieren, oder nicht bereit sind, zuzugeben, dass das Modell nicht funktioniert, und weiterhin mit den Daten optimieren, bis die Daten außerhalb der Probe genauso gut funktionieren, dann ist die letzte Verletzung sicherlich Ihr Gold-Silber-Modell.

Überlebende von Fallen nachweisen

Die Wall Street-Witzgeschichte lautet: Angenommen, es gibt 1.000 Monkeys, die an einem Markt teilnehmen, und im ersten Jahr werden 500 Monkeys ausgeschaltet, die an der Börse verlieren. Im zweiten Jahr werden die Hälfte ausgeschaltet und es bleiben 250 Monkeys.imgAbbildung 5-4

In der neunten Klasse hatte ich nur noch einen Schwanz. Dann sah ich nach links und rechts, und ich fühlte mich total verwirrt. Als ich das letzte Cover von Financial Times sah, dachte ich: "Oh, oh, das ist Buffett!"

Natürlich ist das nur ein Witz, aber haben Sie jemals darüber nachgedacht, dass, wenn es 1000 Fondsmanager gibt, in 10 Jahren etwa 10 Fondsmanager 10 Jahre lang die Märkte in Folge gewinnen werden?

Wie in der Abbildung auf der linken Seite, ist die Überwiegende Mehrheit der Anleger zuversichtlich, dass die Ergebnisse der Überprüfung glänzen werden.imgSchaubild 5-5

Und langsam, wie die Abbildung rechts zeigt, ist die wahre Situation darin. Die ursprünglich links liegende Retestkurve ist nur die beste von vielen Retests. Das heißt, hinter der Linken gibt es viele schlechtere Situationen.

Die Kosten für den Aufprall der Fallen wieder berechnen

In einer realen Handelsumgebung ist der Preis ständig fluktuierend, und wenn Sie eine Handelsmöglichkeit sehen, kann es sein, dass sich der Preis bereits geändert hat, sobald Sie eine Bestellung aufgeben. So sind Gleitpunkte unabwendbar, sowohl im subjektiven als auch im quantitativen Handel.

Die Rückmeldung basiert jedoch auf statischen Daten und ist schwierig, die reale Handelsumgebung zu simulieren. Zum Beispiel: Der Auftragspreis ist 1050 Kauf, aber der tatsächliche Transaktionspreis kann 1051 sein. Es gibt viele Gründe, warum dieses Phänomen auftritt, z. B. extreme Marktflüssigkeitsvakuum, Netzwerkverzögerung, Hardware-Software, Serverantwort usw.

Rückprüfung ohne Gleitpunkt

imgSchaubild 5-6

Wie oben gezeigt, ist es ein nicht-schieberücksichtiger Rückgang, die Kapitalkurve sieht eher gut aus, aber der tatsächliche Handelspreis im realen Handel unterscheidet sich von dem idealen Handelspreis der Strategie-Rücksicht. Um diesen Fehler zu verringern, können bei der Strategie-Rücksicht zwei Schieberücksichtspunkte eingerichtet werden, um den Kaufpreis zu erhöhen oder den Verkaufspreis zu senken.

Zusätzlich zur Rückprüfung der Gleitpunkte

imgSchaubild 5-7

Wie oben dargestellt, ist die gleiche Strategie, wenn die Ergebnisse der Retestung nach dem Hinzufügen von 2 Sprungpunkten stark von den Ergebnissen der Retestung ohne Sprungpunkte abweichen, dann bedeutet dies auch, dass diese Strategie verbessert oder ersetzt werden muss.

Zusammenfassung

Einer von Ihnen fragt sich vielleicht, wie ich beweisen kann, dass meine Strategie problemlos ist, da es so viele Probleme mit der Quantifizierung von Transaktionen geben kann. Die Antwort ist einfach: Es muss eine gewisse Zeit dauern, bis die Strategie funktioniert.

Trotzdem ist Retesting ein Muss für einen erfahrenen Entwickler eines Handelssystems, denn es kann Ihnen sagen, ob eine Strategie-Idee im historischen Handel nachgewiesen werden kann. Aber oft bedeutet Retesting nicht, dass es in Zukunft profitabel sein wird.

Hausaufgaben nach dem Unterricht

1. Was ist Überanpassung und wie kann man sie vermeiden? 2. Welche Überlebenden sind in der Realität pervers?

5.2 Wie kann man eine Quantitative Transaktionsrückprüfung durchführen?

Zusammenfassung

Die Bedeutung und Wichtigkeit der Quantifizierung ist zweifelsohne, wenn man eine Quantifizierung durchführt, sollte man die Strategie so weit wie möglich in der realen Umgebung der Geschichte halten. Wenn man die Details in der historischen Umgebung ignoriert, kann dies dazu führen, dass die gesamte Quantifizierung ungültig ist.

Die Rezension ist eine Art Datenrückgabe, bei der man Kauf und Verkauf tätigt, indem man die historischen K-Liniendaten zurückführt und echte Handelsregeln simuliert, um schließlich Sharpe-Ratio, Maximum-Rückzahlungsrate, Jahresrendite, Kapitalkurve usw. Daten über einen bestimmten Zeitraum zu sammeln. Es gibt viele Softwareprogramme, die Rezensionen durchführen können.

Als kommerzielle Quantitative-Trading-Software, die mit einer leistungsstarken Retrospektiv-Engine ausgestattet ist, nutzt der Erfinder einen for-loop Retrospektiv-Framework, um die Quantifizierung zu erleichtern.

Einführung in die Testoberfläche

Als Beispiel für die Methode der Quantifizierung der Sprache der Erfinder haben wir eine Website für die Entwicklung von Quantifizierungstransaktionswerkzeugen entwickelt.www.fmz.comKlicken Sie auf die folgenden Seiten: Kontrollzentrum, Politik-Lebensraum, Wählen Sie eine Strategie, Analogie-Rückprüfung:imgSchaubild 5-8

In der Retest-Konfigurationsoberfläche können Sie Ihre Anforderungen anpassen. Sie können z. B. die Retestzeit, die K-Linienzyklen, die Datentypen (Analog-Daten oder Festplatten-Daten) festlegen.

Die Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der Methode der MethodeimgSchaubild 5-9

Die Anzahl der Default-Offener ist die Anzahl der geöffneten Positionen bei der Rückmessung. Die maximale Einzeltragsmenge ist die maximale Anzahl der geöffneten Positionen, die der Rückmessmaschine beauftragt wird. Es gibt eine Abweichung zwischen dem Transaktionspreis auf der Echtplatte und dem vorgegebenen Transaktionspreisbereich.

Die Futures-Option enthält die Art des Vertrags, den Sie zurückfordern möchten, wie z. B. rb000 oder rb888. Die Festplattenoption wird hauptsächlich für den Handel auf dem Festplattenmarkt verwendet und kann bei der Rückforderung als Default eingesetzt werden. Wenn der automatische Wiederherstellungsprozeß auf True geklickt wird, wird der Roboter automatisch wiederhergestellt, ohne dass die Signalrechnung erforderlich ist.imgSchaubild 5-10

Die Default-Option für Default-Trading ist vor allem für den Handel mit digitalen Währungen vorgesehen. Sie können die Anzahl der Transaktionen, das Mindestvolumen, die Preispräzision, die Präzision der Transaktionssorte, die Verfahrensgebühren, die Zeitsynchronisierung von Konten, die Gewinn-Verlust-Statistikintervalle usw. sowie die Hebelmengen und andere entsprechende Einstellungen für einzelne digitale Währungsexchanges angeben.imgSchaubild 5-11

Strategie-Rückprüfung

Bevor Sie Ihre Handelsstrategie überprüfen, müssen Sie sich mit der Thermostat-Thermostat-Strategie auskennen, die sich in einem Trendmarkt und in einem Turbulenzmärkten entsprechend dem Marktzustand entwickelt.imgSchaubild 5-12 In der Analog-Retest-Schnittstelle, die die Retest-Einstellungen konfiguriert, klicken Sie direkt auf die Start-Retest-Schaltfläche, und nach einigen zehn Sekunden werden die Retest-Ergebnisse sofort angezeigt. Im Retest-Log werden die Sekunden, in denen die Retest-Nutzung, die Gesamtregisterzahl und die Anzahl der Transaktionen aufgezeichnet.imgAbbildung 5-13

In der Status-Informations-Tabelle werden die Handelssorten, die Bestandsmenge, die Bestandspreise, die neuesten Preise, die Art der letzten Signale, die höchsten und niedrigsten Preise nach dem Halten, die Anzahl und Zeit der Aktualisierungen sowie die Finanzinformationen aufgezeichnet. Außerdem werden im Floating Loss-Label die detaillierten Kapitalkurven des Kontos angezeigt, einschließlich der häufig verwendeten Performance-Indikatoren: Ertragsrate, Jahresrendite, Sharpe-Rate, Maximal-Jahresfluktuationsrate, Rückziehungsrate, die im Wesentlichen den Bedürfnissen der überwiegenden Mehrheit der Benutzer entsprechen.

Der wichtigste Performance-Indikator ist der Sharpe-Ratio. Es ist ein umfassender Indikator, der sowohl die Gewinne als auch die Risiken berücksichtigt, aber auch ein wichtiger Referenzindikator für die Messung eines Fondsprodukts.

Die jährliche Volatilitätsrate ist, wie sie heißt, die tägliche Volatilitätsrate x die Anzahl der Handelstage pro Jahr. Sie misst das Risiko des Fonds, aber absolut nicht das gesamte Risiko. Zum Beispiel Strategie A hat eine hohe Volatilität, schwankt aber immer nach oben, die Rendite ist gut, Strategie B hat eine geringe Volatilität, aber bleibt stetig.imgSchaubild 5-14

Schließlich wird in der Login-Informationsfläche detailliert aufgezeichnet, wie jede Transaktion bei der Nachprüfung aufgenommen wurde, einschließlich der Zeit, der Börse, der Art der Verkaufs- und Verkaufsgeschäfte, der Preis, den die Login-Informationsmaschine aufgenommen hat, der Anzahl der Transaktionen und der Druckinformationen.imgSchaubild 5-15

Nach der Wiederholung

In vielen, wenn nicht sogar in den meisten Fällen, sind die Ergebnisse der Rückprüfung weit von den eigenen Erwartungen entfernt. Schließlich ist eine Strategie, die langfristig langfristig stabil und profitabel ist, nicht so einfach zu erreichen, es erfordert Ihre Marktkenntnis.

Es ist normal, wenn Sie Ihre Strategie wieder überprüfen, wenn Sie Geld verlieren. Zuerst prüfen Sie, ob die Strategielogik falsch geschrieben ist, ob Sie extreme Parameter angewendet haben, ob Sie zu viele Ausgangskonditionen haben usw. Wenn nötig, können Sie Ihre Handelsstrategie und Ihre Handelsideen aus einer anderen Perspektive überprüfen.

Wenn Ihre Strategie sehr gut nachgewiesen wird, die Kapitalkurve sehr perfekt ist und die Sharpe-Ratio über 1 oder mehr ist.

Zusammenfassung

Das ist ein Überblick über den gesamten Prozess der Rückprüfung der gesamten Handelsstrategie, die bis zu jedem Detail detailliert ist. Es ist zu beachten, dass die historische Datenrückprüfung schließlich ein ideales Umfeld ist, in dem alle Risiken bekannt sind. Daher ist es am besten, eine Runde eines Bullen-Bärenmarktes zu durchlaufen, wobei die Anzahl der effektiven Transaktionen nicht weniger als 100 Mal sein sollte, um eine teilweise Überlebenden-Abweichung zu vermeiden.

Die Märkte sind immer in Veränderung und Evolution, eine gute Strategie, die in der Vergangenheit zurückgeführt wurde, ist nicht garantiert, dass sie in Zukunft hervorragend sein wird. Eine Strategie kann nicht nur mit den bekannten Risiken in der Rückverfolgungsumgebung umgehen, sondern auch mit den unbekannten Risiken in der Zukunft. Daher ist eine Erhöhung der Risikobereitschaft und Allgegenwart der Strategie sehr notwendig.

Hausaufgaben nach dem Unterricht

1. Versuchen Sie, die Strategien in diesem Abschnitt zu kopieren und die Leistungsberichte zu überprüfen 2. Versuchen Sie, die Strategien in diesem Abschnitt aus eigener Erfahrung zu verbessern und zu optimieren

5.3 Wie kann man die Strategie-Retest-Leistungsberichte lesen?

Zusammenfassung

Wenn unsere Strategie-Rückprüfung abgeschlossen ist, werden die Erfinder von Quantifizierungsträgern auf der Webseite eine Ausgabe mit verschiedenen Leistungsindikatoren, Ertragskurvendiagrammen ausgeben. Aber vielleicht, weil wir mit der Definition und dem Inhalt dieser Indikatoren nicht so vertraut sind, dass wir nicht in der Lage sind, die Strategie zu bestimmen. Dieser Artikel beginnt mit den wichtigsten Indikatorenkonzepten, um Ihnen zu helfen, die Strategie-Rückprüfung-Leistungsberichte zu lesen und die Vor- und Nachteile der Strategie zu erkennen.

Eine objektive und vollständige Bewertung

Egal, ob es sich um Aufzeichnungen von Echtzeit-Transaktionsdaten handelt oder um Rücktestberichte mit historischem Back-Testing, die Vor- und Nachteile der Modelle werden durch Statistiken über die Transaktionssituation beurteilt.

Die Frage ist, mit welchen Statistiken wir vergleichen müssen. Zunächst einmal ein Beispiel: Wenn wir zwei Datenmengen in der gleichen Zeitspanne testen, können wir herausfinden, welches Modell besser abschneidet.imgSchaubild 5-16

Die Antwort lautet: Nein. Die Einseitigkeit des Bewertungssystems führt dazu, dass das Quantitative Trading System in die Hölle gerät.

Ein Handelssystem muss durch historische Rückkopplung in Betrieb genommen werden können. Ein Handelssystem, das nicht durch historische Rückkopplung in Betrieb genommen wird, kann nicht langfristig in tatsächlichen Geschäften profitieren.

Ein Trading-System, das historisch rücksichtsfähig ist, ist nicht unbedingt ein nützliches Trading-System, aber ein Trading-System, das nicht historisch rücksichtsfähig ist, ist nicht unbedingt ein nützliches Trading-System. Im Allgemeinen müssen wir die Performance-Berichte aus Sicht der Stabilität, Nachhaltigkeit und Erwartungsfähigkeit analysieren.imgAbbildung 5 bis 17

Wie oben gezeigt, ist es jedoch möglich, dass jeder, der mit Quantifizierung in Berührung kommt, diese langwierigen, schwer verständlichen Datenbegriffe für die Rückprüfung der Performance sieht, in denen sogar viele Daten widersprüchlich sind.

Die Performance-Indikatoren in der Abbildung können im Allgemeinen in verschiedene Kategorien unterteilt werden: Performance-Ratio, Zyklusanalyse, verschiedene Kurven, Extreme-Trading-Analyse usw. Auch aus der Sicht der Fondsprodukte sind die meisten von ihnen nur die Darstellung von Rückprüfungsergebnissen.

Wichtige Leistungsindikatoren

Maximaler Rückzug der Vermögenswerte (Max Drawdown)

Die Formel für die Maximalrückführung ist wie folgt:


Verwandt

Mehr

Hailhydra2Das ist ein toller Artikel!

Quantisierung der LeereMarkierung