Forum: PC-Programmierung Wie den Kurs des DAX aus einer Seite extrahieren?


von Christian J. (Gast)


Lesenswert?

Hallo,

es ist zwar für den ES8266 aber bei PC geht es sicherlich nicht anders. 
ich möchte stündlich den Kuswert des Dax holen und speichern für eine 
Backtest Spielerei in einem Handels-Werkzeug. Mal mit Zahlen etwas 
spielen. Es gibt API dafür aber die muss man kaufen, dann kriegt man 
alle Kurse als JSON Datei. Muss ja nicht sein.

Bei www.ariva.de kann man sich den Wert heraus holen. Nur wie kriegt man 
den heraus, wenn man nichts weiter sieht als den Seitenquelltext? So 
eine Seite besteht ja aus sehr vielen Teilen. Habe davon keinen 
Schimmer, nicht meine Welt.

Hier wäre zb ein Suchstring, wenn ich Quelltext anzeigen lassen aber das 
sieht man auch nur, wenn man den Rechtsklick auf einer bestimmten Fläche 
macht. Klicke ich eine andere an sieht man einen anderen Text.

countClick('DAX', 'MiniQuotes', 1);"...........
      12.006

Wie würde man sowas angehen, wenn man stur ohne jeden Interpreter 
einfach nur eine Seite lädt und darin sucht? mehr kann der ESP 8266 ja 
nicht.

Gruss,
Christian

von Harald W. (wilhelms)


Lesenswert?

Christian J. schrieb:

> es ist zwar für den ES8266 aber bei PC geht es sicherlich nicht anders.

Naja, bei Windows gibts ja die Funktion "Seitenquelltext anzeigen".
Dort braucht man vermutlich nur noch die betreffende Zeile und
Postion in der Zeile anzugeben.

von Christian J. (Gast)


Lesenswert?

Harald W. schrieb:
> Naja, bei Windows gibts ja die Funktion "Seitenquelltext anzeigen".

Aus einem reinen C Programm heraus? Also als wenn ich unter Linux ein C 
programm schreibe was reine Kommandozeile ist, ohne jeden Grafik kram.
1
    /* Sende den HTTP GET request */
2
    client.println(MakeHTTPRequest());
3
    client.println();
4
  
5
  /* Pruefe die erste Zeile auf die OK Meldung */
6
  String line = client.readStringUntil('\n');
7
       if (line != F("HTTP/1.1 200 OK\r")) {
8
    debugln(F("NOT OK!"));
9
    debugln(line);
10
    client.stop();
11
    return 0;
12
    }
13
  debugln(F("OK"))

von Harald W. (wilhelms)


Lesenswert?

Christian J. schrieb:
> Harald W. schrieb:
>> Naja, bei Windows gibts ja die Funktion "Seitenquelltext anzeigen".
>
> Aus einem reinen C Programm heraus? Also als wenn ich unter Linux ein C
> programm schreibe was reine Kommandozeile ist, ohne jeden Grafik kram.

Ich meinte die Zeile "Seitenquelltext anzeigen", die man sieht,
wenn man im Firefoxbrowser die rechte Maustaste drückt.

von Christian J. (Gast)


Lesenswert?

Ein C Programm hat aber keine rechte Maustaste die es drücken kann. Da 
habe ich nur eine API, die ich benutzen kann Requests zu senden.

von HTML (Gast)


Lesenswert?

Christian J. schrieb:
> Habe davon keinen
> Schimmer, nicht meine Welt.

Da gibts jetzt vier Möglichkeiten.

1. Im Internet nach einer kostenlosen API suchen
2. HTML lernen (Wenn du C kannst, dauert das keine zwei Stunden, bis du 
die wesentlichen Aspekte kennst)
3. Im Internet nach einem Beispielcode suchen
4. Die JSON-API bezahlen

von Christian J. (Gast)


Lesenswert?

HTML schrieb:
> 1. Im Internet nach einer kostenlosen API suchen

es gibt hunderte Seiten, die die Kurse anbieten.

> 2. HTML lernen (Wenn du C kannst, dauert das keine zwei Stunden, bis du

Brauche ich nicht, da ich das nicht interpretieren will.

> die wesentlichen Aspekte kennst)
> 3. Im Internet nach einem Beispielcode suchen

