Wieviel Python man für eine Stelle als Trader beherrschen muss

eFC logo
Wieviel Python man für eine Stelle als Trader beherrschen muss

Wer heutzutage als Trader arbeitet, muss eine große Bandbreite an Fähigkeiten mitbringen. Man muss immer noch gut rechnen können, gut mit Druck umgehen und ein exzellentes Gedächtnis haben. Doch das allein genügt nicht mehr, denn: Trader müssen zunehmend auch programmieren können.

Ich habe schon an anderer Stelle beschrieben, warum sich Python als Programmiersprache für Trader gut eignet. Sie wird häufig für das Back-Testing von Trading-Strategien und für das Risikomanagement verwendet. Mit moderner Hardware ist Python leistungsfähig genug, um maßgeschneiderte Derivate zu bewerten. Zwar ist Python für den Hochfrequenzhandel nicht schnell genug, kann aber problemlos für systematische Handelsstrategien, die keine geringe Latenzzeit erfordern, oder für das Market Making auf weniger liquiden Märkten verwendet werden. Und Python kann außerdem dazu verwendet werden, das Verhalten von Hochfrequenz-Algorithmen zu analysieren und zu optimieren.

Die meisten Trader werden vermutlich weder Informatik studiert haben, noch haben sie Lust darauf, mehre Jahre damit zu verbringen, Programmierexperten zu werden. Sie wollen einfach das absolute Minimum beherrschen – genug, um ihre Arbeit tun zu können. Es gibt zahlreiche Bücher und kostenlose Online-Kurse zu Python, aber man muss sich vermutlich noch nicht einmal durch einen ganzen Kurs durcharbeiten, sondern kann einfach selektiv vorgehen.

Schritt 1: Laden Sie zunächst Ihre Python-Distribution herunter (vorausgesetzt, sie befindet sich noch nicht auf Ihrem Computer). Sehen Sie zu, dass Sie eine aktuelle Version von Python haben (idealerweise 3.8, aber auf jeden Fall mindestens 3.0, da ältere Versionen recht anders sind).

Als nächstes müssen Sie sich eine „Integrierte Entwicklungsumgebung (IDE)“ besorgen – ein Texteditor speziell zum Schreiben von Code. Sie können Code in jedem beliebigen Editor schreiben, auch in Notepad oder TextEdit, aber mit einer ordentliche IDE können Sie Code schnell testen und debuggen, ohne die Editierumgebung zu verlassen. Außerdem kann die IDE Fehler in Ihrem Code erkennen, während Sie tippen. Beliebte IDEs sind Eclipse, PyCharm und Atom.

Nun zur Einarbeitung: Sie sollten die grundlegenden Typen von Objekten verstehen, die Python anbietet: Zeichenketten und Zahlen (stellen Sie sicher, dass Sie zwischen ganzen Zahlen und Fließkommazahlen unterscheiden können) und die Typen von „Sammlungen“, die andere Objekte enthalten: Wörterbücher, Listen und Tupel.

Für alles, was Sie tun, brauchen Sie „Kontrollstrukturen“: if-then-else-, for- und while-Schleifen. Zum Beispiel könnten Sie eine Handelsstrategie haben: Wenn ein größeres Volumen auf dem Gebot steht, dann kreuzen Sie die Spanne, sonst lassen Sie die Restorder auf dem Gebot stehen. „For“ wird verwendet, um verschiedene Werte, wie etwa verschiedene Tage in einem historischen Backtest, in einer Schleife zu durchlaufen. Während der Code läuft, während eine gegebene Bedingung wahr ist, beispielsweise während der Markt offen ist, erhalten Sie das aktuelle Orderbuch. Python hat eine spezielle Art von „for-Schleife“, die als „Listenverständnis“ bezeichnet wird. Diese sollten Sie kennen, denn sie macht Ihren Code lesbarer und effizienter.

Boolesche Operationen wie and, or, not  erlauben Ihnen keine logischen Vergleiche, z.B. wenn die Aktie nach ihrem Ex-Dividendendatum ist und die Dividende noch nicht ausgezahlt wurde, dann fügen Sie die Dividende zur Total Return-Reihe hinzu. Sie können auch all und any verwenden. Können alle Unternehmen im Korb kurzgeschlossen werden? Überschreitet eine der Renditen das Value-at-Risk-Limit?

Die wichtigste Erfindung in der Geschichte der Programmierung ist wahrscheinlich die „Funktion“. Funktionen ermöglichen es Ihnen, wiederverwendbaren Code zu schreiben, was Zeit und Energie spart. Anstatt beispielsweise die nichtparametrischen „greeks“ einer Option separat zu berechnen, könnten Sie eine Funktion schreiben, die die Änderung des Optionspreises berechnet, wenn eine Änderung an einer ihrer Eingaben vorgenommen wird. Diese könnte dann für das Delta (Änderung des Preises), Vega (Änderung der Volatilität) usw. modifiziert werden. Es ist besser, große Funktionen in kleine Teile aufzuspalten, denn so können sich Bugs schwieriger verstecken und die Wiederverwendung wird gefördert.

Als Trader müssen Sie wahrscheinlich ein bisschen rechnen können – und das bedeutet, dass Sie die import-Anweisung verwenden müssen, um auf eingebaute „Module“ wie math, decimal und statistics zuzugreifen. Weitere nützliche Module sind datetime und calendar – mit Ihnen können Sie Fragen beantworten, etwa: Wie viele Tage bis zur Auszahlung des nächsten Coupons? Viele Python-Tutorials enthalten lange Abschnitte über die Erstellung von Modulen und Paketen – diese können Sie überspringen.

Die eher obskuren technischen Teile von Python können Sie eigentlich ganz meiden. Wichtig ist allerdings, sich mit den etwas verzwickten Konzepten von ‚mutability‘ und ‚referencing‘ vertraut zu machen, da diese die Quelle von vielen seltsamen Fehlern sind. Das copy-Modul kann Ihnen hier viel Ärger ersparen – und eine gute Programmierpraxis wie das Nicht-Wiederverwenden von Variablennamen.

Wenn Sie allerdings mehr Zeit haben, dann würde ich empfehlen, dass Sie sich mit der ‚objektorientierten‘ Programmierung vertraut machen. Zwar können Sie in Python auch ohne diese alles tun, was Sie wollen (im Jargon wird dies als „turing complete bezeichnet), aber mit ihr wird Ihr Code einfacher zu testen, zu lesen und zu debuggen sein. Wenn Ihr Code mit der Software anderer Leute interagieren muss, etwa als internes Quant-Pricing-Modul, dann können Sie sich das Leben einfacher machen, wenn Sie Objekte nutzen.

Wenn Sie die Grundlagen beherrschen, sollten Sie in Betracht ziehen, sich einige der externen Python-Pakete von Drittanbietern anzueignen. Welche Bibliothek Sie benötigen, hängt davon ab, was für ein Trader Sie sind – hier verweise ich auf meinen Artikel.

Robert Carver ist ehemaliger Head of Fixed Income bei AHL, einem quantitativen Hedgefonds. Er ist Autor von „Leveraged Trading“, „Systematic Trading“ und „Smart Portfolios“. Mittlerweile nutzt er ein in Python (mit PyCharm) programmiertes System, um mit seinem eigenen Kapital zu handeln.

Photo by Shahadat Rahman on Unsplash

Have a confidential story, tip, or comment you’d like to share? Contact: sbutcher@efinancialcareers.com in the first instance. Whatsapp/Signal/Telegram also available. Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)

Ähnliche Artikel

Beliebte Berufsfelder

Loading...

Jobs suchen

Artikel suchen

Close
Loading...
Loading...