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.
:
Bearbeitet durch User
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.
1 | input:
|
2 | |
3 | price(close), |
4 | Period_K( 9, 1 ), |
5 | Period_L( 26, 1 ), |
6 | Period_M( 52, 1 ), |
7 | Period_N( 26, 1 ); |
8 | vars: |
9 | |
10 | x,tenkanSen, kijunSen, senkouSpanA, senkouSpanB, chikouSpan; |
11 | |
12 | IKH( Period_K, Period_L, Period_M, Period_N, tenkanSen, kijunSen, senkouSpanA, senkouSpanB, chikouSpan ); |
13 | x=maxitems(senkouSpanA[Period_N - 1], senkouSpanB[Period_N - 1]); |
14 | If price Crosses Over x Then |
15 | Print( Cstr(datetime) + " bullish cloudcross" ); |
16 | //Alert( Cstr(datetime) + " bullish cloudcross" ); [?] ( oder nur)) Alert(" bullish cloudcross" );
|
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.
Ich hätte gedacht, die freien Kursdaten sind 15min verzögert und man braucht ein teures Paket um an aktuelle Daten ranzukommen? http://www.ariva.de/forum/Was-taugt-die-Tradermatrix-der-Comdirect-104422
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
Bei Diensten wie btc-e bekommt man wohl die besten Daten für diesen Bereich. Für Charts gibt es nochmal andere Seiten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.