Gibt es wohl so nicht.....

> 4. Die JSON-API bezahlen

Nee.. obwohl das die einfachste Lösung ist, reiner ASCII als Ausgabe, 
rein in die Klasse und alles schön sortiert wieder rausholen. Das 
Handelsystem Metatrader4 macht das auch so aber die Kurse im 0,5s Takt 
muss man bezahlen.

Gibt es alles, nur eben "Payware":
https://labs.ig.com/gettingstarted

von Anleger (Gast)


Lesenswert?

Nutze https://www.alphavantage.co ,das ist kostenlos.

von HTML (Gast)


Lesenswert?

Christian J. schrieb:
> HTML schrieb:
>> 1. Im Internet nach einer kostenlosen API suchen
>
> es gibt hunderte Seiten, die die Kurse anbieten.
>> 2. HTML lernen (Wenn du C kannst, dauert das keine zwei Stunden, bis du
>
> Brauche ich nicht, da ich das nicht interpretieren will.

Ja watt denn nu? Von nichts kommt nichts.

Die drei Brocken html fürs Verständnis könntest du inzwischen durchaus 
beherrschen, wenn du dich drangesetzt hättest, statt den Thread 
aufzumachen ;-)

von Christian J. (Gast)


Lesenswert?

Anleger schrieb:
> Nutze https://www.alphavantage.co ,das ist kostenlos.

Ich werde bekloppt! Das ist ja genau das was ich suche! Sogar mit zig 
Indikatoren usw. Und das alles im JSON Format...... Hammer! Bloss die 
Werpapierkürzel eingeben und schon spult das runter, hier Microsoft...
Wozu HTML lernen, mir reicht der Umgang mit JSON und XML vollkommen aus 
:-)

DANKE !!!!!

{
    "Meta Data": {
        "1. Information": "Daily Prices (open, high, low, close) and 
Volumes",
        "2. Symbol": "MSFT",
        "3. Last Refreshed": "2019-04-05 12:10:21",
        "4. Output Size": "Compact",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2019-04-05": {
            "1. open": "119.3900",
            "2. high": "120.2300",
            "3. low": "119.3700",
            "4. close": "119.9949",
            "5. volume": "7428653"
        },

usw. usw.

von Arc N. (arc)


Lesenswert?

Christian J. schrieb:
> Anleger schrieb:
>> Nutze https://www.alphavantage.co ,das ist kostenlos.
>
> Ich werde bekloppt! Das ist ja genau das was ich suche! Sogar mit zig
> Indikatoren usw. Und das alles im JSON Format...... Hammer! Bloss die
> Werpapierkürzel eingeben und schon spult das runter, hier Microsoft...
> Wozu HTML lernen, mir reicht der Umgang mit JSON und XML vollkommen aus
> :-)

Gibt's bei Yahoo auch noch
https://query1.finance.yahoo.com/v7/finance/chart/%5EGDAXI

von Christian J. (Gast)


Lesenswert?

Arc N. schrieb:
> Gibt's bei Yahoo auch noch
> https://query1.finance.yahoo.com/v7/finance/chart/%5EGDAXI

Und wie ist die API dokumentiert? Sieht ja wüst aus, müsste erstmal 
sortiert werden nach JSON.

