Hallo,
ich möchte gern die Börsenkursdaten des Dax im 1s Takt auf den Raspberry
Pi holen um ein wenig mit diesen zu rechnen und eine Langzeitdatenbank
aufzubauen. Meine Handelsoberfläche bekommt diese über ein Interface vom
Provider aber wie das geht weiss ich nicht. Diese ist auch in mql4
programmierbar, eine pascal ähnliche Programmiersprache, die
automatisches Handeln ermöglicht.
Welche Möglichkeiten gibt es grundsätzlich eine Zahl aus dem Internet in
eine C Variable zu holen? Es gibt Homepages auf denen der Kurs ständig
aktualisiert wird aber wie sowas praktisch geht leider keine Ahnung :-(
Kann da mal jemand Starthilfe geben? Das Programm wird ein normales
Kommandozeilen Programm unter Linux, mehr kann ich nicht. PHP5 usw.
bisher leider keine Erfahrung mit.
Christian J. schrieb:> Es gibt Homepages auf denen der Kurs ständig> aktualisiert wird aber wie sowas praktisch geht leider keine Ahnung
Dann öffne mal so eine Homepage, und schau dir an, wie sie das macht.
Dazu im firefox Strg-Shift-I (Entwicklerwerkzeuge) aufmachen, und im
Netzwerk-Tab beobachten.
Im Chrome heißt das Teil "Entwicklertools", geht aber mit derselben
Tastenkombination auf.
Im Internet-Explorer schimpfen sie sich auch "Entwickertools", nur die
Taste zum öffnen ist "F12".
Wenn du rausgefunden hast, wie/wann/wo die Webseite ihre Kursdaten
zieht, kannst du das auf dem RasPi nachbauen.
Andreas Rückert schrieb:> http://brusdeylins.info/tips_and_tricks/yahoo-finance-api/
Danke! Bin wohl nicht der Einzige aber ich schätze mal das übersteigt
meine Fähigkeiten derzeit doch etwas, da ich nicht weiss, wie ich aus
einem schnöden C Programm Netzdaten abrufen kann. Mit
"Browser-programmiersprachen" ist das sicherlich besser zu machen aber
wie gesagt, da fehlen mir absolut die Basics zu.
Auch wenn du dich ganz gut darum herum mogeln könntest, dir die
Grundlagen "des Internets" anzueignen, würde ich dir das trotzdem
empfehlen, da das Wissen ist, das du auch sehr gut an anderen Stellen
einsetzen kannst.
Schaue dir zunächst das OSI-Modell an:
http://de.wikipedia.org/wiki/OSI-Modell
Dort siehst du, dass "Ethernet" ganz unten die physikalische Schicht
bildet. Darauf setzt das TCP/IP-Protokoll auf. IP-Adressen sind dir ein
Begriff, hoffe ich? TCP ist das Transportprotokoll für die eigentlichen
Datenpakete; darauf aufbauend ist HTTP das Protokoll für Webseiten (bzw.
HTTPS für SSL-Verbindungen).
Das alles brauchst du für die oben genannte API. Sowas implementiert man
aber sinnvollerweise (du siehst den Umfang) nicht selber; stattdessen
gibt es bereits zahlreiche fertige Bibliotheken und Stacks; die
bekannteste ist wohl libcurl: http://curl.haxx.se/libcurl/
Die obige API liefert dann die Daten im CSV-Format zurück; diese
auseinander zu parsen sollte für den halbwegs fortgeschrittenen
C-Programmierer kein großes Problem mehr sein...
Nebenbei: Die "Sprache", in der "normale" Webseiten geschrieben sind,
nennt sich HTML (heute praktisch immer erweitert um CSS (für das
grafische Design) und JavaScript (für alles Dynamische)) - kannst du dir
im Firefox mittels "Seitenquelltext anzeigen (Strg+U)" anzeigen lassen.
Ich weiss ja nicht, was Du wirklich machen willst, aber wenn Du z.B.
Daten in einer Datenbank speichern willst, um längerfristige Indizes zu
erreichen (SMA und EMA als Beispiel, was gleitende Durchschnitte sind),
dann würde ich kein Javascript o.ä. nehmen. Mein Mittel der Wahl heisst
hier Java. Damit schreib ich ähnliche Dinge für Cryptocoins (Bitcoin
usw), wo die Dinge (APIs) oftmals noch etwas einfacher sind.
Andererseits gibt es z.B. einen einfachen TradeBot, der als Chrome
Plugin in Javascript geschrieben wurde, allerdings keine Datenbank
verwendet. Es gibt auch ähnliche Lösungen in Node.js .
Willst Du Echtzeit-Daten von Handelsplätzen haben, würde sich noch FIX
anbieten, was aber nicht ganz so trivial zu implementieren ist. Dafür
gibt es z.B. Implementierungen wie JavaFIX, aber Du musst halt auch dann
das dahinterliegende Protokoll halbwegs verstehen. Im Prinzip hängst Du
Dich da an einen Server, der Dir einen Stream liefert und Du bestimmt
einmal, welche Daten Du in dem Stream haben willst. Dann löst das
Schicken eines solchen Pakets bei Dir einen Trigger aus, und Dein
Programm macht irgendwas mit den Daten.
Im Cryptocoin Bereich gibt es übrigens schon Bots, die komplett auf
einem PI laufen.
Christian J. schrieb:> Diese ist auch in mql4> programmierbar, eine pascal ähnliche Programmiersprache, die> automatisches Handeln ermöglicht.Christian J. schrieb:> Raspberry Pi
Das passt nicht.
Bei kritischen Anwendungen ist ECC-Ram zwecks Fehlerkorrektur kein
überflüssiger Luxus.
Das Thema "Zuverlässigkeit" (keine Programmfehler) und definiertes
Verhalten im Fehlerfall könnte man auch mal genauer betrachten.
Andreas Rückert schrieb:> Ich weiss ja nicht, was Du wirklich machen willst, aber wenn Du z.B.> Daten in einer Datenbank speichern willst, um längerfristige Indizes zu> erreichen (SMA und EMA als Beispiel, was gleitende Durchschnitte sind),> dann würde ich kein Javascript o.ä. nehmen. Mein Mittel der Wahl heisst> hier Java. Damit schreib ich ähnliche Dinge für Cryptocoins (Bitcoin> usw), wo die Dinge (APIs) oftmals noch etwas einfacher sind.
Hi,
wie gesagt fehlen mir sämtliche Grundlagen einen PC zu programmieren
abgesehen von Visual Basic und C#. Natürlich weiss ich wie Daten auf dem
Internet kommen, wget und zog andere Befehle bei Linux machen ja nichts
anderes. Das Netz ist auch nur eine Datei. Das Yaho Interface erzeugt
wie ich ausprobiert habe csv, die ich auch mit Stringfunktionen und gawk
auswerten könnte.
Allerdings gibts das alles auch schon fertig, zb im Ninja Trader, der
"Equilla" anbietet, eine Art C basierte Scriptsprache, die über die IDE
an eine Datenbasis angebunden ist. Damit lassen sich extrem komplexe
Handelssysteme erarbeiten.
Eine Ishimoku Analyse sähe dann aus wie unten, viele Funktionen der
Finanzmathematik sind vordefininiert, wie zb Fibonacci Retracements usw.
Es wäre mal einen Spass wert auf einem Musterdepot mal zu schauen, was
bei herauskommt, wenn man das Handeln von Währungen nach Indikatoren zb
an der FOREX automatisiert und mit dem eigenen Ansatz auch Backtests
fahren kann.
Das Beispiel für einen Breakout Trade ist jedenfalls gut verständlich
finde ich.
Davon verstehe ich nun wieder viel zu wenig. Ich mach nur einfachere
Dinge. Im bitcointalk Forum gibt es einen Thread def Goomboo's journal
(oder so) heißt. Da werden solche Sachen diskutiert.
Ja. Aktuelle Daten bekommt man z.B. mit nem Account bei einer Forex
Plattform. Kostet aber gut Geld. Deshalb mach ich ja Cryptocoins. Bei
Interesse könnte ich evtl helfen solche Indizes in einen meiner Bots zu
integrieren. Dann könnte man Strategien z.B mit BTC Kursen testen.
Wenn man zb den Ninja Trader lizenziert oder den Meta Trader 5 bekommt
man die Life Daten auch dazu, von der DB, Xetra und auch Bloomberg. Ohne
Moos natürlich nicht, kostet ja Geld. Indikationen sind Unsinn, man
braucht die echten Daten.
Bei dem Chart würde ich mir allerdings ein anderes Feld aussuchen als
den Bitcoin Quark:
http://www.ariva.de/btc-eur-bitcoin-euro-kurs/chart?t=all&boerse_id=163