Backtesting Software

      Odroid Micro-Computer

      Für nur 50 € (für das Board alleine, Gehäuse, Netzteil, SD-Card und WiFi als Extrazubehör), habe ich mir letzten Mai einen Odroid C2 gekauft und darauf Ubuntu mit Mate-Desktop installiert.

      Dieser hat meine Erwartungen um Größenordnungen positiv übertroffen. Ich habe ihn letzte Woche mit einem Raspberry Pi der neuesten Serie verglichen und dabei festgestellt, dass er diesem wesentlich überlegen ist.

      Auf diesem Gerät kann man sogar mit aufwendigerer Desktop-Software arbeiten, er fühlt sich dabei von der Geschwindigkeit etwa so an wie ein ab sechs Jahre aufwärts alter PC der mittleren Preisklasse und ist damit ein Microcomputer, mit dem man sogar mit einem GUI und mehreren Programmen vernünftig arbeiten kann.

      Es gibt auch einen deutlich teureren ähnlichen Odroid mit Lüfter, der ist wegen dessen Lautstärke nicht zu empfehlen. Wenn man den lüfterlosen Rechner längere Zeit mit Volllast betreibt, schaltet er allerdings die Geschwindigkeit herunter, um nicht zu überhitzen.

      Ich kann dieses Gerät entgegen dem recht unzutreffend verreißenden Artikel einer c't aus dem letzten März nur ausdrücklich empfehlen. Für so wenig Geld wird man derzeit kaum einen besseren Rechner bekommen.

      Der im vorigen Artikel erwähnte Cubietruck hingegen besitzt ein schlechtes Preis-Leistungsverhälltnis sowol gegenüber dem Raspberri Pi als auch gegenüber dem Odroid C2.
      Ein Einplatinen-Rechner mit deutlich höheren Leistungsparametern als denen vom RaspberryPi ist der auch preislich etwas höher liegende Cubietruck, den es z. B. bei der Firma Watterott für 89 EUR gibt. Wer sich den Import selber antun möchte, der findet auch Angebote für 89 USD.

      Das Gerät wird mit einem sofort startfähigen Android-Betriebssystem im Flash-Speicher geliefert, welches aber durch diverse andere Systeme entweder auf einer einzuschiebenden Micro-SD-Karte oder direkt im Flash-Speicher des Gerätes ersetzt werden kann. Von der Leistung unter Android entspricht der Rechner einem mittleren Tablet, da darin recht viele häufig auch dort verbaute Komponenten zum Einsatz kommen.

      Wer ein fertiges preiswertes Gerät für gelegentliche Office-Aufgaben unterwegs braucht, wird darum mit einem Tablet inkl. Touchscreen und gefälliger Aufmachung besser wegkommen. Wer eine extrem erweiterbare Infrastruktur für diverse denkbare Aufgaben braucht, der bekommt hier zu einem ähnlichen Preis-Leistungsverhältnis wie beim RaspberryPi eine höhere Leistung zum angemessenen Preis in durchaus geekischer Aufmachung im halboffenen Acryl-Gehäuse und genügend metallenen Abstandsschrauben, die zum Aufbauen von Clustern damit geradezu einladen (wobei man aber immer scharf rechnen sollte, ob nicht ein größerer Allzweck-Rechner mit starker CPU und Graphikkarte für die konkrete Aufgabe eine besser, vielleicht sogar größenordnungsmäßig bessere Wahl sein KANN).

      Wer noch ein Weilchen wartet, der kann in Kürze das bereits angekündigte Nachfolge-Modell mit Leistungs-Parametern in Höhe eines Oberklasse-Tablets bekommen oder das aktuelle Modell dann vermutlich billiger.

      Für Mediastreaming u. ä. hat das Gerät gegenüber dem Raspi eine deutlich adäquatere Ausstattung, nur mal zum kurzen Kennenlernen dieser Geräteklasse der offenen Einplatinen-Rechner bleibt der RaspberryPi auch weiterhin eine gute Empfehlung. Andere Geräte, die man so nutzen kann, sind u. a. die meisten NAS-Geräte, für die man meist auch Umbau-Anleitungen zu einem vollwertigen Allzweck-Rechner im Netz findet, wie z. B. der 2009 hier mal besprochene Slug (Linksys NSLU2)., die für Aufgaben wie einfache Mail-Server und sporadisch genutzt Web-Server u. ö. auch heute noch ausreichende Leistung haben.
      So ein RaspberryPi ist wirklich nur zu empfehlen! Bei mir läuft er 24/7 und spielt dem Fernseher mittels XBMC (Mediathek etc.) Sachen zu. Weiter ist dort eine Owncloud installiert, um Daten zu sichern, sie aber nicht auf fremden Servern ablegen zu müssen. Und zu guter letzt etwas für's Trading: Ein mit Python realisierter Aktien-Scanner, der mir des nachts seine Empfehlungen abspeichert. Für ein Backtesting finde ich die Hardware doch etwas zu langsam. Vielleicht bin ich aber ja auch ein schlechter Programmierer :S

      Alles in allem natürlich etwas Spielkram, aber gerade als Medienzuspieler doch brauchbar und häufig in Benutzung (kann über die Samsung-TV-Fernbedienung gesteuert werden). Die Start-Installation ist in der Tat schnell erledigt. Die Benutzung bedarf dann allerdings, je nach Anwendungsgebiet, eine weitere Auseinandersetzung mit der (Linux-) Materie.
      Ich habe auch schon einige Zeit dieses "Spielzeug", dient aktuell als LAMP Umgebung, ein zweiter PI liegt noch herum, wird irgendwann zur Haussteuerung verwendet werden. Ein Bekannter hat Citadel installiert, damit ist der PI ein brauchbarer Mailserver mit Groupware-Grundfunktionen.
      OUT OF ORDER
      @Norbert Gundeler

      Das ist ja echt witzig. Ich wollte demnächst einen ähnlichen Artikel schreiben, denn wir haben auch so ein Teil zu Hause, was aktuell für mich als Server für meine Softwareentwicklung herhalten muss, da es erheblich weniger Strom verbraucht als ein normaler Rechner. Der Preis ist im übrigen unschlagbar. Mit Gehäuse hat dieser Keines-Falls-Mini-Computer 65 Euro bei Amazon gekostet (Raspberry, Netzteil und Gehäuse separat gekauft). Das Internet ist auch voll mit Tutorials zum Einrichten und Verwenden des Pi. In meinem Bekanntenkreis (und der umfasst auch Nicht-Nerds) ist der Pi schon fast ein Must-Have. Einer steuert damit seinen kompletten Haushalt inklusive Kaffeemaschine ( :rolleyes: ),andere nutzen es v.a. als Videostreaming-Server.

      Kostenloses Mathematica für den Raspberry Pi

      Der Raspberry Pi (oder raspberrypiguide.de für die Leser, die deutschsprachige Seiten bevorzugen) ist ein neues Spielzeug?? der Nerds??.

      Beide voreilig verteilbaren Attribute sind wohl etwas zu kurz gegriffen. Als für Computer überdurchschnittlich unkaputtbare Lern-Plattform (alle Software spielt man selber auf eine SD[HC]-Karte) mit mehreren Open-Source-Betriebssystemen ist er für sehr viele Leute geeignet und seine durchaus vernünftige Leistung ermöglicht sogar den produktiven Einsatz bei einem unschlagbar geringem Stromverbrauch (um die 5 W) für diverse Zwecke.

      Für diesen sehr interessanten Rechner gibt es die schon öfter positiv erwähnte Software Mathematica kostenlos.

      Den Raspberry Pi kann man mit einer Lieferzeit von nur ganz wenigen Tagen z. B. beim empfehlenswerten Shop reichelt.de kaufen. In einem gesondert zu bestellenden Gehäuse sieht er schöner aus. Zur Stromversorgung wird noch ein Handy-Ladegerät mit Mikro-USB-Stecker ab 700 mA Ausgangsstrom aufwärts gebraucht, welches im Versand um 5 € erhältlich sein sollte, wenn man nicht sowieso schon ein solches hat. Als Speichermedium wird noch eine SD(HC)-Karte gebraucht. Ab 4 MB kann man schon sinnvoll starten, größere Karten sind für das Speichern in der Praxis anfallender Datenmengen natürlich besser. Mit wenigen Schritten ist eine anfänglich zu klein gewählte Karte aber auch später auf eine größere Karte erweiterbar, das dauert nur einige Minuten und braucht etwas Konzentration zur richtigen Eingabe der Kommandos.

      Als Monitor für die direkte Ausgabe vom Gerät kann ein HDMI-Fernseher/Monitor oder ein Analog-Fernseher genutzt werden, wofür Ausgangsbuchsen bereit stehen. Zur direkten Eingabe kann eine USB-Maus und eine USB-Tastatur in die USB-Buchsen einsteckt werden. Es geht auch der Betrieb ganz ohne Ein- und Ausgabe-Geräte direkt am Gerät mit dem ausschließlichen Betrieb über das Netz, egal ob mit einer sicheren Kommandozeile (ssh), einem VNC-Server-Clone oder einer entfernten X-Terminal-Software. Wenn ohne eigene I/O-Geräte gestartet werden soll, empfiehlt sich die vorherige Suche nach einer Anleitung 'Raspberry Pi headless', da man darauf angewiesen ist, dass dann alles sofort richtig klappt, weil man sonst weder etwas sieht, noch die Möglichkeit zum Eingreifen hat.

      Das Gerät (Spielzeug wäre, wie schon oben angedeutet, nicht unbedingt die treffende Einschätzung) hat mir von allem Geek-Zeugs, was ich bisher angefasst habe, mit am besten gefallen, weil es einfach ohne Probleme - auf Anhieb - genau das macht, was es soll und ein exzellentes Preis-/Leistungsverhältnis hat. Das Gerät kann für Interessierte ausdrücklich empfohlen werden, auch als Weihnachtsgeschenk für Jung und Alt. Der Kompromiss aus erweiterbarer preiswerter Bastel-Plattform und sofort nutzbarem Fertiggerät ist sehr gut gelungen.
      Schön langsam verstehe ich, warum Leute für eine stabile und gut gewartete Python Distribution wie Enthought Geld auf den Tisch legen. 64-bit Python incl. den üblichen Packages auf Windows zum Laufen zu bekommen, kann einen Python-Newbie in den Wahnsinn treiben. Ist ein bisschen etwas Anderes als auf Install.exe clicken..
      Nicht ätzend, es funktioniert schon. Ich meinte das eher im Vergleich zu dem was ich hauptsächlich verwende, IronPython/Sho, was nicht verwundert, da das genau dafür gemacht wurde. Mit den Python-Tools bekommt man das direkt in VisualStudio integriert, mit einer interaktiven Konsole, mit Intellisense, Plots usw.usf. - insofern ist es mit Mathematica allein vom Arbeiten her anstrengender.

      In Sho kann man auch direkt c# Source-files laden, die sozusagen on-the-fly kompiliert werden, und es gibt noch ein paar andere nette Sachen.

      Mir persönlich ist c# am liebsten, einfach weil ich damit am Meisten Erfahrung habe. Aber VisualStudio ist keine Umgebung für interaktive Sachen wie Mathematica. Allein für einfache Plots schreibt man eine elends lange Wurst statt ein paar Zeilen in Mathematica. In Verbindung mit den Python-Tools kann man dann aber nur rein den Kern-Algorithmus in c# schreiben, und in der Sho Konsole das Teil dann mit Daten füttern (auch mit Streams zB) und das Ergebniss visualisieren. Ist super wenn man viel in VisualStudio macht, nicht nur für Trading Sachen, man kann ganz allgemein extrem schnell Sachen ausprobieren. Ich würde es aber auch nur Leuten weiter empfehlen, die aus irgendeinem Grund .Net affin sind, ansonsten ist man wohl mit einem der anderen Pakete besser dran.

      Jedes Tool hat Macken

      Ist leider so. Der heilige Gral im Trading ist die eierlegende Wollmilchsau bei der Software. Heimlich suchen wir sie doch alle. :rolleyes:

      Auch bei Mathematica ist nicht alles soooo toll wie ich es mir wünschen würde. Das Java-Gui von dem Notebook-Interface ist eine der Schwachstellen - man trainiert sich lieber einen Strg+S-Reflex an, denn gelegentlich ratzt das Ding auch mal ab. Meist bei größeren Datenmengen in Bearbeitung. Nen Workaround hab ich bislang nicht gefunden, aber ich quäl die Software gelegentlich recht arg.

      Weiteres Manko: Die Datenbank könnte gepflegter sein. Ich hab am Wochenende mal ne Excel-Tabelle von Mathematica aus generiert, wo ich sämtliche Daxwerte samt letzten Kursstand und Dividende und Gewinn/Share etc. aus der Mathematica-internen Datenbank ausgelesen und in meine Tabelle reingeschrieben hab. Aber leider wird z.B. die letzte Dividende von der Commerzbank noch mit > 0 Cent angegeben. Die Aktionäre hätte es gefreut. Leider waren die Daten ein wenig *hust* veraltet (ich glaub, der Wert von 2007 oder 2008 ) . Und auch bei den anderen Werten waren nur die 2011 gezahlten Dividenden als "neueste" Daten enthalten, obwohl es ja schon frischere gibt vom Mai diesen Jahres. Na ja, man kann leider nicht alles blind so nehmen, wie sie es anbieten, sondern muss sich die guten Sachen rauspieken und die restlichen woanders zusammensammeln. Die Exceltabelle zu erstellen ging aber echt gut und das war auch ausgiebig in der Doku beschrieben. Und auch bei der Datenbank gibt's Sachen, die sind richtig gut, andere hingegen sind mangelhaft. Die Qualität schwankt doch erheblich. ;(

      Ich finde Mathematice darüber hinaus eigentlich recht interaktiv - da kenn ich ganz andere Programme v.a. aus dem Elektronik-Bereich, die sich abschotten bis zum Geht-Nicht-Mehr. Es kann auch korrekt Matlab-Daten (Mat-Files) einlesen, im Gegensatz zum Konkurrenzprodukt Maple, die ja witzigerweise sogar ne Kooperation mit Mathworks (Matlab-Herausgeber) haben/ hatten.

      Die Notebook-Gui ansich entschädigt einen jedoch für vieles. Zumindest mich. Das hat aber nix mit Mathematica als Programmiersprache zu tun, könnte man auch auswechseln mit R oder ähnlichem. Maple hat die Notebook-GUI im übrigen auch in ähnlicher Form, ich find Maple aber krätzig und unsympathisch. Ist allerdings C ähnlicher und eher für Ingenieure ausgelegt. Man kann sich auch ne Demo runterladen und es gibt auch ne Trial-Version hab ich so im Hinterkopf. Wer Mathematica zu "anders" findet, kann sich ja mal Maple als Alternative anschauen.

      Ich nutz das Notebook-Interface auch als Tradingtagebuch, da kann man sich schnell Bilder (Screenshots) erstellen und einfügen, Text schreiben und zur Not was ausrechnen. Das könnte man sicherlich auch in nem Officeprogramm ähnlich machen, aber irgendwie hab ich das vor Mathematica nie durchgehalten. Ist sicher so ne Psycho-Sache. 8o
      Aber auch in diesem Fall ist nach ner Woche Schluss. Ich trade nun weiß Gott nicht viel (maximal 5 Trades/Tag), dazu ein bis zwei Bilder pro Trade und bisschen Text, aber das GUI wird echt schnarchig, wenn man die Daten von 2 bis 3 Wochen drin hat. Hab das jetzt so gelöst, dass ich mir nen Masterdokument anlege und da die Links zu den 1-Wochen-Notebooks einfüge, aber nun ja.... ich glaub, daran ist aber das Java Schuld, welches nun leider hinter dem Frontend steckt. Hätten sie mal auf die Plattformunabhängigkeit verzichtet und die GUI in C++ geschrieben, wäre sicher alles schick. *träum*

      Auf das Notebook-Gui will ich aber definitiv nicht mehr verzichten. :love:

      zu C#: Bring doch mal bitte nen Code-Beispiel, was da so anstrengend dran sein soll. Dann kann ich mir das mal anschauen. Vielleicht gibt's ja doch ne gute Lösung.
      Ich hab mich jetzt in letzter Zeit ein bisschen intensiver mit Mathematica herumgespielt. Was ich wirklich super finde, ist das Notebook Format, da man Code und Ergebnisse in einem übersichtlichen File hat, das man Schritt für Schritt durchgehen kann und man sich am nächsten Tag auch noch auskennt. Bei Python u.Ä. ist es meistens so, dass man Daten, Code und Ergebnis in separaten Dateien hat, und am nächsten Tag ist dann die Frage, was gehört wohin, ist das überhaupt noch aktuell, usw. Außerdem kann man das Notebook leicht in ein ansprechendes PDF oder was auch immer umwandeln.

      Was das Arbeiten mit tabellarischen Daten angeht(und viel mehr tu ich eh nicht), finde ich ist nicht viel um zu numpy, sho, matlab etc. - es unterscheidet sich halt im Syntax und in der Funktionalität nur in Details. Ebenso bei den Plots. Das Einzige was mir aufgefallen ist, ist dass Mathematica anscheindend keine "seichten" Kopien kennt. Zum Beispiel wenn man Sho mit x = matrix1[:,1] auf die erste Spalte verweist, ist x nur ein 'Fenster' auf matrix1, belegt also keinen zusätzlichen Speicher. Tiefe Kopien muss man explizit anlegen. Evtl. relevant bei wirklich großen Datenmengen.

      Aber die Notebooks sind wirklich gut. Die Interaktion mit c# ist leider anstrengend.