[11997.5400390625,11999.7001953125,11996.66015625,11995.3203125,11992.01 
953125,...

Ist das ab 9 Uhr, 5 Minuten Kurse? Das wäre ja easy die ein zu lesen, 
ganz ohne JSON.....

"timezone":"CEST","start":155444760 ist 9:00 heute wenn man Unixtime 
umrechnet.... "end":1554478200 ist 17.30 also Xetra Schluss.

von bingo (Gast)


Lesenswert?

https://www.finanztreff.de, da steht der DAX ganz links oben, kann man 
leicht extrahieren

von Willi S. (ws1955)


Lesenswert?

Schon seit mehreren Jahren greife ich mir die Kursdaten bei Ariva.de ab 
und filtere die Quelltexte. Aufpassen muss man, damit man die nicht 
verzögerten Kurse bekommt sondern Realtime. Bisher habe ich das nur über 
gehandelte WKN sprich Zertifikate geschafft. DAX Realtime funktioniert 
ansonsten nur über einen PUSH-Overhead, den ich mir ersparen möchte.

Auf einem kostenlosen Webserver (lima-city.de) in PHP, Schnippsel 
daraus.
Triggerung durch einen externen Cronjob-Dienst, konfiguriert für Mo-Fr 
0900-2055 alle 5 Minuten. Diverse Berechnungen, Logfiles, Email bei 
Limits etc.

Die Filterung ist ja "wahnsinnig" kompliziert (...):

Gelegentlich muss man die WKN und auch die Filterung anpassen, das kommt 
aber recht selten vor. Nervig ist es nur, wenn man auf Reisen ist und 
sich damit eigentlich gar nicht beschäftigen lassen möchte.

$KDAXwkn= "792867";   //"543741";  //"792867";  //"702979";
$VDAXwkn= "A0G83W";

/*  180806 wieder mal Alternativen gesucht, weil CDB-EDV ausgefallen:
    543741  ok
    394008  ok, aber CDB und wie 702979 heute kein Kurs
    CD2JKY  ok, open end
    DE04YF  ok, Lfz bis 12/2019
    DE04YG  ok, Lfz bis 12/2020
    792867  ok

    787320, 635187, LBW4QS, 846900 delayed 15-40 Minuten. Unbrauchbar!
*/

$arrWKN[$KDAXwkn]=['IX  DAX ',      0,'            ',3];    // 180523 
neuer Modus dafür
$arrWKN[$VDAXwkn]=['VDAX  2M',      0,'            ',2];

:::

   case 3:

     $xa=strpos($a,'<tdclass="first">',1)+17+2;  //Beachte die 2 Bytes 
CRLF
     $xe=$xa+6;
     break;

Umwandlung String in Zahl, mal 100, fertig.

von Christian J. (Gast)


Lesenswert?

Willi S. schrieb:
> Schon seit mehreren Jahren greife ich mir die Kursdaten bei Ariva.de ab
> und filtere die Quelltexte. Aufpassen muss man, damit man die nicht
> verzögerten Kurse bekommt sondern Realtime.

Ok, aber das ist weit außerhalb meiner kleinen Mikrocontroller Welt. Ich 
wüsste gar nicht wie ich sowas aufsetzen müsste, PHP, Webserver usw. da 
ich beruflich mit sowas nichts zu tun habe und privat keine Verwendung 
bisher dafür hatte. Ist 20 Jahre an mir vorbei gegangen diese 
Entwicklung Ok, ein Forum mit SQL datenbasis habe ich mal aufgesetzt 
aber das war auch nicht so schwer und zu Hause läuft 24/7 ein Linux 
Server für meine riesigen Datenmengen an Filmmaterial.

Mir reicht diese kostenlose Datenbasis, wo ich die Kurse am Ende eines 
Tages abgreifen kann und das kriege ich sogar noch unter Linux hin mit 
make, gcc , TCP IP Socket und HTTP Requests.  Das Auseinander Frimeln 
der Daten in ein Textfile oder crv wird auch noch klappen.

Naja, kann man sich natürlich auch alles sparen, da die Finanzmärkte 
natürlich solche Tools entwickelt haben. Mit Metatrader4 und der 
programmiersprache MQL (Pascal Dialekt) ist das alles kein Thema zb 
Backtests laufen zu lassen. Die API bietet alles, wirklich alles zu dem 
Thema und man kann auch ein Depot in kurzer Zeit vor die Wand fahren, 
wenn man seine Skripte am Markt testet.

von Willi S. (ws1955)


Lesenswert?

Beim obigen Schnippsel fehlte die URL und Vorfilterung, drum hier 
nochmal und nur für den DAX:

$WKN= "792867";   //"543741";  //"792867";  //"702979";

$_url="https://www.ariva.de/zertifikate/".$WKN."/kurs";;

  html-File holen ($buffer)

$order   = array("\r\n", "\n", "\r", "\t", " ", ">"     );
$replace = array(  ""  ,  "" , ""  , ""  , "" , ">\r\n" );
$a       = str_replace($order, $replace, $_buffer);
$xa=strpos($a,'<tdclass="first">',1)+17+2;  //Beachte die 2 Bytes CRLF
$xe=$xa+6;
$txt=substr($a,$xa,$xe-$xa);
$KURS = str_replace(",",".",$txt);

Das ist PHP, nur als Tipp. Natürlich geht es auch mit anderen Sprachen. 
HTTPS bedenken, mit HTTP kommt man heutzutage nicht mehr weit.

von Andreas R. (daybyter)


Lesenswert?

Beim Metatrader ist man ja leider meist an den Broker gebunden, bei dem 
man ihn runtergeladen hat.

Ninjatrader ist evtl noch ne Alternative.

von Michael B. (laberkopp)


Lesenswert?

Christian J. schrieb:
> Habe davon keinen Schimmer,

Schlechte Grundlage.

Bei den allermeisten Seiten wird der Inhalt vom Server auf eine HTTP-Get 
Anfrage als HTML geliefert (und nicht per Java-Applet hinsimuliert).

HTML ist Klartext, einfach lesen und darin die benötigten Angaben 
suchen. Dazu gibt es viele vorgefertigte Libraries.

Schlimm sieht z.B. der Quelltext aus, den man mit Google.de Eingabe DAX 
erhält. Einfacher ist onvista-DAX, darin steht <meta 
property="schema:price" content="12009.75"> . Wird man ja wohl finden.

Welche davon auf einem "ES8266" läuft, sei müsste man raussuchen.

von Captain Iglo (Gast)


Lesenswert?

Und bei welchem Anbieter kann man automatisiert handeln?

von Bedenkenträger (Gast)


Lesenswert?

1. Das Vorhaben dürfte auf so ziemlich jeder Seite, bei der man die 
Daten abgreifen kann, in den Nutzungsbedingungen ausgeschlossen sein. 
Wer die Daten auf seiner Seite präsentiert, hat dafür selbst irgendwo 
bezahlt und wird im Gegenzug meist auch Einnahmen erzielen wollen, sei 
es durch Werbung (die üblichen Nachrichten-/Finanzportale) oder durch 
"Kundenbindung" (Banken, Broker, Vermittler, ...).

2. Der DAX hat keinen Kurswert.

von Christian J. (Gast)


Lesenswert?

Captain Iglo schrieb:
> Und bei welchem Anbieter kann man automatisiert handeln?

IG Markets.

von Peter M. (r2d3)


Lesenswert?

Christian J. schrieb:
> IG Markets.

Au weia.
Und die Stops werden wie durch ein Wunder alle getriggert und bestens 
ausgeführt. :)

