Forum: PC-Programmierung Kursdaten in Raspberry Pi holen


von Christian J. (Gast)


Lesenswert?

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.

von Andreas R. (daybyter)


Lesenswert?


von Εrnst B. (ernst)


Lesenswert?

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
von Christian J. (Gast)


Lesenswert?

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.

von Physiologist (Gast)


Lesenswert?

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.

von Andreas R. (daybyter)


Lesenswert?

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.

von Schreiber (Gast)


Lesenswert?

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.

von Christian J. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Andreas R. (daybyter)


Lesenswert?

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.

von Softwerker (Gast)


Lesenswert?

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

von Andreas R. (daybyter)


Lesenswert?

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.

von Christian J. (Gast)


Lesenswert?

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

von Andreas R. (daybyter)


Lesenswert?

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
Noch kein Account? Hier anmelden.