Was gewinnen Sie, wenn Sie diesen Kurs besuchen? Zunächst einmal basiert dieser Kurs auf JavaScript und Python-Programmiersprachen. Sprache ist nur eine Technologie. Schließlich sollten wir diese Technologie in eine Branche anwenden. Quantitative Trading ist eine aufstrebende Branche, die sich derzeit in einer schnellen Entwicklungsphase befindet und eine große Nachfrage nach Talenten hat.
Durch das systematische Lernen dieses Kurses können Sie ein tieferes Verständnis für den Bereich des quantitativen Handels haben. Wenn Sie ein Student sind, der sich auf den Bereich des quantitativen Handels vorbereitet, wird es Ihnen auch helfen. Wenn Sie ein Aktien- oder Futures-Investment-Enthusiast sind, kann der quantitative Handel Ihrem subjektiven Handel helfen. Durch die Entwicklung von Handelsstrategien können Sie auf dem Finanzmarkt Gewinne erzielen und auch die Kanäle und Plattformen für Ihre Investition und Finanzmanagement erweitern.
Vorher möchte ich über meine persönliche Handelserfahrung sprechen. Ich bin kein Finanzfachmann, ich habe Statistik studiert. Zuerst begann ich in meinen Schuljahren subjektiv mit Aktien zu handeln. Später wurde ich ein quantitativer Handelspraktiker von inländischen Private Equity-Fonds, hauptsächlich in der Strategieforschung und Strategieentwicklung tätig.
Ich bin seit mehr als zehn Jahren in diesem Kreis tätig und habe verschiedene Arten von Strategien entwickelt. Meine Anlagephilosophie lautet: Risikokontrolle steht über allem und konzentriert sich auf absolute Renditen. Das Thema unseres Themas lautet: vom quantitativen Handel bis zum Asset Management - CTA-Strategieentwicklung für absolute Rendite.
Einige fragen sich vielleicht, was ein CTA ist? Was genau ist ein CTA? Ein CTA wird im Ausland als Rohstoffhandelsberater und in China als Investmentmanager bezeichnet. Der traditionelle CTA besteht darin, die Mittel der Mehrheit der Anleger zu sammeln, sie dann professionellen Investmentinstitutionen anzuvertrauen und schließlich durch Handelsberater (d. h. CTA) in Aktienindex-Futures, Rohstofffutures und Treasury Bond-Futures zu investieren.
Aber in der Tat, mit der kontinuierlichen Entwicklung und Erweiterung des globalen Futures-Marktes, ist das Konzept von CTA auch erweitert, und sein Umfang ist weit über die traditionellen Futures hinaus. Es kann nicht nur in den Futures-Markt investieren, sondern auch in den Zinsmarkt, die Börse, den Devisenmarkt und den Optionsmarkt. Solange es eine bestimmte Menge an historischen Daten für diese Vielfalt gibt, kann es entsprechende CTA-Strategien auf der Grundlage dieser historischen Daten entwickeln.
Bereits in den 1980er Jahren war die elektronische Handelstechnologie noch nicht ausgereift. Zu dieser Zeit beurteilten die meisten Händler den zukünftigen Trend von Rohstoff-Futures, indem sie technische Indikatoren manuell zeichneten, wie William-Index, KDJ, RSI, MACD, CCI usw. Später gründeten Händler einen speziellen CTA-Fonds, um Kunden bei der Verwaltung von Vermögenswerten zu unterstützen. Erst mit der Popularisierung des elektronischen Handels in den 1980er Jahren begann der echte CTA-Fonds zu erscheinen.
Veränderungen der Größe der CTA-Fondsverwaltung
In Milliarden von Dollar
Die Größe der globalen CTA-Fonds ist insbesondere mit dem Aufstieg des quantitativen Handels von 130,6 Milliarden US-Dollar im Jahr 2005 auf mehr als 300 Milliarden US-Dollar im Jahr 2015 gestiegen.
Der Barclay CTA Index ist ein repräsentativer Branchenbenchmark für globale Rohstoffhandelsberater. Von Ende 1979 bis Ende 2016 betrug die kumulative Rendite des Barclay CTA Fund Index bis zu 28,95 Mal, die jährliche Rendite lag bei 9,59%, die Sharp-Ratio lag bei 0,37 und die maximale Auszahlung lag bei 15,66%.
Denn im Asset Allocation Portfolio unterhält die CTA-Strategie in der Regel eine sehr geringe Korrelation mit anderen Strategien. Wie im roten Kreis unten zu sehen ist, fiel der Barclay CTA-Fondsindex während des globalen Börsenbärenmarktes von 2000 bis 2002 und der globalen Subprime-Krise 2008 nicht nur nicht, sondern erzielte auch positive Renditen. Als der Aktienmarkt und der Anleihemarkt in der Krise waren, konnte CTA starke Renditen liefern. Außerdem können wir sehen, dass das Gewinnniveau des Barclay Commodity CTA-Index seit 1980 stärker war als der S&P 500 und der Rückzug auch viel niedriger ist als der S&P 500.
Die Entwicklung der CTA in China hat sich erst in den letzten zehn Jahren vollzogen, aber die Dynamik ist sehr stark. Dies ist vor allem auf das relativ offene Handelsumfeld der inländischen Rohstoff-Futures, die niedrige Schwelle der Handelsfonds, die Verwendung des Margin-Systems für den Handel in Long- und Short-Positionen, die niedrigen Transaktionskosten, die fortschrittlichere technische Struktur der Börse im Vergleich zu Aktien und den einfacheren Systemhandel zurückzuführen.
Seit 2010 existieren CTA-Fonds hauptsächlich in Form von privaten Fonds. Mit der allmählichen Öffnung des Anlagegrundes des Fondsspezialkontos in der Innenpolitik begannen CTA-Fonds in Form eines Fondsspezialkontos zu existieren.
CTA-Strategien eignen sich auch für einzelne Händler besser als andere Handelsstrategien in Bezug auf Eintrittsfreundlichkeit, Kapitalschwelle, Ausführung von Handelsstrategien und API-Konnektivität. Inländische Futures-Kontrakte sind sehr klein. Zum Beispiel kann Mais oder Sojabohnenmehl für Tausende von Yuan gehandelt werden, und es gibt fast keine Kapitalschwelle. Außerdem ist es relativ einfach, da einige CTA-Strategien aus traditioneller technischer Analyse stammen, im Vergleich zu anderen Strategien.
Der Designprozess der CTA-Strategie ist auch relativ einfach. Zuerst werden die historischen Daten zunächst verarbeitet und dann in das quantitative Modell eingegeben. Das quantitative Modell umfasst die Handelsstrategie, die durch mathematische Modellierung, Programmierdesign und andere Tools gebildet wird, und das Handelssignal wird durch Berechnung und Analyse dieser Daten generiert. Natürlich ist es in der tatsächlichen Entwicklung nicht so einfach wie das obige Diagramm. Hier geben wir Ihnen nur ein Gesamtkonzept.
Aus der Sicht der Handelsstrategie ist die CTA-Strategie auch diversifiziert: Es kann sich um eine Trendstrategie oder eine Arbitrage-Strategie handeln; Es kann sich um eine mittel- und langfristige Strategie mit großer Laufzeit oder eine kurzfristige Intraday-Strategie handeln; Die Strategie-Logik kann sich auf technische Analyse oder Fundamentalanalyse stützen; Es kann sich um eine subjektive Transaktion oder eine Systemtransaktion handeln.
CTA-Strategie hat verschiedene Klassifizierungsmethoden. Gemäß der Transaktionsmethode kann sie in subjektive Transaktionen und Systemtransaktionen unterteilt werden. Die Entwicklung der ausländischen CTA-Strategie ist relativ fortgeschritten, und die CTA-Strategie der Systemtransaktionen ist nahe bei 100%. Gemäß der Analysemethode kann sie in grundlegende Analyse und technische Analyse unterteilt werden. Gemäß der Einkommensquelle kann sie in Trendhandel und Oszillationshandel unterteilt werden.
Im Allgemeinen macht die CTA-Strategie etwa 70% des gesamten Handelsmarktes aus, die Trendstrategie etwa 25% und die Gegentrend- oder Trendumkehrstrategie etwa 5% aus.
Derzeit gibt es auf dem Markt zwei Hauptströmungs-Hochfrequenz-Handelsstrategien: eine ist die Hochfrequenz-Marktmachungsstrategie, die andere ist die Hochfrequenz-Arbitrage-Strategie. Die Marktmachungsstrategie besteht darin, Liquidität auf dem Handelsmarkt bereitzustellen. Das heißt, auf dem Handelsmarkt mit einem Market Maker muss der Market Maker sicherstellen, dass sein Auftrag gehandelt werden kann, wenn jemand handeln möchte. Wenn auf dem Markt nicht genügend Liquidität vorhanden ist und der Auftrag nicht gehandelt werden kann, muss der Market Maker den Auftrag der Gegenpartei kaufen oder verkaufen.
High Frequency Arbitrage bezieht sich auf den Handel mit zwei stark korrelierten Aktien oder ETF und ETF-Portfolio. Gemäß der Berechnungsmethode von ETF kann der erwartete Preis eines ETF auf die gleiche Weise berechnet werden. Der ETF-Indexpreis kann den erwarteten Preis des ETF subtrahieren, um einen Preisunterschied zu erhalten. Normalerweise läuft der Preisunterschied in einem Preiskanal. Wenn der Preisunterschied durch die oberen und unteren Kanäle bricht, können Sie den Preisunterschied handeln, auf die Rückkehr des Preisunterschieds warten und davon Einkommen erzielen.
Im wörtlichen Sinne kann es, solange es keine Position über Nacht gibt, als Intraday-Handelsstrategie bezeichnet werden. Aufgrund der kurzen Haltedauer des Intraday-Handels ist es normalerweise unmöglich, sofort nach dem Markteintritt Gewinne zu erzielen und dann schnell den Markt zu verlassen. Daher birgt dieser Handelsmodus ein geringes Marktrisiko. Da sich der Markt jedoch in kurzer Zeit schnell ändert, hat die Intraday-Strategie in der Regel höhere Anforderungen an Händler.
In der Theorie ist die strategische Kapazität umso größer, je länger die Haltedauer ist und je niedriger die Risiko-Rendite-Ratio ist. Insbesondere bei institutionellen Transaktionen können aufgrund der begrenzten Kapazität von kurzfristigen Strategien große Fonds nicht in kurzer Zeit in den Markt gelangen und aussteigen, daher werden langfristige Strategien zugewiesen. Im Allgemeinen beträgt die Positionsdauer mehrere Tage und Monate oder sogar länger.
Im Allgemeinen wird die CTA-Strategie mit Minuten-, Stunden- und Tagesdaten untersucht, zu denen folgende gehören: Eröffnungspreis, höchster Preis, niedrigster Preis, Schlusspreis, Handelsvolumen usw. Nur wenige CTA-Strategien verwenden Tick-Daten, wie Kaufpreis, Verkaufspreis, Kaufvolumen, Verkaufvolumen und andere detaillierte Daten in L2-Daten.
Was die Grundidee der CTA-Strategie angeht, so basiert das erste, woran wir denken, auf traditionellen technischen Indikatoren, denn es gibt viele öffentliche Referenzmaterialien in diesem Bereich, und die Logik ist in der Regel einfach, von denen die meisten auf statistischen Prinzipien basieren.
Es gibt auch einige klassische Handelsmodelle auf dem Markt, die auch als Referenz verwendet und verbessert werden können, darunter: mehrfache gleitende Durchschnittskombination, DualThrust, R-Breaker, Turtle-Handelsmethode, Grid-Handelsmethode usw.
All dies sind Handelsstrategien, die auf traditioneller technischer Analyse basieren. Der Prozess besteht darin, Faktoren oder Handelsbedingungen mit Wahrscheinlichkeitsvorteilen nach historischen Daten und korrekten Handelskonzepten zu extrahieren und davon auszugehen, dass der Markt in Zukunft noch solche Gesetze haben wird. Schließlich wird die Handelsstrategie durch Code und vollautomatischen Handel realisiert. Offene Positionen, Stop-Gewinne, Stop-Verluste, Erhöhung von Positionen, Verringerung von Positionen usw., die im Allgemeinen kein manuelles Eingreifen erfordern.
Der größte Vorteil der CTA-Strategie ist, dass sie unabhängig davon, ob der aktuelle Markt steigt oder fällt, absolute Renditen erzielen kann, insbesondere wenn sich der Markt schnell ändert oder der Markttrend offensichtlich glatt ist, der Vorteil der Strategie ist offensichtlich, kurz gesagt, wenn es einen Trend gibt, gibt es einen Gewinn. Wenn sich der Markt jedoch in einer volatilen Situation befindet oder der Trend nicht offensichtlich ist, kann die Strategie an einem hohen Punkt kaufen und an einem niedrigen Punkt verkaufen und den Verlust hin und her stoppen.
Die Futures-CTA-Strategie ist vor allem aufgrund folgender Punkte rentabel:
Darüber hinaus ist das Handelsmerkmal des Trend-Tracking, eine kleine Menge Geld zu verlieren, wenn es keinen Markt gibt, und ein großes Vermögen zu machen, wenn der Markt kommt. Menschen, die den Handel gemacht haben, wissen jedoch, dass der Markt die meiste Zeit volatil ist und nur in einer kleinen Zeit der Trendmarkt ist. Daher hat die Trend-Tracking-Strategie eine niedrige Gewinnrate im Handel, aber der Gesamtgewinn und Verlust jeder Transaktion ist relativ groß.
Da die Trendverfolgungsstrategie in Bezug auf das Einkommen instabil ist, verwenden viele Anlageinstitute mehrere Sorten und Strategien, um ein Portfolio aufzubauen, das auch mit einer bestimmten Anzahl von Umkehrstrategien konfiguriert wird.
Korrelation zwischen CTA und traditionellen Vermögenswerten
In der Theorie werden verschiedene Strategien mit unterschiedlichen Stilen oder relativ geringer Korrelation manchmal die gleichen und manchmal unterschiedliche Handelssignale gleichzeitig geben, wenn sie mit verschiedenen Veränderungen der Marktpreise konfrontiert sind. Da sich mehrere Rendite-Kurven überschneiden, ergänzt sich die Gesamtrendite und die Rendite-Kurve wird flacher, wodurch die Volatilität der Rendite reduziert wird.
Aus der obigen Sicht kann man schließen, dass es besser ist, mehrere moderate Unterstrategien zu entwickeln, als eine Masterstrategie zu entwickeln. Wie können diese Strategien gesteuert werden? Hier können wir vom Zufallswaldalgorithmus im maschinellen Lernen lernen. Der Zufallswald ist kein unabhängiger Algorithmus, sondern ein Entscheidungsrahmen, der mehrere Entscheidungsbäume enthält. Er entspricht der Elternstrategie über der Unterstrategie des Entscheidungsbaumes. Der Unterstrategiecluster wird durch die Elternstrategie organisiert und gesteuert.
Als nächstes müssen wir eine Mutterstrategie entwerfen. Wir können die Liquidität, Rentabilität und Stabilität jeder Sorte auf dem gesamten Rohstoff-Futures-Markt bewerten, um das Rohstoff-Futures-Varietätsportfolio mit geringer Gewinnvolatilität auszuschließen, und dann ein branchenneutrales Screening durchführen, die allgemeine Volatilität durch die Branchendispersion des Portfolios weiter reduzieren und schließlich das tatsächliche Rohstoff-Futures-Multi-Varietät-Portfolio durch Marktwert-Matching für den Handel aufbauen.
Jede Variante kann auch mit Multiparameter-Strategien konfiguriert werden und kann die Parameterkombination mit guter Performance im Backtest auswählen. Wenn der Markttrend offensichtlich ist, werden die Multiparameter-Strategien im Allgemeinen konsistent abschneiden, was gleichbedeutend ist mit dem Hinzufügen von Positionen; Wenn der Markt in einer volatilen Situation ist, wird die Performance mehrerer Parameter-Sätze in der Regel inkonsistent sein, so dass sie Risiken absichern können, indem sie jeweils lang oder kurz gehen, was gleichbedeutend ist mit der Verringerung von Positionen. Dies kann die maximale Backtestrate des Portfolios weiter reduzieren, während die Gesamtrendite unverändert bleibt.
Newton sagte einmal: Wenn ich weiter sehe als andere, dann weil ich auf den Schultern von Riesen stehe.
Die auf dem Markt öffentlich verfügbaren CTA-Strategien umfassen die SMA-Strategie, die Bollinger-Band-Strategie, die Schildkrötenhandelsregeln, die Momentum-Strategie, die Arbitrage-Strategie usw. Quantitative Handelsstrategien haben eine Eigenschaft, dh sie werden langsam scheitern, sobald sie öffentlich gemacht werden.
Die Fundamentalanalyse muss sich nicht um die kurzfristige Preisentwicklung kümmern. Es wird angenommen, dass sich der Wert letztendlich im Preis widerspiegeln wird. Es geht mehr darum, die Faktoren hinter dem Preis zu analysieren, um festzustellen, wie viel die Vielfalt wert ist. Im Allgemeinen wird die Top-Down-Analyse-Methode angenommen: von Makrofaktoren, Vielfaltfaktoren und anderen Faktoren.
Wir können aus dem obigen Diagramm sehen, dass viele Faktoren die Rohstoffpreise beeinflussen, und diese Daten ändern sich ständig.
In der Tat ist die grundlegende Analyse von Rohstoff-Futures nicht, um alle Faktoren zu analysieren. Wir müssen nur die Kernelemente der grundlegenden Analyse zu erfassen, um die Regeln aus den komplexen Informationen herauszufinden.
Makroökonomische Daten sind komplex und veränderlich. Jeden Tag, jeden Moment werden viele wirtschaftliche Daten veröffentlicht, von der nationalen Politik, Zentralbanken, Investmentbanken, offiziell und inoffiziell. Neben der politischen und wirtschaftlichen Krise ist Makroanalyse ein gutes Gesprächsmaterial, aber nicht praktisch. Peter Lynch, ein berühmter Experte für Fondsmanagement in den Vereinigten Staaten, sagte einmal:
In der Fundamentalanalyse ist die Varieté-Analyse hauptsächlich die Analyse von Prämien und Rabatten, Angebot und Nachfrage, Rohstoffbestand, Industriegewinn usw. Es kann gesagt werden, dass die Beherrschung der Varieté-Faktor-Analyse von Rohstoff-Futures den größten Teil des Markttrends beurteilen kann.
Wie Freunde, die Futures gemacht haben, wissen, können inländische Rohstoff-Futures einfach in Industrieprodukte und landwirtschaftliche Produkte unterteilt werden. Die Analysemethoden von Industrieprodukten und landwirtschaftlichen Produkten sind unterschiedlich. Wir werden die beiden Aspekte von Angebot und Nachfrage erläutern. Bei Industrieprodukten ist das Angebot relativ stabil. Es sei denn, es gibt einen großen technologischen Durchbruch, ist es unwahrscheinlich, dass sich die Produktionskapazität in kurzer Zeit erheblich ändert. Daher ist der Hauptfaktor, der den Preis von Industrieprodukten beeinflusst, die Nachfrage. Die Nachfrage nach landwirtschaftlichen Produkten ist relativ stabil. Langfristig ändert sich die Nachfrage nach landwirtschaftlichen Produkten, aber kurzfristig neigt die Nachfrage nach landwirtschaftlichen Produkten dazu, stabil zu sein, so dass der Hauptfaktor, der den Preis von landwirtschaftlichen Produkten beeinflusst, die Versorgung ist.
Daher ist es nach den Gesetzen der Wirtschaft die Beziehung zwischen Angebot und Nachfrage, die den Preis von Gütern letztlich bestimmt. Theoretisch kann, solange die Daten von Angebot und Nachfrage erhalten werden können, der zukünftige Preis von Gütern bestimmt werden. Für Industrieprodukte sind die Angebotsdaten leicht zu erhalten, aber es ist schwierig, die Nachfragedaten zu erhalten. Für landwirtschaftliche Produkte sind die Nachfragedaten leicht zu erhalten und es ist schwierig, die Angebotsdaten zu erhalten.
In der Tat können wir weiter subtrahieren. Das gegenseitige Ergebnis von Angebot und Nachfrage auf dem Wirtschaftsmarkt ist Lagerbestand. Wir können die Stärke der Beziehung zwischen Marktangebot und Nachfrage anhand von Lagerbestandsdaten beurteilen. Wenn der Lagerbestand einer Ware sehr hoch ist, bedeutet dies, dass das Marktangebot größer ist als die Nachfrage, und der Rohstoffpreis sinkt unter der Voraussetzung, dass die externen Bedingungen unverändert bleiben. Wenn der Lagerbestand einer Ware sehr niedrig ist, bedeutet dies, dass die Marktnachfrage größer ist als das Angebot, und der Rohstoffpreis steigt unter der Voraussetzung, dass die externen Bedingungen unverändert bleiben.
Neben der Analyse des Rohstoffbestands müssen wir auch die Preisdifferenz zwischen dem Spotmarkt und dem Futuresmarkt analysieren, die auch Basisdifferenz genannt wird. Wenn der Futurespreis größer als der Spotpreis ist, nennen wir ihn die Futures-Prämie; Wenn der Futures-Preis kleiner als der Spotpreis ist, nennen wir ihn den Futures-Rabatt. Gemäß dem Futures-Liefersystem sollte der Futures-Preis am Lieferdatum dem Spotpreis entsprechen.
Unabhängig von der Prämie oder dem Rabatt sollte aufgrund der Einschränkungen des Futures-Liefersystems der Futures-Preis am Lieferdatum theoretisch dem Spot-Preis entsprechen.
Gemäß dem obigen Prinzip können wir Bestand und Basisdifferenz zur gleichen Zeit verwenden, um zukünftige Futurespreise zu bestimmen. Wenn der Bestand einer Ware niedrig ist und der Futurespreis viel niedriger ist als der Spotpreis, können wir beurteilen, dass die Nachfrage des Spotmarktes größer ist als das Angebot und die Wahrscheinlichkeit, dass der Spotpreis in Zukunft steigt, groß ist; Auch aufgrund des Futures-Liefersystems wird der Futures-Preis steigen, wenn sich der Lieferdatum nähert, und er wird dem Spotpreis entsprechen. Die Wahrscheinlichkeit, dass der Futures-Preis in Zukunft steigt, ist größer.
Schließlich beurteilen wir die wahrscheinliche Richtung des zukünftigen Preises anhand der Lager- und Basisdifferenz, aber es gibt keinen genauen Kauf- und Verkaufspunkt, so dass wir mit der technischen Analyse zusammenarbeiten müssen, um ein klares Signal für Ein- und Ausstieg zu geben.
Wenn es um Handelsstrategien geht, müssen wir über die repräsentativen Schildkrötenhandelsregeln sprechen. Die Schildkrötenhandelsregel stammt aus dem berühmtesten Experiment in der Geschichte des Handels. Richard Dennis, ein Rohstoffspekulant, möchte wissen, ob große Trader geboren oder ausgebildet werden. Zu diesem Zweck rekrutierte er 1983 13 Menschen und lehrte sie die grundlegenden Konzepte des Futures-Handels sowie seine eigenen Handelsmethoden und -prinzipien. Diese Studenten wurden
In den folgenden vier Jahren erreichten die Schildkröten einen durchschnittlichen jährlichen Zinssatz von 80%. Dennis bewies, dass Menschen mit wenig oder keiner Handelserfahrung mit einem einfachen System und Regeln zu ausgezeichneten Händlern werden können.
Nachdem die Wahrheit herauskam, stellten die Leute fest, dass die Turtle-Handelsregeln den optimierten Donchian-Kanal übernahmen und ATR-Indikatoren für das Positionsmanagement verwendeten.
Also, als nächstes, lassen Sie uns sehen, was die Schildkröten Handelsregeln sagen.
So können wir sehen, dass, obwohl die Schildkröten-Handelsregeln sehr einfach aussehen, in Wirklichkeit hat es einen echten Sinn des Prototypen des Handelssystems gebildet. Es umfasst alle Aspekte eines vollständigen Handelssystems, so dass kein Raum für Händler zu subjektiven phantasievollen Entscheidungen zu machen, die nur macht die Vorteile des programmierten Betriebs des Systems spielen, einschließlich: Ein- und Ausstiegsregeln, Fondsmanagement und Risikokontrolle, etc.
Der größte Vorteil der Schildkrötenhandelsmethode ist, dass sie uns hilft, eine Reihe von effektiven Handelsmethoden zu etablieren. Es ist eine Kombination aus Chargenöffnung, dynamischem Stop-Gewinn und Stop-Loss und der Trendfolgestrategie des Marktes, insbesondere der Verwendung von ATR-Wert und dem Konzept des Positionsmanagements, das sehr lernenswert ist. Natürlich hat sie auch ein gemeinsames Problem mit der Trendverfolgungsstrategie, dh schwimmendem Gewinn und Rücknahme. Es ist wahrscheinlich, dass alle schwimmenden Gewinne, die durch den Kauf der Gewinner erzielt werden, aufgrund der folgenden Welle scharfer Pannen ausgeschüttet werden. Sie ist im allgemeinen Trend sehr stark und nicht so gut wie erwartet im volatilen Markt.
Am Ende des letzten Jahrhunderts begann eine sehr erstaunliche Handelsmethode im Bereich der Finanzinvestitionen in den Vereinigten Staaten zu herrschen. Nach Tausenden von Menschen
Das Wort Chaos bezieht sich auf die Beschreibung des chaotischen Zustands des Universums ursprünglich. Seine Idee ist, dass das Ergebnis unvermeidlich ist, aber weil das vorhandene Wissen nicht das Ergebnis berechnen kann, weil die Berechnung selbst auch das Ergebnis verändert, kann das maximale oder minimale Ergebnis schließlich erscheinen, aber es gibt kein unvermeidliches Ergebnis. Dies ist sehr ähnlich dem Handelsmarkt. Die Teilnehmer ändern auch den Markt, wenn sie den Markt analysieren und kaufen und verkaufen. Der Markt hat ewige Variabilität. Wenn die Teilnehmer die neue Form des Marktes verstehen, versteht der Markt auch, dass er von den Teilnehmern anerkannt wird, so dass die Variation auftritt. Und es wird dazu neigen, sich in die unbekannte Richtung der Teilnehmer zu ändern. Es hat genug Weisheit, um zu verhindern, dass die Teilnehmer seine Veränderungsregeln fangen, dh der Markt ist nicht stabil, und das Verständnis der Vergangenheit des Marktes kann nicht die Zukunft darstellen.
Die Chaos-Operationsmethode ist eine komplette Reihe von Investitionsideen, Handelsstrategien und Ein- und Ausstiegssignalen, die von Bill Williams erfunden wurde. Derzeit nehmen viele Anleger in der Welt die Chaos-Operation an, um an Markttransaktionen teilzunehmen. Da die Entwicklung des chinesischen Finanzmarkts zurückbleibt und die Chaos-Theorie auch eine relativ neue Idee ist, studieren nur wenige Menschen in China die Chaos-Operationsmethoden. Da die Chaos-Operationsmethode eine Handelsstrategie mit hoher Universalität ist und auf fast alle Bereiche der Finanzinvestition angewendet werden kann, einschließlich Aktien, Anleihen, Futures, Devisen und digitaler Währung, verwendet dieser Kurs eine vereinfachte Version der Chaos-Strategie als Ausgangspunkt, um Ihr Anlagegewinn und Ihr Einkommen zu verbessern.
Wie der Name schon sagt, ist die theoretische Grundlage der Chaos-Operationsmethode die Chaos-Theorie, die vom Meteorologen Edward Lorenz vorgeschlagen wurde. Es war eine der größten wissenschaftlichen Entdeckungen Ende des 20. Jahrhunderts. Er stellte den berühmten "Schmetterlings-Effekt" vor. Bill Williams wandte die Chaos-Theorie kreativ auf den Bereich der Finanzinvestitionen an, kombinierte sie mit Fraktalgeometrie, nichtlinearer Dynamik und anderen Disziplinen und schuf eine Reihe sehr effektiver technischer Analyseindikatoren.
Die gesamte Chaos-Betriebsmethode besteht aus fünf Hauptdimensionen (technischen Indikatoren):
Alligator
Das Fraktal
Die Dynamik
Beschleunigung
Die Balancelinie
Die Alligator ist eine Reihe von Gleichgewichtslinien, die Fraktalgeometrie und nichtlineare Dynamik verwenden. Sein Wesen besteht darin, den exponentiell gewichteten gleitenden Durchschnitt zu erweitern, der eine Art Mittellinie ist, aber seine Berechnungsmethode ist etwas komplizierter als die gewöhnliche Mittellinie. Als nächstes schauen wir uns an, wie man den Alligator in MyLanguage definiert:
// Parameters
N1:=11;
N2:=21;
// Defining the price median
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;
// Alligator
Y^^SMA(REF(HL,N3),N4,1);
R:=SMA(REF(HL,N2),N3,1);
G:=SMA(REF(HL,N1),N2,1);
Zuerst definieren wir 2 externe Parameter N1 und N2, und berechnen dann den durchschnittlichen HL des höchsten Preises und des niedrigsten Preises entsprechend den externen Parametern, und berechnen dann den durchschnittlichen HL mit verschiedenen Parametern. Für Zähne ist es der Durchschnitt der mittleren Periode der Mittellinie, und der Kiefer ist der Durchschnitt der großen Periode der Mittellinie. In dieser Strategie verwenden wir den Kiefer.
In der Chaos-Operationsmethode wird ein Fraktalkonzept anschaulich definiert. Wir können eine Analogie machen: Öffnen Sie die Handfläche, mit den Fingern nach oben, der Mittelfinger ist das obere Fraktal, der linke kleinen Finger und der Ringfinger, und der rechte Zeigefinger und Daumen beziehungsweise, stellen die K-Linie ohne Rekordhoch dar. Ein Grundfraktal besteht aus diesen fünf K-Linien. Dann können Sie Fraktal mit folgendem Code definieren:
// Fractal
TOP_N:=BARSLAST(REF(H,2)=HHV(H,5))+2;
BOTTOM_N:=BARSLAST(REF(L,2)=LLV(L,5))+2;
TOP:=REF(H,TOP_N);
BOTTOM:=REF(L,BOTTOM_N);
MAX_YRG^^MAX(MAX(Y,R),G);
MIN_YRG^^MIN(MIN(Y,R),G);
TOP_FRACTAL^^VALUEWHEN(H>=MAX_YRG,TOP);
BOTTOM_FRACTAL^^VALUEWHEN(L<=MIN_YRG,BOTTOM);
Nachdem wir den Alligator- und Fraktalindex berechnet haben, können wir eine einfache Chaos-Operationsstrategie basierend auf diesen beiden Bedingungen schreiben und eine Gruppe von exponentiell gewichteten gleitenden Durchschnittslinien als Benchmarkpreis für die Berechnung des Alligator- und Fraktalindex verwenden. Natürlich wird die ursprüngliche chaotische Operationsstrategie komplexer sein. Der Code lautet wie folgt:
// If there are no current long position orders and the closing price rises above the upper fractal and the upper fractal is above the alligator, open a long position.
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// If there are no current short position orders and the closing price falls below the lower fractal and the lower fractal is below the alligator, open a short position.
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);
// Long positions are closed if the closing price falls below the jaws of the alligator.
C<Y,SP(BKVOL);
// Short positions are closed if the closing price rises above the jaws of the alligator.
C>Y,BP(SKVOL);
Um es einfacher zu verstehen, habe ich die detaillierten Kommentare direkt in den Code geschrieben.
Als nächstes sehen wir, wie die Ergebnisse dieses einfachen Chaos-Operation-Strategie-Backtests tatsächlich aussehen. Um den Backtest näher an das reale Marktumfeld zu bringen, wird die Provision auf das Doppelte des Wechselkurses eingestellt, und die Eröffnungs- und Schließpositionen unterliegen einem Gleitpunkt von jeweils zwei Sprüngen. Der Backtestdatentyp ist der Rebar-Index, und der Handelstyp ist der Rebar-Hauptkraftkontinuum mit einer festen Eröffnungsposition von 1 Lot. Nachfolgend ist der vorläufige Backtest-Leistungsbericht auf der 1-Stunden-Ebene.
Aus den Daten der Kapitalkurve und des Backtests ergab sich eine gute Performance der Strategie, und die Gesamtkapitalkurve war stetig nach oben. Seit Ende 2016 haben sich jedoch die Marktmerkmale der Stahlstahlsorten verändert, von einem einseitigen Trend hoher Volatilität zum breiten Volatilitätstrend. Aus Sicht der Kapitalkurve ist der Gewinn von 2017 bis heute offensichtlich schwach.
In einem Wort, die Essenz der Chaos-Operationsmethode ist es, einen Wendepunkt zu finden, ohne sich darum zu kümmern, wie der Markt läuft oder ob es ein wahrer oder falscher Ausbruch ist. Wenn er durch das Fraktal bricht, wird er direkt in den Markt eintreten. Versuche nie, den Markt vorherzusagen, sondern sei ein Beobachter und Nachfolger.
George Soros stellte 1987 in "The Alchemy of Finance" einen wichtigen Vorschlag vor: Ich glaube, dass die Marktpreise immer falsch sind, in dem Sinne, dass sie eine voreingenommene Sicht auf die Zukunft darstellen. Er glaubte, dass die Marktwirksamkeitshypothese nur eine theoretische Hypothese ist. In der Tat sind die Marktteilnehmer nicht immer rational und können zu jedem Zeitpunkt nicht alle Informationen vollständig erhalten und objektiv interpretieren. Darüber hinaus, auch wenn es sich um dieselben Informationen handelt, ist das Feedback aller anders. Das heißt, der Preis selbst enthält bereits die falschen Erwartungen der Marktteilnehmer, also ist der Marktpreis im Wesentlichen immer falsch. Dies kann die Gewinnquelle von Arbitragern sein.
Nach den oben genannten Prinzipien können wir wissen, dass in einem ineffektiven Futures-Markt der Grund, warum die Marktwirkung auf Lieferverträge in verschiedenen Perioden nicht immer synchron ist, und die Preisgestaltung nicht vollständig effektiv ist.
Wie die Rohstoff-Futures hat auch die digitale Währung ein Portfolio von Querschnitts-Arbitrage-Kontrakten. Zum Beispiel gibt es in der OKEX-Börse: ETC aktuelle Woche, ETC nächste Woche, ETC Quartal. Nehmen wir zum Beispiel an, dass die Preisdifferenz zwischen der aktuellen Woche von ETC und dem Quartal von ETC für eine lange Zeit bei etwa 5 bleibt. Wenn die Preisdifferenz an einem Tag 7 erreicht, erwarten wir, dass die Preisdifferenz in der Zukunft auf 5 zurückkehrt. Dann können wir ETC in dieser Woche verkaufen und ETC Quartal zur gleichen Zeit kaufen, um die Preisdifferenz zu verkürzen und umgekehrt.
Obwohl diese Preisdifferenz besteht, gibt es viele Unsicherheiten bei manueller Arbitrage aufgrund zeitaufwendiger manueller Operationen, schlechter Genauigkeit und der Auswirkungen von Preisänderungen. Der Charme der quantitativen Arbitrage liegt darin, Arbitragechancen durch quantitative Modelle zu erfassen und Arbitrage-Handelsstrategien zu formulieren, sowie Handelsorders automatisch an Börsen durch programmierte Algorithmen zu platzieren, um Chancen schnell und genau zu erfassen und Profite effizient und stabil zu erzielen.
Dieser Kurs wird Ihnen beibringen, wie Sie die FMZ Quant Trading Platform und den ETC-Futures-Kontrakt in der OKEX-Börse verwenden, um zu demonstrieren, wie Sie die sofortigen Arbitragemöglichkeiten nutzen, die Profite nutzen, die jedes Mal sichtbar sind, und die Risiken absichern können, die beim Handel mit digitalen Währungen mit einer einfachen Arbitragestrategie auftreten können.
Schaffung einer Zeitrahmenübergreifenden Arbitrage-Strategie für digitale WährungenSchwierigkeiten: Normal
Strategieumfeld
Strategie Logik
Die obige ist eine einfache logische Beschreibung der Querschnitts-Arbitrage-Strategie der digitalen Währung.
function Data() {} // Basic data function
Data.prototype.mp = function () {} // Position function
Data.prototype.boll = function () {} // Indicator function
Data.prototype.trade = function () {} // Order placement function
Data.prototype.cancelOrders = function () {} // Order withdrawal function
Data.prototype.isEven = function () {} // Processing single contract function
Data.prototype.drawingChart = function () {} // Drawing function
function onTick() {
var data = new Data(tradeTypeA, tradeTypeB); // Create a basic data object
var accountStocks = data.accountData.Stocks; // Account balance
var boll = data.boll(dataLength, timeCycle); // Calculate the technical indicators of boll
data.trade(); // Calculate trading conditions to place an order
data.cancelOrders(); // Cancel orders
data.drawingChart(boll); // Drawing
data.isEven(); // Processing of holding individual contract
}
//Entry function
function main() {
while (true) { // Enter the polling mode
onTick(); // Execute onTick function
Sleep(500); // Sleep for 0.5 seconds
}
}
Stellen Sie sich vor, wie unser Handelsprozess im Aufsichtshandel aussieht. Es gibt keinen wesentlichen Unterschied in den Systemtransaktionen. Es ist nichts anderes als das Erhalten von Daten, die Berechnung von Daten, die Platzierung einer Auftragstransaktion und die Verarbeitung nach der Platzierung einer Bestellung. Das gleiche gilt für das Programm. Zuerst führt das Programm die Hauptaufgabe in Zeile 20, die eine Konvention ist, aus. Wenn das Programm die Handelsstrategie vorverarbeitet (falls vorhanden), tritt es in den Endlosschleife-Modus, dh den Umfrage-Modus ein. Im Umfrage-Modus wird die OnTick-Funktion wiederholt ausgeführt.
Dann in der Funktion onTick, ist es unser Handelsprozess in der subjektiven Transaktion: zunächst erhalten Sie die Grundpreisdaten, dann erhalten Sie den Kontostand, dann berechnen Sie den Index, dann berechnen Sie die Handelsbedingungen und platzieren Sie die Bestellung, und schließlich die Verarbeitung nach der Bestellung, einschließlich der Annullierung der Bestellung, Zeichnung und Verarbeitung eines einzigen Vertrages.
Der Strategie-Rahmen kann leicht nach der Strategieidee und dem Transaktionsprozess aufgestellt werden.
Als nächstes müssen wir den notwendigen Detailcode im Strategie-Rahmen gemäß dem tatsächlichen Transaktionsprozess und den Transaktionsdetails ausfüllen.
var chart = {}
var ObjChart = Chart ( chart )
var bars = []
var oldTime = 0
var tradeTypeA = "this_week"; // Arbitrage A Contract
var tradeTypeB = "quarter"; // Arbitrage B Contract
var dataLength = 10; // Indicator period length
var timeCycle = 1; // K-line period
var name = "ETC"; // Currencies
var unit = 1; // Order quantity
function Data(tradeTypeA, tradeTypeB) { // Pass in arbitrage A contract and arbitrage B contract
this.accountData = _C(exchange.GetAccount); // Get account information
this.positionData = _C(exchange.GetPosition); // Get position information
var recordsData = _C(exchange.GetRecords); // Get K-line data
exchange.SetContractType(tradeTypeA); // Subscription arbitrage A contract
var depthDataA = _C(exchange.GetDepth); // Depth data of arbitrage A contract
exchange.SetContractType(tradeTypeB); // Subscription arbitrage B contract
var depthDataB = _C(exchange.GetDepth); // Depth data of arbitrage B contract
this.time = recordsData[recordsData.length - 1].Time; // Time of obtaining the latest data
this.askA = depthDataA.Asks[0].Price; // Sell one price of Arbitrage A contract
this.bidA = depthDataA.Bids[0].Price; // Buy one price of Arbitrage A contract
this.askB = depthDataB.Asks[0].Price; // Sell one price of Arbitrage B contract
this.bidB = depthDataB.Bids[0].Price; // Buy one price of Arbitrage B contract
// Positive arbitrage price differences (Sell one price of contract A - Buy one price of contract B)
this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
// Negative arbitrage price differences (Buy one price of contract A - Sell one price of contract B)
this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}
Data.prototype.mp = function (tradeType, type) {
var positionData = this.positionData; // Get position information
for (var i = 0; i < positionData.length; i++) {
if (positionData[i].ContractType == tradeType) {
if (positionData[i].Type == type) {
if (positionData[i].Amount > 0) {
return positionData[i].Amount;
}
}
}
}
return false;
}
Data.prototype.boll = function (num, timeCycle) {
var self = {}; // Temporary objects
// Median value of positive arbitrage price difference and negative arbitrage price difference
self.Close = (this.basb + this.sabb) / 2;
if (this.timeA == this.timeB) {
self.Time = this.time;
} // Compare two depth data timestamps
if (this.time - oldTime > timeCycle * 60000) {
bars.push(self);
oldTime = this.time;
} // Pass in the price difference data object into the K-line array according to the specified time period
if (bars.length > num * 2) {
bars.shift(); // Control the length of the K-line array
} else {
return;
}
var boll = TA.BOLL(bars, num, 2); // Call the boll indicator in the talib library
return {
up: boll[0][boll[0].length - 1], // boll indicator upper track
middle: boll[1][boll[1].length - 1], // boll indicator middle track
down: boll[2][boll[2].length - 1] // boll indicator down track
} // Return a processed boll indicator data
}
Data.prototype.trade = function (tradeType, type) {
exchange.SetContractType(tradeType); // Resubscribe to a contract before placing an order
var askPrice, bidPrice;
if (tradeType == tradeTypeA) { // If the order is placed in contract A
askPrice = this.askA; // set askPrice
bidPrice = this.bidA; // set bidPrice
} else if (tradeType == tradeTypeB) { // If the order is placed in contract B
askPrice = this.askB; // set askPrice
bidPrice = this.bidB; // set bidPrice
}
switch (type) { // Match order placement mode
case "buy":
exchange.SetDirection(type); // Set order placement mode
return exchange.Buy(askPrice, unit);
case "sell":
exchange.SetDirection(type); // Set order placement mode
return exchange.Sell(bidPrice, unit);
case "closebuy":
exchange.SetDirection(type); // Set order placement mode
return exchange.Sell(bidPrice, unit);
case "closesell":
exchange.SetDirection(type); // Set order placement mode
return exchange.Buy(askPrice, unit);
default:
return false;
}
}
Data.prototype.cancelOrders = function () {
Sleep(500); // Delay before cancellation, because some exchanges, you know what I mean
var orders = _C(exchange.GetOrders); // Get an array of unfilled orders
if (orders.length > 0) { // If there are unfilled orders
for (var i = 0; i < orders.length; i++) { // Iterate through the array of unfilled orders
exchange.CancelOrder(orders[i].Id); // Cancel unfilled orders one by one
Sleep(500); // Delay 0.5 seconds
}
return false; // Return false if an unfilled order is cancelled
}
return true; // Return true if there are no unfilled orders
}
Data.prototype.isEven = function () {
var positionData = this.positionData; // Get position information
var type = null; // Switch position direction
// If the remaining 2 of the position array length is not equal to 0 or the position array length is not equal to 2
if (positionData.length % 2 != 0 || positionData.length != 2) {
for (var i = 0; i < positionData.length; i++) { // Iterate through the position array
if (positionData[i].Type == 0) { // If it is a long order
type = 10; // Set order parameters
} else if (positionData[i].Type == 1) { // If it is a short order
type = -10; // Set order parameters
}
// Close all positions
this.trade(positionData[i].ContractType, type, positionData[i].Amount);
}
}
}
Data.prototype.drawingChart = function (boll) {
var nowTime = new Date().getTime();
ObjChart.add([0, [nowTime, boll.up]]);
ObjChart.add([1, [nowTime, boll.middle]]);
ObjChart.add([2, [nowTime, boll.down]]);
ObjChart.add([3