Wo ist denn eigentlich unser "Finanzberater"?
Seine unterhaltsamen immer gleichen Beiträge fehlen mir irgendwie.

Anbei so ein fiktiver Finanzberaterbeitrag von mir für alle, die auch 
Spaß an seinen Stellungnahmen haben!

[...
Seitdem ich mein Börsenkursabo gekündigt habe und nur noch zur Tafel 
essen gehe, stecke ich die freiwerdende Liquidität in ausgewählte 
Aktientitel mit Potential.

Dadurch ist mir heute schon möglich, einen Lebenstil zu frönen, von 
denen der normale Elektroingenieur nur träumen kann.

95% der Investoren sind doof und uninformiert und erzielen 
Unterrenditen.
Mein Portfolio schlägt seit Auflegung (vor 3 Wochen) den Markt um 
Längen.

Neulich habe ich mich wieder bei einer Firma beworben. Die lange 
Zugreise habe ich mir zu 100% erstatten lassen, obwohl ich eine 
Bahncard50 habe.

Die Differenz habe ich natürlich gleich in ein DAX-ETF gesteckt.

Langfristig werde ich wohl zu den 20% gehören, die 80% besitzen.
...]

: Bearbeitet durch User
von Andreas R. (daybyter)


Lesenswert?

Captain Iglo schrieb:
> Und bei welchem Anbieter kann man automatisiert handeln?

Du kannst z.B. praktisch bei jedem Anbieter, der den Metatrader 
anbietet, sogenannte EAs (Expert Advisor) laufen lassen, die halt 
Tradebots sind. Dabei gibt es meist einige Einschränkungen, wie z.B. die 
Bindung an den Broker, von dem Du den Metatrader hast, oder auch meist 
nur recht langsame Datenraten.

