Maschinen Lern Optionen Handel

Dieser Beitrag wird detailliert sein, was ich getan habe, um ca. 500k vom Hochfrequenzhandel von 2009 bis 2010 zu machen. Da ich völlig unabhängig handelte und mein Programm nicht mehr laufe, bin ich glücklich, alles zu erzählen Mein Handel war meistens in Russel 2000 und DAX-Futures-Kontrakten. Der Schlüssel zu meinem Erfolg, glaube ich, war nicht in einer anspruchsvollen finanziellen Gleichung, sondern in der Gesamt-Algorithmus-Design, die zusammengebunden viele einfache Komponenten und gebrauchte Maschine Lernen zu optimieren für maximale Profitabilität Sie gewann t müssen jede anspruchsvolle Terminologie hier wissen, weil wann Ich setze mein Programm ein, das alles auf Intuition basiert Andrew Ng s erstaunliche Maschine Lernkurs war noch nicht verfügbar - btw, wenn du auf diesen Link klickst, wirst du zu meinem aktuellen Projekt gehen CourseTalk, ein Rezensionsseite für MOOCs. First, ich will einfach nur Zeigen, dass mein Erfolg nicht einfach das Ergebnis des Glücks war Mein Programm machte 1000-4000 Trades pro Tag halb so lang, halb kurz und nie in Positionen von mehr als ein paar Verträge zu einem Zeitpunkt T Sein bedeutete das zufällige glück von irgendeinem bestimmten handel gezählt ziemlich schnell Das Resultat war, dass ich nie mehr als 2000 an einem Tag verlor und nie einen verlierenden Monat hatte. BEARBEITEN Diese Zahlen sind nach Bezahlung von Provisionen. Und hier sa Diagramm, um Ihnen ein Gefühl der täglichen Variation Hinweis, dass dies schließt die letzten 7 Monate, weil - da die Zahlen gestoppt steigen - ich meine Motivation verloren, um sie zu betreten. Meine Trading-Hintergrund. Prior Um mein automatisiertes Handelsprogramm einzurichten Ich hatte 2 Jahre Erfahrung als manueller Tag Trader Dies war wieder im Jahr 2001 - es war die frühen Tage des elektronischen Handels und es gab Möglichkeiten für Skalierer, gutes Geld zu machen Ich kann nur beschreiben, was ich tat So ähnlich wie ein Videospiel spielen mit einer vermeintlichen Kante Als erfolgreich zu sein, war schnell, diszipliniert und mit einer guten intuitiven Muster Anerkennung Fähigkeiten konnte ich rund 250k machen, bezahlen meine Studenten Darlehen und haben Geld über Win. Over verlassen In den nächsten fünf Jahren würde ich zwei Startups starten und dabei einige Programmierkenntnisse auf dem Weg abholen. Es würde bis Ende 2008 sein, dass ich wieder in den Handel zurückkehren würde Mit Geld, das von dem Verkauf meines ersten Startups niedrig ist, Trading bot Hoffnungen auf einige schnelle Bargeld, während ich herausgefunden, meine nächste move. In 2008 war ich manuell Tag Handel Futures mit Software namens T4 Ich wollte einige benutzerdefinierte Bestellung Eintrag Hotkeys, so nach der Entdeckung T4 hatte eine API, nahm ich auf die Herausforderung Des Lernens C die Programmiersprache, die benötigt wurde, um die API zu benutzen und ging voran und baute mir einige Hotkeys. Nachdem ich meine Füße nass mit der API hatte, hatte ich bald größere Bestrebungen, die ich dem Computer beibringen wollte, um für mich zu handeln. Die API stellte sowohl einen Strom von Marktdaten und eine einfache Möglichkeit, Aufträge an die Börse zu schicken - alles was ich tun musste, war die Logik in der Mitte zu schaffen. Below ist ein Screenshot eines T4 Trading Fensters Was war cool, dass, wenn ich mein Programm arbeiten konnte ich konnte Beobachten Sie den Computer Handel auf dieser exakt gleichen Schnittstelle Beobachten echte Bestellungen knallt in und aus sich selbst mit meinem echten Geld war sowohl spannend und beängstigend. Die Gestaltung meines Algorithmus. For von Anfang an war mein Ziel, ein System so einrichten, dass ich vernünftig sein könnte Co Nfident ich habe Geld verdienen, bevor ich jemals irgendwelche Live-Trades Um dies zu erreichen brauchte ich ein Trading-Simulation-Framework, das - so genau wie möglich - simulieren Live-Trading. Während des Handels im Live-Modus erforderlich Verarbeitung Marktaktualisierungen durch die API, Simulations-Modus gestreamt Erforderliche Lese-Markt-Updates aus einer Datendatei Um diese Daten zu sammeln, setze ich die erste Version meines Programms ein, um einfach eine Verbindung mit der API herzustellen und Marktaktualisierungen mit Zeitstempeln aufzuzeichnen. Ich habe mit 4 Wochen im Wert von aktuellen Marktdaten gearbeitet, um mein System zu trainieren und zu testen. Wenn ein Grundgerüst vorhanden war, hatte ich immer noch die Aufgabe, herauszufinden, wie man ein rentables Handelssystem herstellt. Wie sich herausstellt, würde mein Algorithmus in zwei verschiedene Komponenten zerfallen, die ich nachher erforschen werde. Die Preisbewegungen und. Making profitabel Trades. Predicting Preisbewegungen. Erweile eine offensichtliche Komponente eines jeden Handelssystems ist in der Lage zu prognostizieren, wo die Preise bewegen Und meine war keine Ausnahme Ich habe die aktuelle Preis als der Durchschnitt der Innen-Angebot und Innen-Angebot und ich habe das Ziel der Vorhersage, wo der Preis in den nächsten 10 Sekunden wäre Mein Algorithmus müsste kommen mit dieser Vorhersage Moment-für-Moment während des Trading Day. Creating Optimierung Indikatoren. Ich habe eine Handvoll von Indikatoren, die eine aussagekräftige Fähigkeit zur Vorhersage kurzfristige Preisbewegungen zeigten. Jeder Indikator produzierte eine Zahl, die entweder positiv oder negativ war Ein Indikator war nützlich, wenn mehr als oft nicht eine positive Zahl mit dem Markt übereinstieg Und eine negative Zahl entsprach dem Markt, der hinunterging. Mein System erlaubte mir, schnell zu bestimmen, wieviel prädiktive Fähigkeit irgendein Indikator so war, dass ich in der Lage war, mit vielen verschiedenen Indikatoren zu experimentieren, um zu sehen, was funktionierte Viele der Indikatoren hatten Variablen in den Formeln Die sie produzierten und ich konnte die optimalen Werte für diese Variablen finden, indem sie nebeneinander Vergleiche von Ergebnissen mit unterschiedlichen Werten erzielten Dicatoren, die am nützlichsten waren, waren alle relativ einfach und basierten auf den jüngsten Ereignissen auf dem Markt, den ich handelte, sowie die Märkte der korrelierten Wertpapiere. Die genaue Preisbewegungsvorhersage zu machen. Indikatoren, die einfach eine Aufwärts - oder Abwärtsbewegungsbewegung voraussagten, waren nicht genug Ich musste genau wissen, wie viel Preisbewegung von jedem möglichen Wert jedes Indikators vorhergesagt wurde, brauchte ich eine Formel, die einen Indikatorwert auf einen Preisvorhersage umwandeln würde. Um dies zu erreichen, verfolgte ich die vorhergesagten Preisbewegungen in 50 Eimern, die von der Reichweite abhingen Der Indikatorwert fiel in Dies produzierte eindeutige Vorhersagen für jeden Eimer, den ich dann in Excel grafisch darstellen konnte, wie Sie sehen können, dass die erwartete Preisänderung steigt, wenn der Indikatorwert ansteigt. Auf einer Grafik wie diesem konnte ich eine Formel erstellen Um die Kurve anzupassen Am Anfang habe ich diese Kurve manuell angepasst, aber ich habe bald einen Code geschrieben, um diesen Prozess zu automatisieren. Habe nicht alle Indikatorkurven die gleichen s Hape Beachten Sie auch, dass die Eimer logarithmisch verteilt wurden, um die Datenpunkte gleichmäßig zu verteilen. Schließlich bemerken Sie, dass negative Indikatorwerte und ihre entsprechenden Abwärtspreisvorhersagen umgedreht wurden und mit den positiven Werten kombiniert wurden. Mein Algorithmus behandelte genau die gleichen Bindungsindikatoren für ein einziges Vorhersage. Ein wichtiges Ding zu beachten war, dass jeder Indikator war nicht ganz unabhängig Ich konnte nicht einfach nur addieren alle Vorhersagen, dass jeder Indikator individuell gemacht Der Schlüssel war, um herauszufinden, die zusätzlichen prädiktiven Wert, dass jeder Indikator hatte über das, was bereits vorhergesagt wurde War nicht schwer zu implementieren, aber es bedeutete, dass, wenn ich Kurve passend mehrere Indikatoren zur gleichen Zeit musste ich vorsichtig ändern, würde man die Vorhersagen von anderen zu beeinflussen. Um zu ordnen passen alle Indikatoren zur gleichen Zeit I Setze den Optimierer ein, um nur 30 der Weg in Richtung der neuen Vorhersagekurven mit jedem Pass zu treten. Mit diesem 30 Sprung fand ich Dass die Vorhersagekurven sich in wenigen Durchgängen stabilisieren würden. Mit jedem Indikator, der uns jetzt eine zusätzliche Preisvorhersage gibt, könnte ich sie einfach hinzufügen, um eine einzige Vorhersage darüber zu produzieren, wo der Markt in 10 Sekunden liegen würde. Die vorausschauenden Preise reichen nicht aus. Sie könnten denken, dass mit diesem Rand auf dem Markt war ich golden Aber Sie müssen im Auge behalten, dass der Markt besteht aus Angeboten und Angeboten - es ist nicht nur ein Marktpreis Erfolg im Hochfrequenz-Handel kommt auf gute Preise und Es ist nicht so einfach. Die folgenden Faktoren machen die Schaffung eines rentablen Systems schwierig. Mit jedem Handel musste ich Provisionen sowohl an meinen Makler als auch an den Austausch bezahlen. Der Verbreitungsdifferenz zwischen Höchstgebot und niedrigem Angebot bedeutete, dass, wenn ich einfach kaufen würde und Verkaufe zufällig Ich würde eine Tonne Geld verlieren. Die meisten der Marktvolumen waren andere Bots, die nur einen Handel mit mir ausführen würden, wenn sie dachten, sie hätten einen statistischen Rand. Ein Angebot habe nicht garantiert, dass ich es kaufen könnte Zeit mein Kaufauftrag an die Börse kam es sehr möglich, dass dieses Angebot hätte abgesagt werden können. Als ein kleiner Marktspieler gab es keine Möglichkeit, ich konnte auf Geschwindigkeit allein konkurrieren. Building eine volle Trading Simulation. So hatte ich einen Rahmen, der mir erlaubt Zu backtest und optimieren Indikatoren Aber ich musste darüber hinaus - ich brauchte ein Framework, das mir erlauben würde, zu backtest und optimieren ein volles Handelssystem ein, wo ich war Bestellungen und immer in Positionen In diesem Fall würde ich optimieren für insgesamt PL und Zu einem gewissen Grad durchschnittlichen PL pro Handel. Dies wäre schwieriger und in gewisser Weise unmöglich, genau zu modellieren, aber ich tat so gut wie ich konnte Hier sind einige der Probleme, mit denen ich zu tun hatte. Wenn ein Auftrag an den Markt in Simulation geschickt wurde Ich musste die Verzögerungszeit modellieren Die Tatsache, dass mein System ein Angebot sah, bedeutete nicht, dass es es sofort kaufen konnte. Das System würde die Bestellung senden, ca. 20 Millisekunden warten und dann nur dann, wenn das Angebot noch da war, wurde es als ein Hingerichteten Handel Dies war ungenau, weil die reale Verzögerungszeit inkonsistent und nicht gemeldet war. Als ich Angebote oder Angebote platzierte, musste ich den von der API gelieferten Handelsausführungsstrom betrachten und diese verwenden, um zu beurteilen, wann meine Bestellung ausgestellt wurde Ich musste die Position meiner Bestellung in der Warteschlange verfolgen. Es ist ein erstes First-Out-System Wieder konnte ich das nicht perfekt machen, aber ich habe eine optimale Annäherung gemacht. Um meine Auftragsabwicklung zu simulieren, was ich getan habe, war meine Log-Dateien aus Live-Trading über die API und vergleichen sie mit Log-Dateien von simulierten Handel aus der gleichen Zeitspanne produziert wurde ich in der Lage, meine Simulation auf den Punkt, dass es ziemlich genau war und für die Teile, die unmöglich waren, genau zu modellieren, dass ich sicher war Zumindest produzieren Ergebnisse, die statistisch ähnlich waren in den Metriken, die ich dachte, waren wichtig. Making profitable Trades. Mit einem Bestell-Simulations-Modell an Ort und Stelle konnte ich jetzt senden Bestellungen im Simulations-Modus und sehen eine simulierte PL Aber wie wäre m Y System wissen, wann und wo zu kaufen und zu verkaufen. Die Preis bewegen Prognosen waren ein Ausgangspunkt, aber nicht die ganze Geschichte Was ich tat, war ein Scoring-System für jedes von 5 Preisniveaus auf das Angebot und Angebot Diese enthalten eine Ebene über dem Innere Bieten Sie für einen Kaufauftrag und eine Ebene unterhalb des Innenangebots für einen Verkaufsauftrag. Wenn die Punktzahl zu einem bestimmten Preisniveau über einer bestimmten Schwelle lag, würde das mein System ein aktives Angebot bieten - unterhalb der Schwelle dann alle aktiven Aufträge Sollte abgesagt werden Basierend darauf war es nicht ungewöhnlich, dass mein System würde ein Gebot auf dem Markt brennen dann sofort abbrechen Obwohl ich versuchte, dies zu minimieren, da es nervig wie jemand, der Blick auf den Bildschirm mit menschlichen Augen - einschließlich mich Preisniveau-Scores wurden auf der Grundlage der folgenden Faktoren berechnet. Die Preisbewegungsvorhersage, die wir früher besprochen haben. Das Preisniveau in Frage Inneren Ebenen bedeutete größere Preisbewegungsvorhersagen erforderlich waren. Die Anzahl der Verträge vor meiner Ordnung in der Warteschlange Weniger war besser. Die Anzahl der Verträge hinter meiner Bestellung in der Warteschlange Mehr war besser. Essentiell diese Faktoren dienten dazu, sichere Orte zu bieten bieten Angebot Die Preisbewegung Vorhersage allein war nicht ausreichend, weil es nicht für die Tatsache, dass Wenn ich ein Gebot ablegte, wurde ich nicht automatisch gefüllt - ich wurde nur gefüllt, wenn mir jemand dort verkauft wurde. Die Realität war, dass die bloße Tatsache, dass jemand, der mir zu einem bestimmten Preis verkaufte, die statistischen Chancen des Handels veränderte. Die Variablen, die in diesem Schritt verwendet wurden Waren alle der Optimierung unterworfen Dies geschah genau so wie ich die Variablen in den Preisbewegungsindikatoren optimierte, außer in diesem Fall optimierte ich mich für die untere Zeile P L. Was mein Programm ignoriert. Wenn wir als Menschen handeln, haben wir oft starke Emotionen und Vorurteile, die zu weniger als optimalen Entscheidungen führen können Klar, dass ich diese Vorurteile nicht kodifizieren wollte Hier sind einige Faktoren, die mein System ignoriert hat. Der Preis, den eine Position eingegeben hat - In einem Handelsbüro ist es ziemlich üblich Um das Gespräch über den Preis zu hören, bei dem jemand lang oder kurz ist, als ob das seine künftige Entscheidungsfindung bewirken würde. Während dies eine gewisse Gültigkeit als Teil einer Risikominderungsstrategie hat, hat es wirklich keinen Einfluss auf den zukünftigen Verlauf der Ereignisse auf dem Markt Programm völlig ignoriert diese Informationen Es ist das gleiche Konzept wie ignorieren versunkenen Kosten. Going kurz vs verlassen eine lange Position - Typischerweise würde ein Händler haben unterschiedliche Kriterien, die bestimmt, wo man eine lange Position zu verkaufen, versus wo zu gehen, aber aus meiner Algorithmen Perspektive gab es Kein Grund, eine Unterscheidung zu machen Wenn mein Algorithmus erwartete, dass ein Abwärtsbewegungsverkauf eine gute Idee war, unabhängig davon, ob es derzeit lang, kurz oder flach war. Verdoppelung der Strategie - Dies ist eine gemeinsame Strategie, in der Händler mehr Lager in der Veranstaltung kaufen werden Dass dort der ursprüngliche Handel gegen sie verstößt. Dies führt dazu, dass Ihr durchschnittlicher Kaufpreis niedriger ist und es bedeutet, wann oder wenn die Aktie um Sie herum dreht, werden Sie gesetzt, um Ihren Mon zu machen Ey zurück in kürzester Zeit Meiner Meinung nach ist das wirklich eine schreckliche Strategie, es sei denn, du bist wieder Warren Buffet Du hast in das Denken getäuscht, dass es dir gut geht, weil die meisten deiner Trades die Gewinner sind. Das Problem ist, wenn du verlierst, verlierst du groß Der andere Effekt ist es Macht es schwer zu beurteilen, ob man tatsächlich einen Rand auf dem Markt hat oder einfach nur glücklich ist, in der Lage zu überwachen und zu bestätigen, dass mein Programm in der Tat eine Kante war ein wichtiges Ziel. Seit mein Algorithmus Entscheidungen auf die gleiche Weise unabhängig von wo Es trat in einen handel ein oder wenn es gerade lang oder kurz war, hat es gelegentlich sitzen und einige große verlieren Trades zusätzlich zu einigen großen Gewinnen Trades Aber Sie sollten nicht denken, es gab kein Risiko-Management. Um das Risiko zu verwalten, habe ich ein Maximum erzwungen Positionsgröße von 2 Verträgen zu einem Zeitpunkt, gelegentlich auf hohe Volumen Tage gestoßen Ich hatte auch eine maximale tägliche Verlustgrenze, um gegen unerwartete Marktbedingungen oder einen Bug in meiner Software zu schützen Diese Grenzen wurden in meinem Code bu erzwungen T auch im backend durch meinen broker Wie es passiert ist, habe ich nie irgendwelche signifikanten Probleme angetroffen. Running the algorithm. From der Moment begann ich an meinem Programm zu arbeiten nahm es mir etwa 6 Monate, bevor ich es auf den Punkt der Rentabilität und begonnen, es zu laufen Live Obwohl es fair war, eine beträchtliche Menge an Zeit zu lernen, war eine neue Programmiersprache zu lernen. Als ich arbeitete, um das Programm zu verbessern, sah ich erhöhte Gewinne für jedes der nächsten vier Monate. Jede Woche würde ich mein System auf der Grundlage der vorherigen 4 Wochen im Wert umschreiben Daten fand ich, dass dies die richtige Balance zwischen der Erfassung der jüngsten Marktverhaltenstendenzen und der Versicherung meines Algorithmus hatte genug Daten, um sinnvolle Muster zu etablieren Als die Ausbildung begann, mehr und mehr Zeit zu nehmen, spalte ich es aus, damit es von 8 virtuellen Maschinen mit amazon durchgeführt werden könnte EC2 Die Ergebnisse wurden dann auf meiner lokalen Maschine verschmolzen. Der Höhepunkt meines Handels war Oktober 2009, als ich fast 100k machte. Danach verbringe ich weiterhin die nächsten vier Monate Ringen, um mein Programm trotz des verringerten Profits jeden Monat zu verbessern Leider habe ich an diesem Punkt, ich glaube, ich habe alle meine besten Ideen implementiert, weil nichts, was ich versuchte schien, viel zu helfen. Mit der Frustration nicht in der Lage, Verbesserungen zu machen und nicht ein Gefühl von Wachstum zu haben Begann, an eine neue Richtung zu denken, ich habe 6 verschiedene Hochfrequenz-Handelsfirmen per E-Mail gesendet, um zu sehen, ob sie daran interessiert sind, meine Software zu kaufen und mich einzustellen, um für sie zu arbeiten. Niemand antwortete, dass ich einige neue Startup-Ideen hatte, an denen ich arbeiten wollte. UPDATE - Ich habe das auf Hacker News gepostet und es hat viel Aufmerksamkeit bekommen, ich möchte nur sagen, dass ich mich nicht dafür einsetzt, dass jemand versucht, so etwas selbst zu tun. Du brauchst ein Team von wirklich klugen Leuten mit einer Reihe von Erfahrungen Um eine Hoffnung auf Konkurrenz zu haben Auch wenn ich das tat, glaube ich, dass es sehr selten für Einzelpersonen war, Erfolg zu erzielen, obwohl ich von anderen gehört hatte. Es gibt einen Kommentar an der Spitze der Seite, die manipuliert hat Tistics und bezieht sich auf mich als Retail-Investor, dass Quants würde gerne abholen Dies ist eine eher unglückliche Kommentar, dass s einfach nicht in der Realität basiert Einstellung, dass beiseite gibt es einige interessante Kommentare. UPDATE 2 - Ich habe eine Follow-up-FAQ, die Antworten beantwortet Einige häufige Fragen, die ich von Händlern über diesen Beitrag erhalten habe. Der Begriff statistische Arbitrage stat-arb umfasst eine Vielzahl von Anlagestrategien, die in der Regel eine statistische Gleichgewichtsbeziehung zwischen zwei oder mehr Wertpapieren ausnutzen wollen. Der allgemeine Grundsatz ist, dass jede Abweichung vom Gleichgewicht besteht Ist eine vorübergehende Wirkung, und die Wetten sollten auf den Prozess gesetzt werden, der auf ihr Gleichgewicht zurückkehrt. Der Haupt-Vorbehalt von stat-arb-Paaren Handelstyp-Strategien ist, dass, da die Divergenz vom Gleichgewicht wächst, der Handel wünschenswerter wird, allerdings irgendwann die Divergenz Wird so groß werden, dass man zugeben muss, dass die Gleichgewichtsbeziehung nicht mehr existiert, ist das Modell gebrochen Natürlich ist es wünschenswert Um die Macht der statistischen Werkzeuge zu bestimmen, die verwendet werden, um diese Beziehungen zu bestimmen und die Dauer eines beobachteten Gleichgewichts aus der Probe zu untersuchen. Dieser Posten untersucht die Macht der statistischen Tests in Bezug auf den Paarenhandel für die folgenden statistischen Tests ADF, BVR , HURST, PP, PGFF, JO-T und JO-E. Das allgemeine Prinzip ist, dass für zwei Aktien und sie bilden eine stationäre, und definitionsgemäß bedeuten Rückkehr Paar, wenn die folgende Gleichung hält. Wenn ist zwischen und dann und sind co - integriert, ist der Koeffizient der mittleren Reversion Eine statistische Prüfung muss durchgeführt werden, um zu überprüfen, ob dies als Einheit Wurzeltest bekannt ist Wenn die Serie eine Einheit Wurzel enthält ist es nicht geeignet für Paare Handel Es gibt mehrere Einheit Wurzeltests, die jeweils laufen Ein anderer Test auf den Restprozess Man könnte versucht sein, das AR 1-Restmodell abzuschätzen und auf die Verwendung der herkömmlichen linearen Regressionsmethode zu prüfen, die das Standard-T-Verhältnis berechnet. Es wurde jedoch von Dicky und Fuller 1979 gezeigt, dass die T-ratio folgt nicht der t-Verteilung, daher werden nicht standardmäßige Signifikanztests benötigt, die als Unit-Root-Tests bekannt sind. Bei jedem Modell gibt es bei der Bestimmung der Trainingsfenstergröße einen Trade-Out, ein zu langes Fenster und das Modell kann irrelevant sein Daten und sind langsam, um auf die jüngsten Ereignisse anzupassen, zu kurz ein Fenster und das Modell nur reagiert auf die jüngsten Ereignisse und vergisst über vergangene Ereignisse schnell Dieser Trade-off ist problematisch in Co-Integration-Tests, wurde es in Clegg, M Januar 2014 gezeigt Beharrlichkeit der Kointegration in Paaren Handel, dass für eine feste Fenstergröße die Leistung der meisten Einheit Wurzeltests abnehmen, wie tendiert von 1 von unten, für 250 Datenpunkte mit dem Sperrfeuer der Co-Integrationstests nur die Co-Integration weniger als 25 der Time. Intuitiv ist dies sinnvoll, je langsamer der Prozess ist, um wiederherzustellen, desto mehr Daten Punkte werden benötigt, um die Reversion zu sehen Es ist etwas unerwünscht, dass die Leistung der Einheit Wurzeltests variieren je nach den Eigenschaften von t Er ist zugrunde liegenden Prozess, aber es ist nicht erforderlich für erfolgreiche Paar-Handel, dass alle co-integrierten Paare als solche identifiziert werden, ist die unterschiedliche Leistungseigenschaft von Einheit Wurzeltests weitgehend irrelevant. Was ist interessanter ist die falsch positive Rate, so dass Paare als Mittelwert identifiziert Rückkehr, wenn sie nicht sind, und wie beharrlich die Ergebnisse sind. Generate 1000 co-integrierte Zeitreihen mit und gleichmäßig verteilt in der Menge, und in der Menge nach Clegg dies ist ähnlich wie die Arten von Aktienpaaren in der Realität begegnet Wiederholen für diese Verschiedene Längen von Zeitreihen und Test, um zu sehen, wie viele Zeitreihen korrekt klassifiziert werden, als co-integrierte mittlere Wiederherstellung mit verschiedenen Tests für verschiedene pValues. In der Mehrheit der Tests PP und PGFF übertreffen die anderen Methoden Wenn der Prozess war stark wieder mit weniger als 0 85 die Tests PP, PGFF, JO-E und JO-T korrekt identifiziert den Prozess als kointegrierte Mittelwiederholung mehr als 75 der Zeit bei pValue 0 01 Für einige der Weiche R Umkehr von Paaren mit mehr als 0 95 Die Leistung der statistischen Tests ist mit nur 250 Datenpunkten schmerzlich. Es lohnt sich zu bedenken, dass 250 Datenpunkte annähernd die Anzahl der Handelstage in einem Jahr sind und vielleicht einen Hinweis darauf geben, wie viel Historische Daten werden in einer Paar-Handelsstrategie benötigt. False Positive Tests. Folgen die gleiche Prozedur umrissen für die Genauigkeitstest, sondern wählte in der Menge, um Zeitreihen zu generieren, die nicht ko-integriert sind Sehen Sie, welcher Prozentsatz der Pfade fälschlicherweise als Co - Integrierte mittlere Revertierung. Ich habe noch nie diese Tabelle in einem Lehrbuch gesehen und war überrascht über die Ergebnisse, sowohl HURST und BVR berichten mehr falsche Positives als Erhöhungen Je mehr der Prozess explodiert desto wahrscheinlicher der Test war, um eine falsch positiv zu zeigen Andere Tests verhalten sich in vernünftiger Weise mit wenigen falschen Positiven. Dieser Teil des Tutorials zur Verwendung des NEAT-Algorithmus erklärt, wie die Genome auf eine sinnvolle Art und Weise überwunden werden, indem sie ihre topologischen Informationen aufrechterhalten Und wie Speziation Gruppe Genome in Arten verwendet werden können, um schwache Genome mit neuen topologischen Informationen vor der vorzeitigen Ausrottung aus dem Gen-Pool, bevor ihr Gewicht Raum optimiert werden kann geschützt werden. Der erste Teil dieses Tutorials finden Sie hier. Tracking Gene Geschichte durch Innovation Numbers. Part 1 zeigte zwei Mutationen, Link Mutate und Knoten Mutate, die beide neue Gene zum Genom hinzugefügt Jedes Mal, wenn ein neues Gen durch eine topologische Innovation erstellt wird, wird eine globale Innovationsnummer inkrementiert und diesem Gen zugeordnet. Die globale Innovationsnummer ist Verfolgung der historischen Ursprung jedes Gens Wenn zwei Gene die gleiche Innovationsnummer haben, dann müssen sie die gleiche Topologie darstellen, obwohl die Gewichte unterschiedlich sein können. Dies wird während des Gen Crossover ausgenutzt. Genome Crossover Mating. Genomes Crossover nimmt zwei Elterngenome, die sie nennen können Und B und schafft ein neues Genom nennt man das Kind, das die stärksten Gene von A und B nimmt, die jede topologische Struktur kopieren Über die Art und Weise. Die Crossover-Gene aus beiden Genomen werden mit ihrer Innovationsnummer aufgereiht. Für jede Innovationsnummer wird das Gen aus dem am meisten passenden Elternteil ausgewählt und in das Kindgenom eingefügt. Wenn beide Elterngenome die gleiche Fitness sind, dann ist das Gen Zufällig aus jedem Elternteil mit gleicher Wahrscheinlichkeit ausgewählt Wenn die Innovationsnummer nur in einem Elternteil vorhanden ist, dann ist dies als disjunktes oder überschüssiges Gen bekannt und stellt eine topologische Neuerung dar. Es wird auch in das Kind eingefügt. Das Bild unten zeigt den Crossover-Prozess für Zwei Genome der gleichen Fitness. Speciation nimmt alle Genome in einem gegebenen Genom-Pool und versucht, sie in verschiedene Gruppen als Spezies bekannt Die Genome in jeder Spezies haben ähnliche Merkmale. Ein Weg zur Messung der Ähnlichkeit zwischen zwei Genomen ist erforderlich, Wenn zwei Genome ähnlich sind, sind sie von der gleichen Spezies Eine natürliche Maßnahme zu verwenden wäre eine gewichtete Summe der Zahl der disjunkte überschüssige Gene repräsentiert Ng topologische Unterschiede und der Unterschied in den Gewichten zwischen den passenden Genen Wenn die gewichtete Summe unterhalb einer Schwelle liegt, sind die Genome von der gleichen Spezies. Der Vorteil der Aufteilung der Genome auf Spezies ist, dass während des genetischen Evolutionsschrittes, wo Genome mit geringer Eignung kulled sind Ganz aus dem Genom-Pool entfernt, anstatt mit jedem Genom-Kampf für sie s Platz gegen jedes andere Genom in den gesamten Genom-Pool können wir es kämpfen für sie s Platz gegen Genome der gleichen Spezies Auf diese Art Arten, die aus einer neuen topologischen Innovation bilden Das könnte nicht eine hohe Fitness noch wegen nicht mit es Gewichte optimiert wird überleben die culling. Summary der gesamten Prozess. Create ein Genom-Pool mit n zufällige Genome. Take jedes Genom und gelten für Problem Simulation und berechnen die Genom Fitness. Assign Jedes Genom zu einer Spezies. In jeder Spezies cull die Genome entfernen einige der schwächeren Genome. Breed jede Art zufällig Auswahl Genome in der Spezies zu entweder Crossover oder mutate. Wiederholen Sie alle oben. Post navigation. Ich bin nicht ganz sicher, wenn diese Frage passt in hier. Ich habe vor kurzem begonnen, Lesen und Lernen über maschinelles Lernen Kann jemand etwas Licht auf, wie man darüber geht oder vielmehr Kann jeder teilen ihre Erfahrung und einige grundlegende Hinweise darüber, wie man darüber geht oder atleast anfangen, es anzuwenden, um einige Ergebnisse aus Datensätzen zu sehen Wie ehrgeizig dies klingt. Auch, erwähnen Sie über Standard-Algorithmen, die versucht werden oder sah, während dies zu tun Es scheint ein grundlegender Irrtum zu sein, dass jemand mitkommen kann und lernt etwas maschinelles Lernen oder AI-Algorithmen, setze sie als Black Box auf, schlägst und lehn dich zurück, während sie sich zurückziehen. Mein Rat Zu you. Learn Statistiken und maschinelles Lernen zuerst, dann Sorgen darüber, wie man sie auf ein gegebenes Problem anwenden Es gibt kein freies Mittagessen hier Datenanalyse ist harte Arbeit Lesen Sie die Elemente des statistischen Lernens das pdf ist kostenlos auf der Website und don Ich versuche es zu versuchen Bauen Sie ein Modell, bis Sie mindestens die ersten 8 Kapitel verstehen. Wenn Sie verstehen, die Statistiken und maschinelles Lernen, dann müssen Sie lernen, wie man Backtest und bauen ein Handelsmodell, Buchhaltung für Transaktionskosten, etc., die eine ganze andere Bereich ist Sie haben einen Griff sowohl auf die Analyse als auch auf die Finanzierung, dann wird es etwas offensichtlich sein, wie man es anwendet. Der ganze Punkt dieser Algorithmen versucht, einen Weg zu finden, um ein Modell an Daten anzupassen und eine geringe Vorspannung und Abweichung in der Vorhersage zu erzeugen Der Training und Test Vorhersage Fehler wird niedrig und ähnlich Hier ist ein Beispiel für ein Trading-System mit einem Support-Vektor-Maschine in R aber nur im Hinterkopf behalten, dass Sie sich selbst ein großer Bärendienst tun, wenn Sie don t verbringen die Zeit, um die zu verstehen Grundlagen vor dem Versuch, etwas Esoterik anzuwenden. Just, um ein unterhaltsames Update hinzuzufügen Ich kürzlich kam über diese Master-Thesis Ein Novel Algorithmic Trading Framework Anwendung Evolution und Machine Learning für Portfolio-Optimierung 2012 Es ist ein umfangreicher Überblick über verschiedene maschinelle Lernansätze im Vergleich zum Buy-and-Hold Nach fast 200 Seiten erreichen sie die Basis-Schlussfolgerung Kein Trading-System konnte die Benchmark bei Transaktionskosten übertreffen. Unnötig zu sagen, das bedeutet nicht, dass es das bedeutet Kann ich getan werden, ich habe keine Zeit damit verbracht, ihre Methoden zu überprüfen, um die Gültigkeit des Ansatzes zu sehen, aber es gibt sicherlich noch mehr Beweise für das nichtfreie Mittagessen Theorem. answered Feb 1 11 bei 18 48. Jase Als einer von Die Autoren der erwähnten Master-Arbeit Ich kann meine eigene Arbeit zitieren und sagen, wenn jemand tatsächlich rentable Ergebnisse erzielt, gibt es keinen Anreiz, sie zu teilen, da es ihren Vorteil negieren würde. Obwohl unsere Ergebnisse die Markthypothese unterstützen könnten, ist es nicht auszuschließen Die Existenz von Systemen, die funktionieren Es könnte wie Wahrscheinlichkeitstheorie sein Es wird spekuliert, dass Durchbrüche auf dem Gebiet der Wahrscheinlichkeitstheorie mehrmals passiert sind, aber niemals geteilt, könnte dies sein Praktische Anwendung im Glücksspiel Dann wieder, vielleicht ist dies alles moderne Alchimie Andr Christoffer Andersen Apr 30 13 um 10 01.Meine Ratschläge für Sie Es gibt mehrere Maschinelles Lernen Künstliche Intelligenz ML AI Zweige da draußen. Ich habe nur versucht genetische Programmierung und einige neuronale Netzwerke , Und ich persönlich denke, dass das Lernen aus der Erfahrung Zweig scheint die meisten potenziellen GP GA und neuronale Netze scheinen die am häufigsten erforschten Methoden für den Zweck der Börsenvorhersagen haben, aber wenn Sie einige Data Mining auf Predict Wall Street Sie tun Könnte in der Lage sein, einige Stimmung Analyse zu tun. Sprechen einige Zeit Lernen über die verschiedenen ML AI Techniken, finden Sie einige Marktdaten und versuchen, einige dieser Algorithmen implementieren Jeder wird seine Stärken und Schwächen haben, aber Sie können in der Lage, die zu kombinieren Vorhersagen jedes Algorithmus in eine zusammengesetzte Vorhersage ähnlich wie die Gewinner des NetFlix-Preises. Some Resources Hier sind einige Ressourcen, die Sie vielleicht loo K in die Chatter Die allgemeine Konsens unter den Händlern ist, dass Künstliche Intelligenz ist eine Voodoo-Wissenschaft, können Sie t machen einen Computer vorhersagen Aktienkurse und Sie sicher sein, Ihr Geld zu verlieren, wenn Sie es versuchen, Trotzdem werden die gleichen Leute Ihnen sagen, dass Nur über die einzige Möglichkeit, Geld zu verdienen auf dem Aktienmarkt ist zu bauen und zu verbessern auf Ihre eigene Handelsstrategie und folgen Sie es genau, die nicht wirklich eine schlechte idea. The Idee von AI-Algorithmen ist nicht zu bauen Chip und lassen Sie ihn für Sie handeln , Aber um den Prozess der Schaffung von Strategien zu automatisieren Es ist ein sehr langwieriger Prozess und keineswegs ist es einfach. Minimizing Overfitting Wie wir schon einmal gehört haben, ist ein grundlegendes Problem mit AI-Algorithmen übertrieben aka Datamining Bias bei einem Satz von Daten, Ihre AI-Algorithmus Kann ein Muster finden, das für das Trainingsset besonders relevant ist, aber es ist möglicherweise nicht relevant in der Testmenge. Es gibt mehrere Möglichkeiten, um die Überfüllung zu minimieren. Verwenden Sie eine Validierung gesetzt es doesn t geben Rückmeldung an den Algorithmus, aber es allo Ws Sie zu erkennen, wann Ihr Algorithmus ist potenziell beginnen zu übertreiben, dh Sie können das Training zu stoppen, wenn Sie re overfitting zu viel. Use Online-Maschine lernen es weitgehend eliminiert die Notwendigkeit für Back-Testing und es ist sehr anwendbar für Algorithmen, die versuchen, Marktvorhersagen zu machen. Ensemble Learning bietet Ihnen einen Weg, um mehrere maschinelle Lernalgorithmen zu nehmen und ihre Vorhersagen zu kombinieren. Die Annahme ist, dass verschiedene Algorithmen die Daten in einigen Bereichen übertreiben können, aber die richtige Kombination ihrer Vorhersagen wird eine bessere Vorhersagekraft haben. Zwei Aspekte der statistischen Lernen sind nützlich für den Handel.1 Zuerst die oben erwähnten einige statistische Methoden konzentriert sich auf die Arbeit auf Live-Datasets bedeutet, dass Sie wissen, dass Sie nur ein Beispiel von Daten beobachten und Sie wollen extrapolieren Sie also haben, um in Probe und aus zu behandeln Beispielprobleme, Overfitting und so weiter Aus dieser Sicht ist der Data-Mining mehr auf tote Datasets fokussiert, dh man kann fast alle Daten sehen , Haben Sie eine in Probe nur Problem als statistisches Lernen. Weil statistisches Lernen über die Arbeit auf Live-Dataset ist, mussten die angewandten Mathematik, die sich mit ihnen befassen, sich auf ein Problem mit zwei Skalen konzentrieren. Links XF theta Xn, xi L pi Xn, n Ende rechts, wo X ist der multidimensionale Zustand Raum zu studieren Sie haben in ihr Ihre erklärenden Variablen und die zu prognostizieren, F enthält die Dynamik von X, die einige Parameter brauchen theta Die Zufälligkeit von X comes from the innovation xi , which is ii d. The goal of statistical learning is to build a methodology L ith as inputs a partial observation pi of X and progressively adjust an estimate hat theta of theta , so that we will know all that is needed on X. If you think about using statistical learning to find the parameters of a linear regression we can model the state space like this underbrace yx end right left begin ab 1 1 0 0 end right cdot underbrace x 1 epsilon end right which thus allows to observe y, xn at any n here theta a, b.Then you need to find a way to progressively build an estimator of theta using our observations Why not a gradient descent on the L2 distance between y and the regression C hat a, hat bn sum yk - hat a , xk h at b 2.Here gamma is a weighting scheme. Usually a nice way to build an estimator is to write properly the criteria to minimize and implement a gradient descent that will produce the learning scheme L. Going back to our original generic problem we need some applied maths to know when couple dynamical systems in X, hat theta converge, and we need to know how to build estimating schemes L that converge towards the original theta. To give you pointers on such mathematical results. Now we can go back to the second aspect of statistical learning that is very interesting for quant traders strategists.2 The results used to prove the efficiency of statistical learning methods can be used to prove the efficiency of trading algorithms To see that it is enough to read again the coupled dynamical system that allows to write statistical learning left M F rho Mn, xi L pi Mn , n end right. Now M are market variables, rho is underlying PnL, L is a trading strategy Just replace minimizing a criteria by max imizing the PnL. See for instance Optimal split of orders across liquidity pools a stochatic algorithm approach by Gilles Pags, Sophie Laruelle, Charles-Albert Lehalle in this paper, authors show who to use this approach to optimally split an order across different dark pools simultaneously learning the capability of the pools to provide liquidity and using the results to trade. The statistical learning tools can be used to build iterative trading strategies most of them are iterative and prove their efficiency. The short and brutal answer is you don t First, because ML and Statistics is not something you can command well in one or two years My recommended time horizon to learn anything non-trivial is 10 years ML not a recipe to make money, but just another means to observe reality Second, because any good statistician knows that understanding the data and the problem domain is 80 of the work That s why you have statisticians focusing on Physics data analysis, on genomics, on sabermetrics etc For the record, Jerome Friedman, co-author of ESL quoted above, is a physicist and still holds a courtesy position at SLAC. So, study Statistics and Finance for a few years Be patient Go your own way. Mileage may vary. answered Feb 9 11 at 4 41.I totally agree Just because you know machine learning and statistics, it does not imply that you know how to apply it to finance Dr Mike Aug 10 11 at 20 25.Also an important thing to remember is you won t be trading against people, you will be trading against other artificial intelligence algorithms who are watching your trades pile in, and are furiously calculating the odds that the collective yous would be spooked out by a manufactured decline and taking that minor loss in creating a spike dip and fool all those AI s into stopping out, and then rolling the dip back into it and ride the wave, earning your losses The stock market is a zero sum game, treat it like entering a pro boxing match, if you aren t a 20 year veteran, you re going to lo se Eric Leschinski Feb 13 16 at 1 56.One basic application is predicting financial distress. Get a bunch of data with some companies that have defaulted, and others that haven t, with a variety of financial information and ratios. Use a machine learning method such as SVM to see if you can predict which companies will default and which will not. Use that SVM in the future to short high-probability default companies and long low-probability default companies, with the proceeds of the short sales. There is a saying Picking pennies up in front of steam rollers You re doing the equivalent of selling an out-of-the-money put In this case, you ll make tiny profits for years, then get totally cleaned out when the market melts down every 10 years or so There is also an equivalent strategy that buys out-of-the-money puts they lose money for years, then make a killing when the market melts down See Talab s The Black Swan Contango Jun 5 11 at 22 20.Remember that international companies have spent hund reds of billions of dollars and man hours on the very best and brightest artificial intelligence minds over the last 40 years I ve spoken to some of the towers of mind responsible for the alphas over at Citadel and Goldman Sachs, and the hubris from novices to think they can put together an algorithm that will go toe to toe with them, and win, is almost as silly as a child telling you he s going to jump to the moon Good luck kid, and watch out for the space martians Not to say new champions can t be made, but the odds are against you Eric Leschinski Feb 13 16 at 2 00.One possibility worth exploring is to use the support vector machine learning tool on the Metatrader 5 platform Firstly, if you re not familiar with it, Metatrader 5 is a platform developed for users to implement algorithmic trading in forex and CFD markets I m not sure if the platform can be extended to stocks and other markets It is typically used for technical analysis based strategies i e using indicators based on hist orical data and is used by people looking to automate their trading. The Support Vector Machine Learning Tool has been developed by one of the community of users to allow support vector machines to be applied to technical indicators and advise on trades A free demo version of the tool can be downloaded here if you want to investigate further. As I understand it, the tool uses historical price data to assess whether hypothetical trades in the past would have been successful It then takes this data along with the historical values from a number of customisable indicators MACD, oscillators etc , and uses this to train a support vector machine Then it uses the trained support vector machine to signal future buy sell trades A better desciption can be found at the link. I have played around with it a little with some very interesting results, but as with all algorithmic trading strategies I recommend solid back forward testing before taking it to the live market. answered Dec 10 12 at 11 59.Sorr y, but despite being used as a popular example in machine learning, no one has ever achieved a stock market prediction. It does not work for several reasons check random walk by Fama and quite a bit of others, rational decision making fallacy, wrong assumptions , but the most compelling one is that if it would work, someone would be able to become insanely rich within months, basically owning all the world As this is not happening and you can be sure all the bank have tried it , we have good evidence, that it just does not work. Besides How do you think you will achieve what tens of thousands of professionals have failed to, by using the same methods they have, plus limited resources and only basic versions of their methods. answered Jun 4 15 at 7 47.Just an aside regarding your most compelling reason strategies have capacity limits, i e levels beyond which your market impact would exceed the available alpha, even assuming you had unlimited capital I m not sure what you mean by a stock ma rket prediction index futures ETF s , but certainly there are plenty of people making short-term predictions, and benefitting from them, every day in markets afekz Nov 23 15 at 13 19.I echo much of what Shane wrote In addition to reading ESL, I would suggest an even more fundamental study of statistics first Beyond that, the problems I outlined in in another question on this exchange are highly relevant In particular, the problem of datamining bias is a serious roadblock to any machine-learning based strategy.


Comments

Popular Posts