Friday 20 January 2017

Option Trading Python

Python Algorithmic Trading-Bibliothek PyAlgoTrade ist eine Python-Algorithmic Trading-Bibliothek mit Schwerpunkt auf Backtesting und Unterstützung für Papier-Trading und Live-Trading. Lets sagen, Sie haben eine Idee für eine Handelsstrategie und youd wie es mit historischen Daten zu bewerten und sehen, wie es sich verhält. PyAlgoTrade ermöglicht es Ihnen, dies mit minimalem Aufwand zu tun. Hauptmerkmale Vollständig dokumentiert. Ereignisgesteuert . Unterstützt Markt-, Limit-, Stop - und StopLimit-Aufträge. Unterstützt Yahoo Finanzen, Google Finanzen und NinjaTrader CSV-Dateien. Unterstützt alle Arten von Zeitreihen-Daten im CSV-Format, zB Quandl. Bitcoin-Trading-Unterstützung durch Bitstamp. Technische Indikatoren und Filter wie SMA, WMA, EMA, RSI, Bollinger Bands, Hurst Exponent und andere. Leistungsmesswerte wie Sharpe-Ratio und Drawdown-Analyse. Handling Twitter-Ereignisse in Echtzeit. Ereigniserfassung. TA-Lib-Integration. Sehr einfach skalierbar horizontal, das heißt, mit einem oder mehreren Computern zu Backtest einer Strategie. PyAlgoTrade ist kostenlos, Open Source, und es ist lizenziert unter der Apache-Lizenz, Version 2.0.Learn Quant Fähigkeiten Wenn Sie ein Händler oder ein Investor und möchten eine Reihe von quantitativen Handel Fähigkeiten zu erwerben, sind Sie an der richtigen Stelle. Der Handel mit Python-Kurs wird Ihnen die besten Werkzeuge und Praktiken für quantitative Handelsforschung, einschließlich Funktionen und Skripte von Experten quantitative Händler geschrieben. Der Kurs bietet Ihnen maximale Wirkung für Ihre investierte Zeit und Geld. Es konzentriert sich auf die praktische Anwendung der Programmierung auf den Handel anstelle der theoretischen Informatik. Der Kurs zahlt sich schnell aus, indem Sie Zeit in der manuellen Verarbeitung von Daten sparen. Sie verbringen mehr Zeit mit der Recherche Ihrer Strategie und der Umsetzung profitabler Geschäfte. Kursübersicht Teil 1: Grundlagen Sie lernen, warum Python ein ideales Instrument für den quantitativen Handel ist. Wir beginnen mit der Einrichtung einer Entwicklungsumgebung und stellen Ihnen dann die wissenschaftlichen Bibliotheken vor. Teil 2: Handhabung der Daten Erfahren Sie, wie Sie Daten aus verschiedenen Quellen wie Yahoo Finance, CBOE und anderen Websites erhalten. Lesen und Schreiben mehrerer Datenformate einschließlich CSV - und Excel-Dateien. Teil 3: Forschungsstrategien Erlernen Sie, PL und begleitende Leistungsmetriken wie Sharpe und Drawdown zu berechnen. Aufbau einer Trading-Strategie und Optimierung ihrer Performance. Mehrere Beispiele von Strategien werden in diesem Teil diskutiert. Teil 4: Going live Dieser Teil ist um Interactive Brokers API zentriert. Sie erfahren, wie Sie Echtzeit-Bestandsdaten erhalten und Live-Aufträge abgeben können. Viele Beispiel-Code Das Kursmaterial besteht aus Notebooks, die Text zusammen mit interaktivem Code wie diesem enthalten. Sie können lernen, indem Sie mit dem Code interagieren und es zu Ihren eigenen Vorlieben ändern. Es wird ein guter Ausgangspunkt für das Schreiben Ihrer eigenen Strategien Während einige Themen ausführlich erklärt werden, um Ihnen helfen, die zugrunde liegenden Konzepte zu verstehen, in den meisten Fällen müssen Sie nicht einmal Ihre eigenen Low-Level-Code schreiben, weil der Unterstützung durch bestehende offen - Bibliotheken. TradingWithPython Bibliothek kombiniert viel der Funktionalität, die in diesem Kurs als eine gebrauchsfertige Funktionen und wird im gesamten Kurs verwendet werden. Pandas wird Sie mit all der Heavy-Heaviness-Power in Daten-Crunching benötigt. Der gesamte Code ist unter der BSD-Lizenz zur Verfügung gestellt, so dass seine Verwendung in kommerziellen Anwendungen Kursbewertung Ein Pilot des Kurses wurde im Frühjahr 2013 statt, das ist, was die Schüler zu sagen: Matej gut gestalteten Kurs und gute Trainer. Auf jeden Fall lohnt sich der Preis und meine Zeit Lave Jev offensichtlich kannte seine Sachen. Tiefe der Abdeckung war perfekt. Wenn Jev läuft etwas wie dieses wieder, Ill der erste sein, um sich anzumelden. Ich möchte Ihnen sagen, warum ich Python für Finanz-Computing zu verwenden. Es dauerte mehrere Jahre, um ein Verständnis für alle Optionen da draußen zu bekommen und ich werde versuchen, Sie davon zu überzeugen, dass Python ist wirklich das beste Werkzeug für die meisten Aufgaben im Handel. Als ich anfing, als Kind irgendwo in den frühen neunziger Jahren zu programmieren, war die Wahl einer Programmiersprache einfach, da es einfach nicht viele zur Auswahl gab. Ich begann in Pascal und seitdem habe ich in Delphi, C, C, C, Java programmiert. VB, PHP, Matlab, Python, SPIN und sogar ASM. Ich lernte nicht alle diese Sprachen zum Spaß, da ich bessere Dinge zu tun habe (wie wirkliche Arbeit), aber ich brauchte, da ich keine Schweizer Armeemesser-Sprache für alle meine Bedürfnisse hatte. Ich brauchte C und Delphi für Stand-alone-Anwendungen, PHP, um eine Website und Matlab für wissenschaftliche Berechnungen zu bauen. Wie das Sprichwort sagt, ist Jack von allen Geschäften Meister von keiner. So durch die Umstellung von einer Sprache in eine andere habe ich nie erworben Expertenwissen in einem von ihnen. Im Idealfall möchte ich lernen, nur eine Sprache, die für alle Arten von Arbeit geeignet ist: Anzahl knirscht, Anwendung Gebäude, Web-Entwicklung, Schnittstellen mit APIs etc. Diese Sprache wäre einfach zu erlernen, würde der Code kompakt und klar sein, würde es Laufen auf jeder Plattform. Es würde mir ermöglichen, interaktiv zu arbeiten, so dass der Code zu entwickeln, wie ich es schreibe und zumindest frei sein, wie in Rede. Und am wichtigsten, ich kümmere mich viel mehr um meine eigene Zeit als die CPU-Zeit von meinem PC, so dass Zahl knirscht Leistung ist weniger wichtig für mich als meine eigene Produktivität. Heute sind zwei beliebteste Sprachen für technisches und wissenschaftliches Rechnen Matlab und Python. Beide erfüllen viele der oben beschriebenen Wünsche, aber sie haben einige wichtige Unterschiede. Matlab ist am beliebtesten, wenn es um technisches Computing geht. Dies ist, was ich verwendet, um Tag für Tag für die Lösung von Engineering-Problemen. Für numerische Simulationen und die Arbeit mit sauberen Daten, ist es wahrscheinlich das beste Werkzeug gibt es. Gute IDE, fantastische Plotting-Funktionen, tolle Dokumentation. Es ist weniger gut geeignet für die Anwendungsentwicklung oder als Allzwecksprache. Erwarten Sie, 2k für eine grundlegende kommerzielle Lizenz plus Extra für spezifische Werkzeugkästen zu zahlen. Die Finanzforschung in Matlab hat sich für mich als eine große Herausforderung erwiesen, vor allem, weil es keine leichte Handhabung von verschmutzten Daten gibt (Daten, die nicht gut in einer Tabelle angeordnet sind, sondern mehrere Quellen mit unterschiedlichen Daten und fehlenden Einträgen haben). Eine weitere Herausforderung, mit der ich konfrontiert war, hielt meinen Code daran, ein Chaos zu werden. Es ist möglich, ordnungsgemäße Bibliotheken mit Matlab zu schreiben, ist aber weit von trivial und das Sprachdesign fördert wirklich unordentliche Codierung. Während ich Matlab für die Strategieentwicklung entwickelte, konnte ich mit den Mängeln dieser Plattform umgehen. Allerdings, als ich beschlossen, ein automatisches Handelssystem zu bauen, hatte ich eine Sackgasse getroffen. Während ich konnte eine Verbindung zu Interacive Brokers API, stellte sich heraus, dass es keine Möglichkeit, eine zuverlässige Anwendung zu schaffen. Während gut für die Forschung, Matlab saugt für den Einsatz. Dies war, als ich beschloss, auf andere Optionen zu schauen. Python ist Matlab sehr ähnlich und löst die meisten seiner Mängel. Und ist kostenlos Mit Ipython Notebook interaktive Arbeit in Python ist einfach so wie in Matlab, aber was Sie erhalten, ist eine Programmiersprache, die fast jede Aufgabe, von Data Mining bis Web-Entwicklung und Produktion Qualitätsanwendungen mit großen GUIs abzuschließen. Wenn Id wieder von vorne anfangen, würde ich Python wählen, da es mir die Mühe sparen würde, eine andere Sprache für Gui und Web-Entwicklung zu lernen. Nachdem ich Python drei Jahre lang gebraucht habe, bin ich immer noch so begeistert wie der Moment, in dem ich mich in ihn verliebt habe. Ich glaube, dass viele andere Trader stark profitieren können, indem sie von Anfang an Python lernen und aus diesem Grund habe ich einen Trading With Python Kurs eingerichtet. Installation Python, wie die meisten Open-Source-Software hat eine besondere Eigenschaft: es kann eine Herausforderung für einen Anfänger sein, sich um Tausende von Bibliotheken und Tools zu finden. Dieser Leitfaden wird Ihnen helfen, alles, was Sie brauchen, in Ihrem quant Toolbox, hoffentlich ohne Probleme. Glücklicherweise gibt es mehrere Distributionen, die die meisten benötigten Pakete enthalten, was die Installation zu einem Kinderspiel macht. Die beste Verbreitung ist meiner Meinung nach Anaconda von Continuum Analytics. Die Anaconda-Distribution umfasst: Python 3 Python-Interpreter, auf dem alles andere läuft Ipython. Interaktive Shell-Amp-Notizbuch Spyder IDE numpy amp scipy. Wissenschaftliche Rechenwerkzeuge, ähnlich Matlab Pandas 2. Datenstrukturen Bibliothek. Viele weitere wissenschaftliche und Utility-Pakete, siehe Paketliste Also, bitte gehen Sie voran und installieren Anaconda Extra-Tools und Bibliotheken Neben den Goodies, die in mit dem Anaconda Installer enthalten, benötigen Sie mindestens einen absteigenden Text-Editor und ein Browser-Notizblock ist vielseitig Und leichter Text-Editor Google Chrome oder Firefox-Browser ist für Jupyter Notebook erforderlich (Internet Explorer wird nicht funktionieren) Andere handliche Bibliotheken gehören Tools für XML-Lesen, Dokumentation, etc. werden später behandelt werden. Laufender Code Der Großteil des Codes dieses Kurses wird in einem interaktiven Dokument mit dem Namen Notizbuch ausgeführt. Hinweis: Die interaktive Programmierumgebung, die wir verwenden, heißt Jupyter notebook. Früher hieß es IPython Notebook. Wurde aber in Jupyter umbenannt. Dies wurde getan, um zu zeigen, dass mehrere Sprachen unterstützt werden (JUlia, PYThon, R. und mehr) Dieser Kurs wurde vor dieser Namensübertragung geschrieben, so gelegentlich youll Begegnung auf Ipython Notebook. Das ist das gleiche wie Jypyter notebook Starten von Jupyter notebook In diesem Moment (Mai 2016) ist es nicht möglich, das Arbeitsverzeichnis nach dem Starten des Notebooks zu ändern. Sie müssen es in das Verzeichnis mit Ihren Notebooks starten, um Zugriff auf Ihre Notebooks zu erhalten. Es gibt jedoch mehrere Optionen, um schnell Ihre Notebooks zu öffnen: Jupyter Notebook mit einer Verknüpfung starten Wenn Sie ein statisches Verzeichnis zum Speichern der Notebooks verwenden, wäre der einfachste Weg, um sie in einem benutzerdefinierten Verzeichnis zu öffnen, mit einer geänderten Verknüpfung: 1. Suchen Sie die Verknüpfung zum Notebook im Startmenü, indem Sie auf Start klicken und Jupyter im Suchfenster eingeben. Sobald die Verknüpfung gefunden wird, kopieren Sie es in die Zwischenablage, indem Sie die rechte Maustaste drücken und die Kopie auswählen. Dann fügen Sie es auf Ihrem Desktop. Jetzt können Sie das Arbeitsverzeichnis bearbeiten, indem Sie rechts auf der Desktop-Verknüpfung klicken und Eigenschaften auswählen. Ändern Sie das Feld Start in das Verzeichnis, in dem sich Ihre Notebooks befinden. Sie können mehrere Verknüpfungen für jedes einzelne Notebook-Verzeichnis erstellen. Ausgehend von der Befehlszeile Optional können Sie das Jupyter-Notizbuch von der Befehlszeile aus starten: So starten Sie es im rechten Verzeichnis: Öffnen Sie den Windows Explorer Drücken und halten Sie die Umschalttaste gedrückt und klicken Sie mit der rechten Maustaste auf das Verzeichnis, das Sie als Notebook-Standort verwenden möchten. Ein Menü wird eingeblendet. Klicken Sie hier auf Öffnen. Eine Eingabeaufforderung wird mit dem richtigen Pfad gestartet. Starten Sie Jupyter mit jupyter notebook Starten mit Kontextmenü Eine weitere Option zum Starten des Jupyter-Servers in einem Verzeichnis Ihrer Wahl wäre durch Hinzufügen einer Kontextmenü-Verknüpfung. Um die Kontextmenüs zu installieren, folgen Sie den Installationsanweisungen. Wenn Sie mit der rechten Maustaste auf ein Verzeichnis im Windows Explorer klicken, erhalten Sie ein neues Kontextmenü: Grundlagen der Python-Sprache Wenn Sie neu in python sind, sollten Sie nun mit den Grundlagen der Sprache fortfahren . Ich empfehle, dass Sie mit dem Python Language Essentials im Buch Python for Data Analysis beginnen. Optional Eine Auswahl an kostenlosen Online-Tutorials finden Sie auf der Seite Ressourcen. Arbeiten mit Jupyter-Notebooks Notebooks finden Sie in den Beispiel-Notebooks unten auf dieser Seite (oder Sie können sie hier online ansehen). Das erste Notebook gibt Ihnen einen Überblick über die IPython-Umgebung. Um Beispielcode auszuführen, müssen Sie die Notebooks in Ihr Notebook-Verzeichnis extrahieren. Sobald Sie die Datei heruntergeladen haben, können Sie das Notebook in diesem Verzeichnis zu starten, sollte die heruntergeladene Datei apper in der Liste der verfügbaren Notebooks. Eine ausführlichere Anleitung zum Gebrauch des Notebooks finden Sie hier. Wissenschaftliche Bibliotheken NumPy ist ein Grundpaket für wissenschaftliche Berechnungen. In seiner Funktionalität ist es sehr ähnlich zu Matlab, bietet Methoden der Arbeit mit multidimensionalen Matrizen und Arrays. Numpy Website bietet alle Unterlagen, die Sie benötigen zusammen mit einem Tutorial. Aber das Lesen von Kapitel 4 des Buches Python für Datenanalyse ist noch besser, um einen Überblick zu erhalten, was dieses Tool tun kann. Sie sollten nicht zu viel über das Verständnis alle Glocken und Pfeifen von NumPy Sorge, denn jetzt ist es genug, um die allgemeinen Konzepte der Arbeit mit ndarray und Indizierung zu verstehen. Matplotlib Um eine Vorstellung von den fast unendlichen Möglichkeiten dieser Bibliothek zu bekommen, werfen Sie einen Blick auf die matplotlib Galerie. Normalerweise benötigen wir nur die Funktionen plot () und hist (). Ein weiteres großes Tutorial der Plotting-Funktionen ist in diesem Notebook angegeben. Schreiben, Ausführen und Debuggen von Code Bisher konzentrierten wir uns darauf, Code im IPython-Notebook zu schreiben. Dies ist ein guter Weg, um schnell Prototyping, aber wenn Sie die gleiche Funktionalität in verschiedenen Notebooks wiederverwenden müssen, ist copy-kleben Code eine sehr schlechte Angewohnheit. Eine gute Angewohnheit wäre mit Modulen zur Wiederverwendung von Funktionalität. Ein Modul ist im Wesentlichen eine. py-Datei oder ein Verzeichnis mit. py-Dateien, die Funktionen und Klassen enthalten. Diese Funktionen können durch die Importrichtlinie zugänglich gemacht werden. Eine gute Erläuterung der Module finden Sie in den python docs. Wir schauen uns an, unsere eigenen Module in Teil 2 zu schreiben, denn jetzt ist es genug, zu wissen, wie man Funktionalität von vorhandenen Modulen wiederverwenden kann. Ein typischer Code-Entwicklungs-Workflow besteht aus zwei Phasen: Prototyping-Phase: Hier nehmen Sie den Quick-n-dirty Ansatz. Entwickeln Sie interaktiv mit IPython, IPython Notebook oder Spyder. Hier können Sie Funktionen aus vorhandenen Bibliotheken wiederverwenden und neue Funktionen erstellen. Das Notebook ist ideal für interaktive Arbeit, aber weniger geeignet für fortgeschrittene Debugging, ist Spyder hervorragend für Debugging und Ipython ist irgendwo dazwischen. Meine eigene Erfahrung ist, daß ein vorgerückter Debugger selten erfordert wird, normalerweise kann ich 70 der Störungen lösen, gerade indem ich die Fehlermeldung betrachte, eine andere 25, indem ich eine Druckaussage addiere. Es gibt auch eine Möglichkeit, ein Debugger aus dem Notebook zu starten. Geben Sie einfach qtconsole in das Notebook und eine neue Konsole wird verbunden mit dem gleichen ipython hinter den Kulissen. Die Konsole hat Zugriff auf alle Variablen und kann auch Debug starten. Die eine Debugging-Sitzung starten wird. Modulphase: Sobald Sie mit der in einem Prototyping-Stadium entwickelten Funktionalität zufrieden sind, können Sie diese in ein Modul integrieren. In diesem Stadium ist es eine gute Praxis, einige Dokumente zu dem Code hinzuzufügen, den Sie geschrieben haben. Code-Dokumentation in Python ist sehr einfach mit docstrings. Docstrings sind Textzeichenfolgen, die für die Dokumentation der Funktionalität verwendet werden. Für ein paar Beispiele werfen Sie einen Blick hier. Für eine optimale Produktivität in der Modulphase benötigen Sie einen guten Quellcode-Editor. Es gibt viele Möglichkeiten gibt. Meine bevorzugten (kostenlosen) sind (in der Reihenfolge der zunehmenden Komplexität und Features): Notepad Notepad, aber viel besser (Syntax-Highlighting usw.). Ideal für schnelle Codeänderungen, wenn Sie nicht einen ausführlicheren Herausgeber feuern möchten. Spyder. Editor, der die Lücke zwischen IPython und einer voll funktionsfähigen IDE (Integrated Development Environment) schließt. Speziell auf interaktive wissenschaftliche Arbeit ausgerichtet. Pyscripter - Einfach zu bedienende IDE mit integriertem Debugger. Nur Windows. Pydev - proffesional Qualität IDE. Es kann einige Zeit dauern, bis ein Weg, um Code, der Ihnen am besten passt zu finden. Für mich ist der ideale Workflow: Prototyp mit Notebook - zu einem Modul mit PyDev oder PyScripter - Modul in einem neuen Notebook hinzufügen. Mehr Lesestoff. Kapitel 3 des PDA-Buches. Ok, genug Theorie, können wir mit Modulen arbeiten. Wenn Sie havent bereits heruntergeladen haben die Arbeitsmappen für diesen Teil, erhalten Sie sie aus Beispiel Notebooks Abschnitt. Und werfen Sie einen Blick auf die twp03Workingwithmodules Notebook. Beispiel-Notebooks Jetzt ist die Zeit, um die Begriffe nutzen, die Sie in diesem Teil gelernt haben. Wir werden direkt in die Arbeit mit numpy Matrizen und Plotten Funktionen springen. Für das Plotten benötigen Sie jetzt nur zwei Funktionen plot () und hist () zusammen mit ein paar Befehlen, um die Titel und Achsenbeschriftungen festzulegen. Es gibt drei Beispiel-Notebooks für diesen Teil des Kurses: twp01IPythonNotebook - zeigt Ihnen den Weg um IPython Notebook (sehen Sie online) twp02Leveragedetfs - simulieren leveraged etfs zu beweisen, dass es keine solche wie gehebelte etf Zerfall (View online) twp03Workingwithmodules. ipynb Lernen, mit Modulen arbeiten (siehe online) Holen Sie sich die Notebooks Einfach die Zip-Datei und extrahieren Sie es auf Ihrem Notebook-Ordner, starten Sie dann Jupyter Notebook, um zu sehen, sie erscheinen im Dashboard.


No comments:

Post a Comment