Eine Übersicht der Anbieter findest Du z.B. hier:
https://www.brokerdeal.de/

Willst Du schnellere Verbindungen (FIX, Itch o.ä.) wirds meist bisserl 
teurer, aber das kann sich durchaus lohnen, wenn Du Deine 
Hardware-Kenntnisse als Vorteil benutzen willst (z.B. FPGA nutzen zum 
Auswerten der Preise und Abschicken der Orders).
Schreib mich mal an, wenn Du mehr Infos haben willst. Ich bastel schon 
paar Jahre an solchen Bots und kann Dir ggf den ein oder anderen Tipp 
geben.

von Michael B. (laberkopp)


Lesenswert?

Andreas R. schrieb:
> aber das kann sich durchaus lohnen, wenn Du Deine
> Hardware-Kenntnisse als Vorteil benutzen willst

Er will nicht am reinen Glücksspiel des Millisekundenhandels teilnehmen, 
sondern stündliche Kurse von offensichtlich 15 Minuten zeitverzögerten 
Seiten (Ariva) abgreifen. Da braucht er dein FPGA nicht.

von Pietro (Gast)


Lesenswert?

Bedenkenträger schrieb:
> Das Vorhaben dürfte auf so ziemlich jeder Seite, bei der man die
> Daten abgreifen kann, in den Nutzungsbedingungen ausgeschlossen sein.

Werden diese überhaupt wirksam, wenn man die Kurse ohne ein 
Vertragsverhältnis mit dem Anbieter einfach so aufrufen kann?
Bei dieser Art von Inhalte-Anbietern hält sich mein Mitleid in Grenzen.

von Christian J. (Gast)


Lesenswert?

Michael B. schrieb:

> Er will nicht am reinen Glücksspiel des Millisekundenhandels teilnehmen,
> sondern stündliche Kurse von offensichtlich 15 Minuten zeitverzögerten
> Seiten (Ariva) abgreifen.

Du hast es erfasst! Und dazu reichen die Angaben oben aus, da Yahoo 
scheinbar noch dieses API hat. Einfach am Tagesende die 1H-Kerzen haben 
und abspeichern, für alles andere habe ich meinen Broker Zugang. Und 
wenn der Spass dann noch reicht Metatrader und etwas MQL anlesen, 
darüber gibt es massenweise Material, ja tonnenweise: 
https://www.mql5.com/de/articles/mt5
so dass man ein ganzes Berufsleben damit verbringen könnte, sofern man 
Mathematiker ist:

"DIE PRAKTISCHE VERWENDUNG EINES NEURONALEN KOHONEN-NETZES IM 
ALGORITHMISCHEN HANDEL" ... hicks.

https://www.mql5.com/de/articles/5472

Davon verstehe ich Null, niente.... nicht mal den Titel.

von Michael B. (laberkopp)


Lesenswert?

Christian J. schrieb:
> Davon verstehe ich Null, niente.... nicht mal den Titel

Da geht doch alles aus dem Titel hervor:

Beim (Wertpapier-)handel hilft keine Logik, sondern man braucht 
neuronale Netze, die das typische menschenähnliche Verhalten zeigen: 
Eher raten als rechnen, aus unpassendem (unvollständigem) Input trotzdem 
irgendeinen Output zu erzeugen, der auch mal komplett daneben liegen 
kann.

Bei Glücksrittern ist jede Pseudowissenschaft willkommen, auch der 37 
Jahre alte Kohonen.

von Christian J. (Gast)


Lesenswert?

Michael B. schrieb:
> Bei Glücksrittern ist jede Pseudowissenschaft willkommen, auch der 37
> Jahre alte Kohonen.

Da reicht es schon Eliott zu beherrschen. Und an der Börse ist alles nur 
Wahrscheinlichkeit und da reichen 51%-60% aus um langfristig erfolgreich 
zu sein. Nur wenige Prozent über 50:50. Alles reine Mathematik. Ein 
gewisser "Eisbär" alias Erich Schmidt, inzwischen 65 Jahre alt ist da 
einer der Besten, die ich kenne.

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.