Python für Trading- und Backtest-Aufgaben

      Hier ist das Ergebnis einer kleinen MC-Simulation mit 100K Läufen:

      i.imgur.com/kJ07H.png

      Das Programm tradet mit einem gegebenen Profit-Factor und sieht, wie oft es nach einer gewissen Anzahl von Trades im Gewinn liegt. Also z.B. mit PF 1.1 hat das Programm im nach 100K Versuchen nach 3 Trades in 53.6% der Fälle im Gewinn (mit durchschnittl. Gewinn = durchschnitl. Verlust).
      Wenn man den eigenen PF kennt, und weis, wie oft man in der Woche tradet, kann man ablesen, wie wahrscheinlich es ist, die Woche im Plus zu beenden. Das ist natürlich nur ein grober Anhaltspunkt, da die Annahme mit Gewinn=Verlust sicher nicht immer stimmt, und Normalverteilung usw.usf. - aber ich denke, als Grobdarstellung, was man von einer Strategie erwarten kann, ist es schon brauchbar.

      Interessant ist, wenn man Numpy als normales Array missbraucht, ist der Code um 6 bis 7 Größenordnungen langsamer als normale Python lists. Numpy bringts also nur mit entsprechend vektorisiertem Code - ich vermute, dann wird es im Bereich von kompilierten Sprachen liegen. IronPython war übrigens 10x lahmer als normales Python. Der gleiche Code in C# war 50x schneller, also IronPython es eher brauchbar um C# Code zusammenzustöpseln. Dafür ist es sehr praktisch, man kann sehr schnell auf der Konsole Ergebnisse produzieren.
      Wer sich ans Programmieren in Python als kompletter Programmierneuling wagen will und der englischen Sprache halbwegs mächtig ist, mag vielleicht folgende Einstiegskurse interessant finden. Es kostet nichts und es lehren Professoren amerikanischer Top Unis.

      coursera.org/course/programming1 Start 24.September

      udacity.com/overview/Course/cs101/CourseRev/apr2012 Fortlaufender interaktiver Kurs

      Bei Udacity haben alle Kurse mit Python zu tun. So kommt auch im Statistikkurs ST101 das eben von PT erwähnte Matplotlib zum Einsatz. Die Kursvielfalt, die inzwischen von Coursera, EDX und Udacity angeboten wird, ist gigantisch.

      Perfect Trader schrieb:


      ..., wobei ich aber schon ein prinzipielles Problem damit habe, für eine anderswo kostenfrei erhältliche Leistung Geld zu bezahlen, wenn dabei zu den allergrößten Teilen von den Firmen auch für diese kostenlose Vorleistungen Anderer ausgebeutet werden.

      Ümpf, das ist ja nun wirklich nichts Neues !

      Beispiel Modelica / modelica.org/

      Letztens ist mir die Wolfram-Ankündigung in die Mailbox geflattert, dass jetzt ja auch Wolfram SystemModeler (früher MathModelica) verfügbar sei. Als ich den Preis gesehen habe, ist die kurz aufflatternde Freude doch recht schnell erloschen. Die Studentenversion ist recht preiswert, aber wenn man kein Student mehr ist, ist das ein kostspieliges Hobby (Das Vergnügen ist 4-stellig.).

      Aber man nutzt da schon recht großzügig nach, was andere vorher umsonst geschaffen haben.

      Wobei Wolfram da nicht die Einzigen sind und ich die Tool-Qualität bzw. den Zusatznutzen nicht beurteilen kann, welche diesen satten Preisaufschlag rechtfertigen könnten.

      Letztlich bleibt einem als Opensource-Programmierer vermutlich nur die Strategie: alles, was ich ins Web stelle, muss ich als "WEG" deklarieren und darf mich auch nicht drüber ärgern, wenn andere mit meiner Arbeit Geld verdienen. Das ist wie Sperrmüll, den ich auf die Straße stelle. Da gibt's auch Leute, die den aufarbeiten und weiterverkaufen.

      OT2: Python

      Durch den gerade stattfindenden Boom der MOOC hat man auch jede Menge Möglichkeiten Python von Grund auf zu lernen.

      Als erstes wäre da Udacity zu nennen, und auch die Informatikgrundkurse bei Coursera und Edfx verwenden Python. Sind echt tolle Zeiten, wenn man Bildungslücken schließen möchte. Man bekommt für lau von den Top Universtäten der USA Kurse aus allen Bereichen geboten.
      Auf Deutsch gibt es da nichts vergleichbares. Tele-Task wäre da evt. noch zu nennen. Aber das sind halt nur aufgezeichnete Vorlesungen und es gibt auch kein schmuckes PDF-Zertifikat für die Teilnahme.
      Die Erfahrung habe ich mit Python auch gemacht. Wenn ich nicht eine Seite mit fix & fertigen Windows-Installern gefunden hätte, hätte ich das ganze auch nicht installieren können. Würde man das nach der 'reinen Lehre' installieren, muss man schon ein bischen ein Guru sein - man benötigt dafür einen Fortran-Compiler, einen C Compiler und 2 oder 3 verschiedene C++ Compiler (je nach Modul). Und gewisse Sachen wie Cython oder inline C krieg ich nach wie vor nicht zum Laufen.

      Aber man darf sich eigentlich auch nicht beschweren, OS Software ist gratis und wird auf einer "as is" Basis zur Verfügung gestellt.
      Pandas sehe ich mir auch gerade an. Ich finde das recht gut - hat aber definitiv noch Ecken und Kanten, und schwache Dokumentation (ist ja auch erst Version 0.8). Die besten Ressourcen, abgesehen vom offiziellen 'Getting Started', finde ich auf StackOverflow.

      Das wurde ursprünglich von AQR Capital entwickelt, für den internen Gebrauch, und hat dementsprechend für den Finanzsektor nützliche Features. So kann man bspw. Daten aus verschiedenen Zeitzonen ohne viel Aufwand in einen Table laden, und man kann sich darauf verlassen, dass dann alles auch korrekt ausgerichtet ist.


      Mit IPython Notebooks gibts auch ein Mathematica-ähnliches Frontend. Läuft im Browser, und funktioniert überraschend gut. Amazon hat auch fertige Images mit dem ganzen Zeugs drauf - also theoretisch könnte man sich relativ einfach und unkompliziert ein paar EC2 Deathstar-Instanzen starten, und mittels IPython + StarCluster hat man dann kostengünstig seinen eigenen Supercomputer. Ich brauchs nicht, ich finde das aber irgendwie faszinierend :>