Wednesday, October 26, 2016

Wie Man Algorithmisches Handelssystem Aufbaut

Daten, Informationen und Material (ldquocontentrdquo) dient nur zu Informationszwecken und Bildungszwecken. Dieses Material ist und ist weder ein Angebot, eine Aufforderung noch eine Empfehlung zum Kauf oder Verkauf von Wertpapieren. Alle Investitionsentscheidungen, die der Nutzer durch die Nutzung solcher Inhalte getroffen hat, basieren ausschließlich auf der unabhängigen Analyse der Nutzer unter Berücksichtigung Ihrer finanziellen Verhältnisse, Anlageziele und Risikobereitschaft. Weder KJTradingSystems (KJ Trading) noch irgendeiner seiner Inhalteanbieter haftet für irgendwelche Fehler oder für irgendwelche Handlungen, die im Vertrauen darauf getroffen werden. Durch den Zugriff auf die KJ Trading-Website stimmt der Benutzer zu, den darin enthaltenen Inhalt nicht neu zu verteilen, es sei denn, dies ist ausdrücklich erlaubt. Individuelle Leistung hängt von jedem studentrsquos einzigartige Fähigkeiten, Zeit Engagement und Anstrengung. Studenten, die ihre Geschichten teilen, wurden nicht für ihre Testimonials ausgeglichen. Student Stories wurden nicht unabhängig von KJ Trading überprüft. Ergebnisse können nicht typisch sein und einzelne Ergebnisse variieren. 8203U. S. Regierung Erforderlich Haftungsausschluss - Commodity Futures Trading Commission. Futures und Optionen Handel hat große potenzielle Belohnungen, sondern auch ein großes Potenzial Risiko. Sie müssen sich der Risiken bewusst sein und bereit sein, diese zu akzeptieren, um in die Futures - und Optionsmärkte zu investieren. Dont Handel mit Geld, das Sie nicht leisten können, zu verlieren. Diese Website ist weder eine Aufforderung noch ein Angebot zum Kauf / Verkauf von Futures oder Optionen. Keine Darstellung wird gemacht, dass jede Rechnung wird oder wahrscheinlich Gewinne oder Verluste zu erzielen, die denen auf dieser Website diskutiert. Die bisherige Wertentwicklung eines Handelssystems oder einer Methodik ist nicht notwendigerweise ein Hinweis auf zukünftige Ergebnisse. CFTC RULE 4.41 - HYPOTHETISCHE ODER SIMULATIVE LEISTUNGSERGEBNISSE HABEN BESTIMMTE BESCHRÄNKUNGEN. EINE AKTUELLE LEISTUNGSAUFNAHME, SIMULATIVE ERGEBNISSE NICHT VERTRETEN. Da auch die TRADES nicht ausgeführte, können im Ergebnis Unter - oder überkompensiert für die Auswirkungen, wenn überhaupt, Marktfaktoren, wie der Mangel an Liquidität, simuliert TRADING Programme im Allgemeinen unterliegen ebenfalls den Umstand, dass SIE SIND MIT DEM VORTEIL VON HINDSIGHT ENTWICKELT. KEINE REPRÄSENTATION WIRD DURCHGEFÜHRT, DASS JEDES KONTO ODER EINEN ERGEBNIS ODER VERLUSTE ENTSTANDEN WIRD. Testimonials auf dieser Website erscheinen tatsächlich per E-Mail-Einreichung oder Web-Umfrage Kommentare erhalten. Sie sind individuelle Erfahrungen, was das wirkliche Leben Erfahrungen derer, die unsere Produkte und / oder Dienstleistungen in irgendeiner Weise oder anderen verwendet haben. Allerdings sind sie einzelne Ergebnisse und Ergebnisse variieren. Wir behaupten nicht, dass sie typische Ergebnisse sind, die die Verbraucher in der Regel erreichen werden. Die Zeugnisse sind nicht unbedingt repräsentativ für alle diejenigen, die unsere Produkte und / oder Dienstleistungen verwendet wird. Die Zeugnisse werden angezeigt gegeben wörtlich außer zur Korrektur der grammatische oder Tippfehler. Einige wurden verkürzt, was bedeutet, dass nicht die ganze Botschaft des Zeugnisautors angezeigt wird, wenn sie langwierig erschien oder das Zeugnis in seiner Gesamtheit für die Allgemeinheit irrelevant erschien. E-Mail: kdavey at kjtradingsystems (c) Urheberrecht - KJ Trading Systems. Alle Rechte vorbehalten. KJ Trading SystemsBasics of Algorithmic Trading: Konzepte und Beispiele Laden des Spielers. Ein Algorithmus ist ein spezifischer Satz klar definierter Anweisungen, die darauf abzielen, eine Aufgabe oder einen Prozess durchzuführen. Algorithmischer Handel (automatisierter Handel, Black-Box-Handel oder einfach Algo-Handel) ist der Prozess der Verwendung von Computern programmiert, um eine definierte Reihe von Anweisungen für die Platzierung eines Handels folgen, um Gewinne mit einer Geschwindigkeit und Häufigkeit, die unmöglich ist, Menschlichen Händler. Die definierten Regelsätze basieren auf Timing, Preis, Menge oder jedem mathematischen Modell. Neben den Gewinnchancen für den Trader macht algo-trading die Märkte liquider und macht den Handel systematischer, indem er emotionale menschliche Auswirkungen auf die Handelsaktivitäten ausschließt. Angenommen, ein Trader folgt diesen einfachen Handelskriterien: Kaufe 50 Aktien einer Aktie, wenn der 50-Tage-Gleitende Durchschnitt über dem 200-Tage-Gleitdurchschnitt liegt. Verkaufe Aktien der Aktie, wenn der 50-Tage-Gleitende Durchschnitt unter den 200-Tage-Gleitender Durchschnitt fällt Mit diesem Satz von zwei einfachen Anweisungen ist es einfach, ein Computerprogramm zu schreiben, das automatisch den Aktienkurs (und die gleitenden Durchschnittsindikatoren) überwacht und die Kauf - und Verkaufsaufträge platziert, wenn die definierten Bedingungen erfüllt sind. Der Händler muss nicht mehr eine Uhr für Live-Preise und Grafiken, oder legen Sie die Aufträge manuell zu halten. Das algorithmische Handelssystem tut es automatisch, indem er die Handelschance korrekt identifiziert. (Mehr zu den gleitenden Durchschnitten finden Sie unter: Einfache Bewegungsdurchschnitte machen Trends aus.) Algo-trading bietet die folgenden Vorteile: Handel zu bestmöglichen Preisen ausgeführt Sofortige und genaue Auftragsabwicklung (dadurch hohe Chancen bei der Ausführung auf gewünschten Ebenen) Trades Timing korrekt und sofort, um signifikante Preisänderungen zu vermeiden Reduzierte Transaktionskosten (siehe nachfolgendes Beispiel für die Implementierungsminderung) Gleichzeitige automatisierte Überprüfung mehrerer Marktbedingungen Reduziertes Risiko manueller Fehler bei der Platzierung der Trades Backtest des Algorithmus auf der Grundlage verfügbarer historischer und Echtzeitdaten Reduziert Möglichkeit von Fehlern durch menschliche Händler auf der Grundlage emotionaler und psychologischer Faktoren Der größte Teil des heutigen Algo-Handels ist der Hochfrequenzhandel (HFT), der versucht, eine große Anzahl von Aufträgen mit sehr schnellen Geschwindigkeiten auf mehrere Märkte und mehrfache Entscheidung zu setzen Parameter, basierend auf vorprogrammierten Anweisungen. Algo-Trading wird in vielen Formen von Handels - und Investitionsaktivitäten eingesetzt, darunter: mittel - bis langfristige Anleger oder Buy-Side-Gesellschaften (Pensionskassen) , Investmentfonds, Versicherungsgesellschaften), die zwar in großen Mengen kaufen, die Aktienpreise aber nicht mit diskreten, großvolumigen Investitionen beeinflussen wollen. Kurzfristige Händler und Verkaufsseitenteilnehmer (Marktmacher, Spekulanten und Arbitrageure) profitieren von automatisierter Handelsausführung, algo-Handelshilfen, um genügend Liquidität für Verkäufer auf dem Markt zu schaffen. Systematische Händler (Trendfolger, Paare Händler, Hedgefonds usw.) finden es viel effizienter, ihre Handelsregeln zu programmieren und das Programm automatisch handeln zu lassen. Algorithmischen Handel bietet einen systematischeren Ansatz für den aktiven Handel als Methoden auf der Grundlage einer menschlichen Händler Intuition oder Instinkt. Algorithmische Handelsstrategien Jede Strategie für den algorithmischen Handel erfordert eine identifizierte Chance, die in Bezug auf ein verbessertes Ergebnis oder eine Kostensenkung rentabel ist. Die folgenden handelsstrategien werden im algo-handel verwendet: Die gebräuchlichsten algorithmischen handelsstrategien folgen den trends bei gleitenden durchschnitten. Kanal Ausbrüche. Preisniveaubewegungen und damit zusammenhängende technische Indikatoren. Dies sind die einfachsten und einfachsten Strategien, um durch den algorithmischen Handel zu implementieren, da diese Strategien keine Prognosen oder Preisvorhersagen beinhalten. Trades werden basierend auf dem Auftreten von wünschenswerten Trends initiiert. Die einfach und unkompliziert durch Algorithmen implementiert werden können, ohne in die Komplexität der Vorhersageanalyse einzutreten. Das oben genannte Beispiel für 50 und 200 Tage gleitenden Durchschnitt ist ein beliebter Trend nach Strategie. (Für mehr über Tendenzhandelsstrategien siehe: Einfache Strategien zur Aktivierung von Trends.) Der Kauf eines dualen börsennotierten Wertpapiers zu einem niedrigeren Kurs in einem Markt und der gleichzeitigen Veräußerung zu einem höheren Preis in einem anderen Markt bietet die Preisdifferenz als risikofreien Gewinn Oder Arbitrage. Der gleiche Vorgang kann für Aktien gegen Futures-Instrumente repliziert werden, da Preisunterschiede von Zeit zu Zeit bestehen. Die Implementierung eines Algorithmus zur Identifizierung solcher Preisunterschiede und die Platzierung der Aufträge ermöglicht profitable Chancen in effizienter Weise. Die Indexfonds haben definierte Perioden des Ausgleichs festgelegt, um ihre Bestände auf ihre Benchmark-Indizes zu bringen. Dies schafft profitable Chancen für algorithmische Händler, die auf erwarteten Trades, die 20-80 Basispunkte Gewinne in Abhängigkeit von der Anzahl der Aktien im Index-Fonds, kurz vor dem Index Fonds Rebalancing bieten zu profitieren. Solche Trades werden über algorithmische Handelssysteme für rechtzeitige Ausführung und beste Preise initiiert. Viele bewährte mathematische Modelle, wie die delta-neutrale Trading-Strategie, die den Handel auf Kombination von Optionen und die zugrunde liegenden Sicherheit ermöglichen. Wo Trades zum Ausgleich von positiven und negativen Deltas platziert werden, so dass das Portfolio-Delta auf Null gehalten wird. Die mittlere Reversionsstrategie basiert auf der Idee, dass die hohen und niedrigen Preise eines Vermögenswertes ein temporäres Phänomen sind, das periodisch auf ihren Mittelwert zurückgeht. Ermittlung und Definition einer Preisspanne und Implementierung Algorithmus auf der Grundlage, dass Trades automatisch platziert werden, wenn der Preis für Asset Pausen in und aus der definierten Bereich ermöglicht. Die volumengewogene durchschnittliche Preisstrategie bricht einen großen Auftrag auf und gibt dynamisch bestimmte kleinere Stücke des Auftrags auf den Markt ab, indem sie spezifische historische Volumenprofile verwendet. Ziel ist es, die Order in der Nähe des volumengewichteten Durchschnittspreises (VWAP) auszuführen und damit den Durchschnittspreis zu nutzen. Die zeitgewichtete durchschnittliche Preisstrategie baut einen großen Auftrag auf und gibt dynamisch bestimmte kleinere Stücke des Auftrags auf dem Markt unter Verwendung gleichmäßig geteilter Zeitschlitze zwischen einer Anfangs - und einer Endzeit frei. Ziel ist es, die Order in der Nähe des Durchschnittspreises zwischen der Start - und Endzeit auszuführen, wodurch die Marktwirkung minimiert wird. Solange der Handelsauftrag nicht vollständig gefüllt ist, setzt dieser Algorithmus fort, Teilaufträge entsprechend der definierten Teilnahmequote und entsprechend dem auf den Märkten gehandelten Volumen zu senden. Die zugehörige Schrittstrategie sendet Aufträge zu einem benutzerdefinierten Prozentsatz der Marktvolumina und erhöht oder verringert diese Beteiligungsquote, wenn der Aktienkurs auf benutzerdefinierte Ebenen ankommt. Die Implementierungs-Defizit-Strategie zielt darauf ab, die Ausführungskosten eines Auftrags durch den Handel auf dem Real-Time-Markt zu minimieren, wodurch die Kosten der Bestellung eingespart werden und die Opportunitätskosten der verzögerten Ausführung profitieren. Die Strategie wird die angestrebte Beteiligungsquote erhöhen, wenn sich der Aktienkurs positiv entwickelt und sinkt, wenn der Aktienkurs sich negativ bewegt. Es gibt einige spezielle Klassen von Algorithmen, die versuchen, Ereignisse auf der anderen Seite zu identifizieren. Diese Sniffing-Algorithmen, die beispielsweise von einem Sell-Market-Hersteller genutzt werden, haben die eingebaute Intelligenz, um die Existenz von Algorithmen auf der Buy-Seite eines großen Auftrags zu identifizieren. Eine solche Erkennung durch Algorithmen hilft dem Marktmacher, große Orderchancen zu identifizieren und ihm zu ermöglichen, durch das Ausfüllen der Aufträge zu einem höheren Preis zu profitieren. Dies wird manchmal als Hightech-Front-Run bezeichnet. (Für mehr über Hochfrequenzhandel und betrügerische Praktiken, siehe: Wenn Sie Aktien kaufen, sind Sie in HFTs beteiligt.) Technische Anforderungen für Algorithmic Trading Die Umsetzung der Algorithmus mit einem Computer-Programm ist der letzte Teil, mit Backtesting clubbed. Die Herausforderung besteht darin, die identifizierte Strategie in einen integrierten EDV-gestützten Prozess umzuwandeln, der Zugang zu einem Handelskonto für die Auftragserteilung hat. Die folgenden werden benötigt: Programmierkenntnisse, um die erforderliche Handelsstrategie zu programmieren, angeheuerte Programmierer oder vorgefertigte Handelssoftware Netzwerkkonnektivität und Zugang zu Handelsplattformen, um die Aufträge zu vergeben Zugang zu Marktdatenfeeds, die durch den Algorithmus auf Gelegenheitsmöglichkeiten überwacht werden Bestellungen Die Fähigkeit und Infrastruktur, Backtest System einmal gebaut, bevor es live auf realen Märkten Erhältliche historische Daten für Backtesting, abhängig von der Komplexität der Regeln in Algorithmen implementiert Hier ist ein umfassendes Beispiel: Royal Dutch Shell (RDS) ist in Amsterdam gelistet (AEX) und der London Stock Exchange (LSE). Erstellen Sie einen Algorithmus, um Arbitrage-Chancen zu identifizieren. Hier sind einige interessante Beobachtungen: AEX-Geschäfte in Euros, während LSE in Sterling Pfund handelt Wegen der einstündigen Zeitverschiebung, öffnet AEX eine Stunde früher als LSE, gefolgt von beiden Börsen, die gleichzeitig für die nächsten paar Stunden gehandelt werden und dann nur im LSE Handel Die letzte Stunde als AEX schließt Können wir erkunden die Möglichkeit des Arbitrage-Handels auf der Royal Dutch Shell-Aktien auf diesen beiden Märkten in zwei verschiedenen Währungen aufgeführt Ein Computer-Programm, das aktuelle Marktpreise lesen können Preis-Feeds von LSE und AEX A forex Rate Feed für GBP-EUR-Umrechnungskurs Auftragsvergabe, die den Auftrag an den richtigen Austausch weiterleiten kann Rücktestfähigkeit auf historische Preisvorschübe Das Computerprogramm sollte folgende Schritte ausführen: Lesen Sie den eingehenden Preisvorschub des RDS-Bestands von beiden Börsen mit den verfügbaren Wechselkursen . Wandeln Sie den Preis einer Währung in einen anderen um. Wenn es eine ausreichend große Preisdiskrepanz gibt (Rabatt auf die Maklergebühren), die zu einer rentablen Chance führt, dann legen Sie den Kaufauftrag auf eine niedrigere Kurswährung an und verkaufen Sie die Order auf dem höheren Kurs Erwünscht, wird die Arbitrage Profit folgen Einfach und leicht Aber die Praxis der algorithmischen Handel ist nicht so einfach zu pflegen und auszuführen. Denken Sie daran, wenn Sie einen Algo-generierten Handel platzieren können, so können die anderen Marktteilnehmer. Infolgedessen schwanken die Preise in Milli - und sogar Mikrosekunden. In dem obigen Beispiel, was passiert, wenn Ihr Kaufhandel ausgeführt wird, aber verkaufen Handel nicht, wie die Verkaufspreise ändern sich durch die Zeit Ihre Bestellung trifft den Markt Sie werden am Ende sitzen mit einer offenen Position. So dass Ihre Arbitrage-Strategie wertlos. Es gibt zusätzliche Risiken und Herausforderungen: zum Beispiel Systemausfallrisiken, Netzwerkkonnektivitätsfehler, Zeitverzögerungen zwischen Handelsaufträgen und Ausführung und vor allem unvollständige Algorithmen. Je komplexer ein Algorithmus ist, desto strenger ist das Backtesting, bevor es in die Tat umgesetzt wird. Quantitative Analyse einer Algorithmen-Performance spielt eine wichtige Rolle und sollte kritisch untersucht werden. Seine spannende für die Automatisierung von Computern mit einer Vorstellung, um Geld zu machen mühelos gehen. Aber man muss sicherstellen, dass das System gründlich getestet wird und die erforderlichen Grenzen gesetzt sind. Analytische Händler sollten das Lernen von Programmierungs - und Gebäudesystemen selbst in Erwägung ziehen, um sicherzustellen, dass die richtigen Strategien in narrensicherer Weise umgesetzt werden. Vorsichtige Verwendung und gründliche Prüfung von Algo-Handel kann profitable Chancen zu schaffen. Als rein Computerwissenschaftler youre in der perfekten Position, um im algorithmischen Handel zu beginnen. Dies ist etwas, das ich aus erster Hand bei Quantiacs 1 gesehen habe, wo Wissenschaftler und Ingenieure in der Lage sind, direkt in den automatisierten Handel ohne vorherige Erfahrung zu springen. Mit anderen Worten, Programmierung Koteletts sind die wichtigsten Zutaten benötigt, um loszulegen. Um ein allgemeines Verständnis davon zu bekommen, welche Herausforderungen Sie nach / während der Erstellung eines algorithmischen Handelssystems erwarten, schauen Sie sich diese Quora Post an. Der Aufbau eines Handelssystems von Grund auf erfordert etwas Hintergrundwissen, eine Handelsplattform, Marktdaten und Marktzugang. Während nicht eine Anforderung, die Auswahl einer einzigen Handelsplattform, die die meisten dieser Ressourcen bietet Ihnen helfen, schnell aufstehen. Davon abgesehen, werden die Fähigkeiten, die Sie entwickeln, übertragbar sein, um jede Programmiersprache und fast jede Plattform. Ob Sie es glauben oder nicht, Gebäude automatisierte Handelsstrategien ist nicht auf eine Markt-Experte. Nichtsdestotrotz, Lernen grundlegenden Marktmechanismen werden Ihnen helfen, entdecken Sie profitablen Handel Strategien. Optionen, Futures und andere Derivate von John C. Hull - Great erste Buch für die Eingabe von quantitativen Finanzen, und nähert es von der Mathematik-Seite. Quantitative Trading von Ernie Chan - Ernie Chan bietet das beste Einführungsbuch zum quantitativen Handel und führt Sie durch den Prozess der Erstellung von Handelsalgorithmen in MATLAB und Excel. Algorithmischer Handel von Futures via Machine Learning - Eine 5-seitige Aufteilung der Anwendung eines einfachen Maschinenlernmodells auf häufig verwendete technische Analyseindikatoren. Heres eine aggregierte Leseliste PDF mit einer vollständigen Aufschlüsselung der Bücher, Videos, Kurse und Handelsforen. Der beste Weg zu lernen ist, indem Sie, und im Falle der automatisierten Handel, die auf Charting und Codierung kommt. Ein guter Ausgangspunkt sind vorhandene Beispiele für Handelssysteme und bestehende Exponate technischer Analysetechniken. Darüber hinaus hat ein erfahrener Informatiker die zusätzliche Kante des in der Lage, maschinelles Lernen auf algorithmischen Handel anzuwenden. Hier sind einige dieser Ressourcen: TradingView - Eine fantastische visuelle Charting-Plattform auf eigene, TradingView ist ein großer Spielplatz für immer bequem mit der technischen Analyse. Es hat den zusätzlichen Vorteil, dass Sie Skript Handel Strategien und durchsuchen andere Völker Handel Ideen. Automated Trading Forum - Große Online-Community für Entsendung Anfänger Fragen und Antworten finden zu gemeinsamen quant Fragen, wenn gerade erst begonnen. Quant-Foren sind ein großartiger Ort, um in Strategien, Werkzeuge und Techniken eintauchen. YouTube-Seminar über Handelsideen mit Arbeitscodebeispielen auf Github. Maschinelles Lernen: Weitere Vorträge zum automatisierten Handel finden Sie im Quantiacs Quant Club. Die meisten Menschen aus einem wissenschaftlichen Hintergrund (ob das ist Informatik oder Ingenieurwesen) haben Exposition gegenüber Python oder MATLAB, die zufällig beliebte Sprachen für quantitative Finanzen. Quantiacs hat eine Open-Source-Toolbox geschaffen, die Backtesting und 15 Jahre historische Marktdaten kostenlos zur Verfügung stellt. Der beste Teil ist, dass alles auf Python und MATLAB gebaut ist, was Ihnen die Wahl, was Sie Ihr System zu entwickeln. Heres eine Beispieltrend-folgende Handelsstrategie in MATLAB. Dies ist der gesamte Code, der benötigt wird, um ein automatisiertes Handelssystem auszuführen, das sowohl die Leistung von MATLAB als auch die Quantiacs Toolbox darstellt. Quantiacs können Sie 44 Futures und alle Aktien des SampP 500 handeln. Darüber hinaus werden eine Vielzahl zusätzlicher Bibliotheken wie TensorFlow unterstützt. (Disclaimer: Ich arbeite bei Quantiacs) Sobald du bereit bist, Geld als Quant zu machen, kannst du dich dem neuesten Quantiacs automatisierten Trading Contest anschließen, mit insgesamt 2,250,000 Investitionen: Kannst du mit den besten Quants konkurrieren 12,2k Views middot View Upvotes Middot Nicht für die Reproduktion Diese Antwort wurde komplett neu geschrieben Hier sind 6 wichtigsten Wissensbasis für den Bau algorithmischen Handelssysteme. Sie sollten mit allen von ihnen vertraut sein, um effektive Handelssysteme zu bauen. Einige der verwendeten Begriffe können etwas technisch sein, aber Sie sollten in der Lage sein, sie durch Googeln zu verstehen. Hinweis: (Die meisten davon) gelten nicht, wenn Sie Hochfrequenztrading machen wollen. Markttheorien Sie müssen verstehen, wie der Markt funktioniert. Insbesondere sollten Sie verstehen, Markt Ineffizienzen, Beziehungen zwischen verschiedenen Vermögenswerten / Produkten und Preisverhalten. Trading-Ideen ergeben sich aus Markt-Ineffizienzen. Sie müssen wissen, wie zu bewerten Markt-Ineffizienzen, die Ihnen einen Handel Rand gegenüber denen, die nicht. Die Entwicklung effektiver Roboter beinhaltet das Verständnis, wie automatisierte Handelssysteme funktionieren. Im Wesentlichen besteht eine algorithmische Handelsstrategie aus 3 Kernkomponenten: 1) Einträge, 2) Exits und 3) Positionsbelegung. Sie müssen diese 3 Komponenten in Bezug auf die Markt-Ineffizienz, die Sie erfassen (und nein, dies ist kein einfacher Prozess) zu entwerfen. Sie müssen nicht wissen, erweiterte Mathematik (obwohl es hilft, wenn Sie mehr komplexe Strategien zu bauen). Gute kritische Denken Fähigkeiten und ein menschenwürdiges greifen auf Statistiken nehmen Sie sehr weit. Design beinhaltet Backtesting (Prüfung auf Handelskante und Robustheit) und Optimierung (Maximierung der Performance bei minimaler Kurvenanpassung). Youll müssen wissen, wie ein Portfolio von algorithmischen Handelsstrategien zu verwalten. Strategien können komplementär oder widersprüchlich sein, was zu ungeplanten Erhöhungen der Risikoexponierung oder unerwünschten Absicherungen führen kann. Kapitalzuteilung ist auch wichtig, teilen Sie Kapital gleichmäßig in regelmäßigen Abständen oder belohnen Sie die Gewinner mit mehr Kapital Wenn Sie wissen, welche Produkte Sie handeln möchten, finden Sie geeignete Handelsplattformen für diese Produkte. Dann lernen Sie die Programmiersprache API dieser Plattform / backtesters. Wenn Sie anfangen, würde ich Quantopian (nur Aktien), Quantconnect (Aktien und FX) oder Metatrader 4 (FX und CFDs auf Aktienindizes, Aktien und Rohstoffe) empfehlen. Die verwendeten Programmiersprachen sind Python, C und MQL4. 4. Datenmanagement Müll in Müllabfuhr. Ungenaue Daten führen zu ungenauen Prüfergebnissen. Wir benötigen vernünftig saubere Daten für genaues Testen. Reinigungsdaten sind ein Kompromiss zwischen Kosten und Genauigkeit. Wenn Sie genauer Daten benötigen, müssen Sie mehr Zeit (Zeit Geld) putzen. Einige Probleme, die dirty Daten verursachen, schließen fehlende Daten, doppelte Daten, falsche Daten (schlechte Ticks) ein. Andere Probleme, die zu irreführenden Daten führen, umfassen Dividenden, Aktiensplits und Futures-Rollovers etc. 5. Risikomanagement Es gibt zwei Hauptrisikomarken: Marktrisiko und operationelles Risiko. Marktrisiken beinhalten Risiken im Zusammenhang mit Ihrer Handelsstrategie. Betrachtet es die Worst-Case-Szenarien Was ist, wenn ein schwarzer Schwan Ereignis wie World War 3 passiert Haben Sie abgesichert unerwünschte Risiken Ist Ihre Position Sizing zu hoch Neben der Verwaltung von Marktrisiken, müssen Sie betrachten das operationelle Risiko. Systemabstürze, Verlust der Internetverbindung, schlechter Ausführungsalgorithmus (führen zu schlecht ausgeführten Preisen oder verpasste Trades aufgrund der Unfähigkeit, Requotes / hoher Schlupf zu behandeln) und Diebstahl von Hackern sind sehr reale Probleme. 6. Live-Ausführung Backtesting und Live-Trading sind sehr unterschiedlich. Sie müssen richtige Makler wählen (MM vs STP vs ECN). Forex Market News mit Forex Trading Foren amp Forex Broker Bewertungen ist Ihr bester Freund, lesen Broker Bewertungen gibt. Sie benötigen eine ordnungsgemäße Infrastruktur (sichere VPN - und Downtime-Handhabung usw.) und Evaluierungsverfahren (Überwachung Ihrer Roboterleistung und Analyse in Bezug auf Marktinaktivität / Backtests / OP-Timisierungen), um Ihren Roboter während seiner gesamten Lebensdauer zu verwalten. Sie müssen wissen, wann Sie eingreifen (ändern / aktualisieren / shutdown / t urn auf Ihren Robotern) und wenn nicht auf. Evaluation und Optimierung von Handelsstrategien Pardo (Große Einblicke in Methoden zum Aufbau und zum Testen von Handelsstrategien) Tragen Sie Ihren Weg zu finanzieller Freiheit ein Van K Tharp (Lächerlich-Click-Köder beiseite, dieses Buch ist ein großer Überblick zu mechanischen Handelssystemen) Quantitative Trading Ernest Chan (Große Einführung in algo Handel auf einer Retail-Ebene.) Handel und Börsen: Markt-Mikrostruktur für Praktiker Larry Harris (Markt-Mikrostruktur ist die Wissenschaft, wie der Austausch funktioniert und was tatsächlich passiert, wenn ein Handel platziert wird. Es ist wichtig, diese Informationen zu kennen Auch wenn Sie gerade erst anfangen) Algorithmic Trading amp DMA Barry Johnson (Shed Licht auf Banken Ausführung Algorithmen. Dies ist nicht direkt anwendbar Ihre Algo Handel, aber es ist gut zu wissen) The Quants Scott Patterson (Kriegsgeschichten von einigen Top-Quants Grundlagen der Algo Trading AlgoTrading101 (Disclaimer: Ich besitze diese Seite / Kurs. Lernen Sie Roboterentwurfstheorien, Markttheorien und Kodierung. Verwendet MQL4) - Join the challenge (Lernen Sie Handelskonzepte und Backtesting-Theorien. Sie haben vor kurzem ihre eigene Backtesting-und Handelsplattform entwickelt, so dass dieser Teil ist noch neu für mich. Aber ihre Wissensbasis auf Handelskonzepte sind gut.) Empfohlene Blogs / Foren (diese Einschließlich Finanz-, Handels - und Algo-Handelsforen): Empfohlene Programmiersprachen: Wenn Sie wissen, welche Produkte Sie handeln möchten, finden Sie geeignete Handelsplattformen für diese Produkte. Dann lernen Sie die Programmiersprache API dieser Plattform / backtesters. Wenn Sie anfangen, würde ich Quantopian (nur Aktien), Quantconnect (Aktien und FX) oder Metatrader 4 (FX und CFDs auf Aktienindizes, Aktien und Rohstoffe) empfehlen. Die verwendeten Programmiersprachen sind Python, C und MQL4. 10.9k Views middot View Upvotes middot Nicht für die Reproduktion Obwohl dies ein sehr breites Thema mit Verweisen auf Gebäude-Algorithmen, Einstellung Infrastruktur, Asset Allocation und Risikomanagement, aber ich werde nur auf den ersten Teil, wie sollte Arbeit auf den Aufbau unserer eigenen Algorithmus konzentrieren , Und das Richtige tun. 1. Aufbau der Strategie. Einige der wichtigsten Punkte, die hier zu beachten sind: Catch Big Trends - eine gute Strategie muss in allen Fällen, Geld verdienen, wenn der Markt trends. Märkte gehen mit einem guten Trend, der nur 15-20 der Zeit dauert, aber dies ist die Zeit, wenn alle Katzen und Hunde (Händler aus allen Zeitrahmen, intraday, täglich, wöchentlich, langfristig) sind einkaufen und sie alle Haben ein gemeinsames Thema. Viele Händler bauen auch mittlere Reversionsstrategien, in denen sie versuchen, die Bedingungen zu beurteilen, wenn der Preis weit von dem Mittelwert entfernt ist, und nehmen einen Handel gegen den Trend, aber sie sollten gebaut werden, wenn Sie erfolgreich gebaut haben und gehandelt einige gute Tendenz nach Systemen . Chancen zu stapeln - Die Menschen arbeiten oft daran, ein System zu entwickeln, das ein ausgezeichnetes Gewinn / Verlust-Verhältnis hat, aber das ist nicht der richtige Ansatz. Zum Beispiel ein Algo mit einem Sieger von 70 mit einem durchschnittlichen Gewinn von 100 pro Handel und einem durchschnittlichen Verlust von 200 pro Handel wird nur 100 pro 10 Trades (10 / Trade net). Aber ein Algo mit einem Sieger von 30 mit einem durchschnittlichen Gewinn von 500 pro Handel und Verlust von 100 pro Handel wird einen Nettogewinn von 800 für 10 Trades (80 / Handel) zu machen. So ist es nicht notwendig, dass Gewinn / Verlust-Verhältnis gut sein sollte, eher es039s die Chancen zu stapeln, die besser sein sollte. Dies geht durch die Aussage quitKeep Verluste klein, aber lassen Sie Ihre Gewinner runquot. Wenn Sie investieren, ist was bequem ist selten profitable. quot - Robert Arnott Drawdown - Drawdown ist unvermeidlich, wenn Sie jede Art von Strategie folgen. So während der Gestaltung eines algo don039t versuchen, den Drawdown zu reduzieren oder einige spezielle benutzerdefinierte Zustand zu kümmern, dass Drawdown zu nehmen. Diese spezifische Bedingung kann in Zukunft als eine Straßensperre beim Fangen einer großen Tendenz fungieren und Ihr algo kann schlecht durchführen. Risikomanagement - Beim Aufbau einer Strategie sollten Sie immer ein Ausfahrtstor haben, unabhängig vom Markt. Der Markt ist ein Ort der Chancen und Sie müssen ein Algo Design, um Sie aus einem Handel so schnell wie möglich, wenn es doesn039t passen Ihre Risiko-Appetit. Normalerweise wird es argumentiert, dass Sie 1-2 von Kapital in jedem Handel riskieren müssen und ist in einer Vielzahl von Möglichkeiten optimal, wie auch wenn Sie arnd 10 falschen Handel in Folge erhalten Ihr Kapital wird nur um 20 zu sinken. Aber das ist nicht die Fall in tatsächlichen Marktszenario. Einige verlierende Trades werden zwischen 0 und 1 liegen, während manche auf 3-4 gehen können. Daher ist es besser, das durchschnittliche Verlustkapital pro Trade und das maximale Kapital, das man in einem Trade verlieren kann, zu definieren, da die Märkte völlig zufällig sind und nicht beurteilt werden können . Egal, einmal in eine Weile, der Markt tut etwas so dumm es nimmt Ihren Atem weg. quot - Jim Cramer 2. Testing und Optimierung einer Strategie Slippage. Wenn wir eine Strategie auf historische Daten testen, gehen wir davon aus, dass die Bestellung zu dem von dem Algo angekündigten vordefinierten Preis ausgeführt wird. Aber das wird nie der Fall sein, da wir mit Market Maker und HFT Algo039s jetzt zu tun haben. Ihre Bestellung in today039s Welt wird nie auf den gewünschten Preis ausgeführt werden, und es wird Schlupf. Dies muss in die Prüfung einbezogen werden. Marktwirkung: Das durch den Algo gehandelte Volumen ist ein weiterer wichtiger Faktor, der bei der Durchführung von Rücktests und der Erhebung historischer Ergebnisse zu berücksichtigen ist. Da das Volumen steigt, werden die Aufträge von algo erhebliche Auswirkungen auf den Markt haben und der durchschnittliche Preis der gefüllten Bestellung wird sehr unterschiedlich sein. Ihre Algo produzieren komplette Ergebnisse in tatsächlichen Marktbedingungen, wenn Sie nicht studieren die Lautstärke Dynamik Ihre Algo hat. Optimierung: Die meisten Händler schlagen Sie vor, nicht Kurvenanpassung und über Optimierung zu tun und sie sind korrekt, da die Märkte eine Funktion der gelegentlichen Variablen sind und keine zwei Situation wird immer die selben sein. So optimieren Parameter für bestimmte Situationen ist eine schlechte Idee. Ich würde Ihnen empfehlen, für Zonal Optimization zu gehen. Es ist eine Technik, der ich folgen, kaufen Identifizierungszonen, die ähnliche Merkmale in Bezug auf die Volatilität und Volumen haben. Optimieren Sie diese Bereiche separat, anstatt optimieren für den gesamten Zeitraum. Die oben genannten sind einige der grundlegendsten und wichtigsten Schritte, die ich folgen, bei der Umwandlung eines grundlegenden Gedanken in einen Algorithmus und Überprüfung it039s Gültigkeit. Jeder hat das brainpower, der Börse zu folgen. Wenn Sie es durch fünfte Klasse Mathematik gemacht haben, können Sie es tun. Peter Lynch 14.5k Ansichten middot Ansicht Upvotes middot Nicht für Fortpflanzung Um mit den Grundlagen zu beginnen, erhalten Sie einen Halt von Amibroker (AmiBroker - Download). Amibroker hat eine leicht zu erlernende Sprache und leistungsstarke Backtest-Engine, wo Sie Prototypen Ihre Ideen. Auch bekommen Howard Bandy 039s Buch Quantitative Trading Systems. Dieses Buch ist eine wirklich gute Einführung in die Konzepte der Quantentwicklung. Sie müssen auch mindestens ein grundlegendes Wissen der Statistik. Es gibt viele gute MOOC-Kurse für diese kostenlos. Wie diese Statistik One - Princeton University Coursera It039s auch wert folgende The Whole Street. Die ein Mashup aller großen Blogs ist, von denen viele den Amibroker-Code mit ihren Ideen veröffentlichen. Von dort, it039s dann lohnt es sich Python (lernen python - Google Suche), und auch dabei Andrew Ng039s ausgezeichnet Stanford University Machine Learning-Kurs, der kostenlos läuft auf Coursera. Wenn Sie dann Ihre eigenen Algorithmen zum Test setzen möchten, sind gute Aufstellungsorte dafür Quantconnect oder Quantopian. Schließlich hat dieser Kerl einige gute Ratschläge, um es in Ihre Karriere zu verwandeln. Www. quantstart / Viel Glück mit der Reise Teilweise genommen von Alan Clement039s Antwort auf Wie kann ein Softwareentwickler in der Finanzierung ein Quant-Entwickler werden 14.4k Ansichten middot Ansicht Upvotes middot Nicht für Reproduktion Da ich ein Informatik-Absolvent bin, der ein Ultrahochfrequenz-Handelssystem von Grund auf gebaut hat, denke ich, dass ich Programmiererperspektive zu einigen wirklich fantastischen Antworten hinzufügen kann, auf wie man ein algorithmisches Handelssystem aufbauen kann. Es gibt nur 3 Hauptblöcke in einem Algo Trading System (ATS) 1. Marktdaten-Handler (zB FAST-Handler) 2. Strategie-Modul (zB crossOver Strategie) 3. Order Router (zB FIX Router) können Sie Risk Module entweder hinzufügen Das Strategy Module oder das Order Router Module oder beides. So lange Ihr Datenfluss ist richtig, sollten Sie gut zu gehen. Denken Sie daran, wenn Sie die Gestaltung eines ATS für minimale Latenz, indem mehr Schichten oder Komplexität erhöht es. Minimal ATS-Architektur Und wenn Sie die Glocken und Pfeifen hinzufügen, würde es ein wenig komplex: Wenn Sie sich auch für die nitty-gritty der Umsetzung der oben genannten Architektur interessiert sind, sollten Sie die folgenden Dinge im Auge behalten. Vermeiden Sie Schlösser / Mutexes. Wenn Sie es verwenden müssen, versuchen Sie, sie durch lockless Strukturen mit Atomkernen zu ersetzen. Es gibt mehrere Bibliotheken für locklose Datenstrukturen (z. B. libcds, Concurrency-Kit usw.). C-11 unterstützt std :: atomar. Und Sie sollten danach streben, sie zu benutzen. Wenn Sie eine geringe Latenz anstreben, vermeiden Sie, was in QuickFIX gemacht wird. Seine geschrieben für Sicherheit / Flexibilität / Wiederverwendbarkeit als Objekt (Sperren) Erstellung und Vernichtung wird für jeden Aufruf einer Nachricht an den Router durchgeführt. Sicherlich keine Möglichkeit, eine Latenz sensible Code schreiben. Keine Laufzeitspeicherbelegung. Laufzeitpfad sollte maßgeschneiderte und sperrenfreie Speicherverwaltung mit vorab zugewiesenem Speicherpool verwenden. Die gesamte Initialisierung kann in Konstruktoren durchgeführt werden. Feste Verbindung. Threading-Modell, I / O-Modell und Speicher-Management sollte so konzipiert, zusammen zu arbeiten, um eine optimale Gesamtleistung zu erzielen. Dies geht gegen das OOP-Konzept der losen Kopplung, aber es ist notwendig, um Laufzeitkosten des dynamischen Polymorphismus zu vermeiden. Verwenden Sie Vorlagen. In der gleichen Vene, würde ich auch vorschlagen, dass Sie auf C-Templatierung, um Flexibilität des Codes zu erreichen. Mit so viel neuen Funktionen hinzugefügt, um Vorlagen in c11, wäre es ein Verbrechen, es nicht für mehr Flexibilität zu verwenden. OS / Hardware-Optimierung: Schließlich sollten Sie mit Linux RT Kernel und Solarflare Netzwerkkarte mit OpenOnLoad Treiber für minimale Latenz arbeiten zu arbeiten. Können Sie weiter schauen, um die CPU zu isolieren und führen Sie Ihr Programm auf, dass bestimmte Kern. Wenn niedrige Latenz nicht das ist, was Sie anstreben, gibt es Varianten von ATS-Ressourcen frei verfügbar auf dem Netz, z. B. QuickFIX (C), Marketcetera (Java). Viele andere Anbieter bieten auch Backtesting und Trading-Modul, die eng mit ihren eigenen Backends gekoppelt sind. Beliebte sind Quantconnect, Quantiacs, Interactive Broker, Wealth Lab, TradeStation und AmiBroker. Quantopian verwendet Zipline, die eine Open-Source-Python-basierte Bibliothek ist, und wird immer beliebter. Auf der anderen Seite gibt es keinen besseren Weg zu lernen, als selbst zu bauen. Having said that, wenn Sie beginnen, von Grund auf zu bauen, während Sie viel lernen, aber Sie werden auch am Ende verbringen viel Zeit (paar Monate). Und wenn Sie bereit sind, Ihre Zeit zu investieren, würde ich Ihnen auch raten, die Nuancen von ATS und algorithmischen Handel im Allgemeinen zu lernen, bevor Sie ein solches System zu bauen. In der Tat haben einige meiner Studenten vor kurzem ihre eigenen Handelssysteme erstellt - www. quantinsti / blog / e. . Falls es interessant klingt, können Sie www. quantinsti / epat / für mehr Details. 1.1k Views middot Ansicht Upvotes middot Nicht für ReproductionBest Programmiersprache für algorithmische Handelssysteme Von Michael Halls-Moore am 26. Juli 2013 Eine der häufigsten Fragen, die ich in der QS-Mail-Tasche erhalten ist Was ist die beste Programmiersprache für algorithmischen Handel. Die kurze Antwort ist, dass es keine beste Sprache. Strategieparameter, Leistung, Modularität, Entwicklung, Resiliency und Kosten müssen berücksichtigt werden. Dieser Artikel wird skizzieren die notwendigen Komponenten einer algorithmischen Handelssystemarchitektur und wie Entscheidungen über die Umsetzung beeinflussen die Wahl der Sprache. Zuerst werden die Hauptkomponenten eines algorithmischen Handelssystems betrachtet, wie die Forschungsinstrumente, der Portfoliooptimierer, der Risikomanager und die Ausführungsmaschine. Anschließend werden verschiedene Handelsstrategien untersucht und auf die Gestaltung des Systems eingegangen. Insbesondere werden die Handelshäufigkeit und das voraussichtliche Handelsvolumen diskutiert. Sobald die Handelsstrategie ausgewählt worden ist, ist es notwendig, das gesamte System zu gestalten. Dies beinhaltet die Wahl der Hardware, des Betriebssystems und der Systemresistenz gegenüber seltenen, potentiell katastrophalen Ereignissen. Während die Architektur in Erwägung gezogen wird, muss auf die Leistung - sowohl auf die Forschungsinstrumente als auch auf die Live-Ausführungsumgebung - geachtet werden. Was ist das Handelssystem versucht zu tun Bevor die Entscheidung über die beste Sprache, mit der ein automatisiertes Handelssystem zu schreiben, ist es notwendig, die Anforderungen zu definieren. Ist das System wird rein Ausführungsbasis Will das System erfordern ein Risikomanagement oder Portfolio-Bau-Modul Wird das System erfordern eine leistungsstarke Backtester Für die meisten Strategien kann das Handelssystem in zwei Kategorien aufgeteilt werden: Forschung und Signal-Generierung. Die Forschung befasst sich mit der Bewertung einer Strategieleistung gegenüber historischen Daten. Der Prozess der Bewertung einer Handelsstrategie gegenüber früheren Marktdaten wird als Backtesting bezeichnet. Die Datengröße und die algorithmische Komplexität werden einen großen Einfluss auf die Rechenintensität des Backtests haben. CPU-Geschwindigkeit und Parallelität sind oft die begrenzenden Faktoren bei der Optimierung der Durchführungsgeschwindigkeit. Die Signalerzeugung betrifft die Erzeugung eines Satzes von Handelssignalen aus einem Algorithmus und das Senden solcher Befehle an den Markt, üblicherweise über eine Vermittlung. Für bestimmte Strategien ist ein hohes Leistungsniveau erforderlich. I / O-Probleme wie Netzwerkbandbreite und Latenz sind oft der limitierende Faktor bei der Optimierung von Ausführungssystemen. So kann die Wahl der Sprachen für jede Komponente Ihres gesamten Systems ganz anders sein. Art, Häufigkeit und Umfang der Strategie Die Art der verwendeten algorithmischen Strategie hat erhebliche Auswirkungen auf die Gestaltung des Systems. Es wird notwendig sein, die Märkte zu betrachten, die gehandelt werden, die Konnektivität zu externen Datenanbietern, die Häufigkeit und das Volumen der Strategie, der Kompromiss zwischen der Leichtigkeit der Entwicklung und der Leistungsoptimierung sowie jegliche benutzerdefinierte Hardware einschließlich der gemeinsamen Sitzung Server, GPUs oder FPGAs, die erforderlich sein könnten. Die Technologieentscheidungen für eine niederfrequente US-Aktienstrategie werden sich weitgehend von denen eines hochfrequenten statistischen Arbitrage-Strategiehandels am Futures-Markt unterscheiden. Vor der Wahl der Sprache müssen viele Datenanbieter ausgewertet werden, die sich auf die vorliegende Strategie beziehen. Es wird notwendig sein, die Konnektivität zu dem Anbieter, die Struktur von beliebigen APIs, die Aktualität der Daten, die Speicheranforderungen und die Ausfallsicherheit in Anbetracht eines Offline-Vendors zu prüfen. Es ist auch ratsam, schnellen Zugriff auf mehrere Anbieter zu haben. Verschiedene Instrumente haben alle ihre eigenen Speicherquirks, wobei Beispiele davon mehrere Tickersymbole für Aktien und Verfallsdaten für Futures (ganz zu schweigen von spezifischen OTC-Daten) umfassen. Dies muss in der Plattform-Design berücksichtigt werden. Häufigkeit der Strategie ist wahrscheinlich einer der größten Treiber, wie der Technologie-Stack definiert werden. Strategien, die Daten häufiger als minutiös oder sekundär verwenden, erfordern eine beträchtliche Betrachtung hinsichtlich der Leistung. Eine Strategie, die zweite Balken überschreitet (d. H. Tick-Daten), führt zu einem leistungsgetriebenen Design als die primäre Anforderung. Für Hochfrequenzstrategien muss eine erhebliche Menge an Marktdaten gespeichert und ausgewertet werden. Software wie HDF5 oder kdb werden häufig für diese Rollen verwendet. Um die umfangreichen Datenmengen für HFT-Anwendungen zu verarbeiten, muss ein ausgereiftes Backtester - und Ausführungssystem eingesetzt werden. C / C (möglicherweise mit einigen Assembler) ist wahrscheinlich der stärkste Sprachkandidat. Ultra-Hochfrequenz-Strategien wird fast sicher erfordern benutzerdefinierte Hardware wie FPGAs, Austausch Co-Location und kernal / network interface tuning. Forschungssysteme Forschungssysteme umfassen typischerweise eine Mischung aus interaktiver Entwicklung und automatisiertem Scripting. Ersteres findet oft in einer IDE wie Visual Studio, MatLab oder R Studio statt. Letztere umfassen umfangreiche numerische Berechnungen über zahlreiche Parameter und Datenpunkte. Dies führt zu einer Sprachauswahl, die eine einfache Umgebung zum Testen von Code bereitstellt, aber auch eine ausreichende Leistung bietet, um Strategien über mehrere Parameterabmessungen auszuwerten. Typische IDEs in diesem Bereich sind Microsoft Visual C / C, das umfangreiche Debugging-Dienstprogramme, Code-Completion-Fähigkeiten (über Intellisense) und einfache Übersichten über den gesamten Projektstapel (über die Datenbank ORM, LINQ) MatLab enthält. Die für umfangreiche numerische lineare Algebra und vectorized Operationen, sondern in einer interaktiven Konsole Weise R Studio. Die die statistische Sprachkonsole R in einer vollwertigen IDE-Eclipse-IDE für Linux-Java und C und semi-proprietären IDEs wie Enthought Canopy für Python, die Datenanalyse-Bibliotheken wie NumPy enthalten, umschließt. SciPy Scikit-lernen und Pandas in einer einzigen interaktiven (Konsolen-) Umgebung. Für das numerische Backtesting sind alle obigen Sprachen geeignet, obwohl es nicht notwendig ist, eine GUI / IDE zu verwenden, da der Code im Hintergrund ausgeführt wird. Die Hauptbetrachtung in diesem Stadium ist die der Ausführungsgeschwindigkeit. Eine kompilierte Sprache (wie C) ist oft nützlich, wenn die Dimension des Backtesting-Parameters groß ist. Denken Sie daran, dass es notwendig ist, von solchen Systemen vorsichtig zu sein, wenn dies der Fall ist. Interpretierte Sprachen wie Python nutzen oft Hochleistungsbibliotheken wie NumPy / Pandas für den Backtesting-Schritt, um einen vernünftigen Grad an Wettbewerbsfähigkeit mit zusammenzustellen Äquivalente. Letztlich wird die für das Backtesting gewählte Sprache durch spezifische algorithmische Bedürfnisse sowie die Bandbreite der in der Sprache verfügbaren Bibliotheken bestimmt (weiter unten). Die Sprache, die für die Backtester - und Forschungsumgebungen verwendet wird, kann jedoch vollständig unabhängig von denjenigen sein, die in den Bereichen Portfolio-Konstruktion, Risikomanagement und Ausführungskomponenten verwendet werden. Portfolio-Konstruktion und Risikomanagement Die Komponenten des Portfoliokonstruktions - und Risikomanagements werden von den Handelspartnern oft übersehen. Das ist fast immer ein Fehler. Diese Instrumente bieten den Mechanismus, durch den das Kapital erhalten bleibt. Sie versuchen nicht nur, die Anzahl der riskanten Wetten zu lindern, sondern auch die Abwanderung der Trades selbst zu minimieren und so die Transaktionskosten zu senken. Ausgefeilte Versionen dieser Komponenten können erhebliche Auswirkungen auf die Qualität und Wirtschaftlichkeit der Rentabilität haben. Es ist unkompliziert, eine stabile Strategie zu schaffen, da der Portfoliokonstruktionsmechanismus und der Risikomanager einfach modifiziert werden können, um mehrere Systeme zu behandeln. Sie sollten daher zu Beginn des Entwurfs eines algorithmischen Handelssystems als wesentliche Komponenten betrachtet werden. Die Aufgabe des Portfolio-Bau-System ist es, eine Reihe von gewünschten Trades zu nehmen und produzieren die Menge der tatsächlichen Trades, minimieren churn, halten Exposures zu verschiedenen Faktoren (wie Sektoren, Asset-Klassen, Volatilität etc.) und optimieren die Zuweisung von Kapital an verschiedene Strategien in einem Portfolio. Portfolio-Konstruktion reduziert oft auf eine lineare Algebra Problem (wie eine Matrix-Faktorisierung) und damit die Leistung ist stark abhängig von der Wirksamkeit der numerischen linearen Algebra-Implementierung zur Verfügung. Gemeinsame Bibliotheken sind uBLAS. LAPACK und NAG für C. MatLab besitzt auch umfangreich optimierte Matrixoperationen. Python nutzt NumPy / SciPy für solche Berechnungen. Ein häufig ausgeglichenes Portfolio erfordert eine kompilierte (und gut optimierte) Matrixbibliothek, um diesen Schritt auszuführen, um das Handelssystem nicht zu verkleinern. Das Risikomanagement ist ein weiterer äußerst wichtiger Bestandteil eines algorithmischen Handelssystems. Das Risiko kann in vielen Formen auftreten: Erhöhte Volatilität (obwohl dies für bestimmte Strategien als wünschenswert angesehen werden kann), erhöhte Korrelationen zwischen Assetklassen, Gegenpartei-Default, Serverausfällen, Black Swan-Ereignissen und unentdeckten Bugs im Handelscode wenige. Risikomanagementkomponenten versuchen, die Effekte einer übermäßigen Volatilität und Korrelation zwischen den Assetklassen und ihren nachfolgenden Auswirkungen auf das Handelskapital vorwegzunehmen. Oft reduziert dies auf eine Reihe von statistischen Berechnungen wie Monte Carlo Stresstests. Dies ist sehr ähnlich zu den rechnerischen Bedürfnissen einer Derivate-Preis-Engine und als solche CPU-gebunden werden. Diese Simulationen sind sehr parallelisierbar (siehe unten) und bis zu einem gewissen Grad ist es möglich, Hardware an das Problem zu werfen. Ausführungssysteme Die Aufgabe des Ausführungssystems besteht darin, gefilterte Handelssignale von den Portfolio-Bau - und Risikomanagementkomponenten zu empfangen und an eine Brokerage oder andere Mittel des Marktzugangs zu senden. Für die Mehrheit der Einzelhandel algorithmischen Handelsstrategien beinhaltet dies eine API oder FIX-Verbindung zu einem Brokerage wie Interactive Brokers. Die primären Erwägungen bei der Entscheidung über eine Sprache beinhalten die Qualität der API, die Verfügbarkeit der Sprachverpackung für eine API, die Ausführungshäufigkeit und den erwarteten Schlupf. Die Qualität der API bezieht sich darauf, wie gut sie dokumentiert ist, welche Art von Leistung sie bereitstellt, ob sie auf eine eigenständige Software zugreifen muss oder ob ein Gateway kopflos aufgebaut werden kann (d. h. keine GUI). Im Fall von Interactive Brokers muss das Trader WorkStation-Tool in einer GUI-Umgebung ausgeführt werden, um auf deren API zuzugreifen. Ich musste einmal eine Desktop-Ubuntu-Edition auf einen Amazon Cloud-Server installieren, um auf interaktive Broker remote zuzugreifen, rein aus diesem Grund. Die meisten APIs bieten eine C - und / oder Java-Schnittstelle. In der Regel ist es Aufgabe der Community, sprachspezifische Wrapper für C, Python, R, Excel und MatLab zu entwickeln. Beachten Sie, dass mit jedem zusätzlichen Plugin (vor allem API-Wrapper) gibt es Spielraum für Bugs in das System kriechen. Teste immer Plugins dieser Art und sorge dafür, dass sie aktiv gepflegt werden. Ein lohnendes Maß ist zu sehen, wie viele neue Updates zu einer Codebase in den letzten Monaten gemacht wurden. Die Ausführungshäufigkeit ist für den Ausführungsalgorithmus von größter Bedeutung. Beachten Sie, dass Hunderte von Bestellungen können jede Minute gesendet werden und als solche Leistung ist von entscheidender Bedeutung. Schlupf wird durch eine schlecht durchführende Ausführung System entstehen und dies wird einen dramatischen Einfluss auf die Rentabilität haben. Statisch getippte Sprachen (siehe unten) wie C / Java sind im Allgemeinen optimal für die Ausführung, aber es gibt einen Kompromiss in Entwicklungszeit, Test und Wartungsfreundlichkeit. Dynamisch getippte Sprachen wie Python und Perl sind mittlerweile meist schnell genug. Achten Sie immer darauf, dass die Komponenten modular aufgebaut sind (siehe unten), so dass sie bei der Systemwaage ausgetauscht werden können. Im algorithmischen Handel kann eine Strategie skaliert werden, wenn sie größere Kapitalmengen akzeptieren kann und immer noch konsistente Renditen liefert.


No comments:

Post a Comment