Herbststurm
(Themenstarter)
Anmeldungsdatum: 27. Mai 2011
Beiträge: 244
|
Ich habe das Ganze noch um eine if Schleife erweitert um das sinnvoll beenden und wieder starten zu können: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | #!/bin/bash
if test -e ./DAX_tick.txt
then
while :; do
(echo -n $(w3m -no-cookie http://www.finanzen.net/aktien/DAX-Realtimekurse | grep -A1 'Zeit.*Bid.*Ask' | tail -n 1 | sed -r 's/.{0}(.{18}).*/\1/') "" && date "+%d.%m.%y") >> DAX_tick.txt
sleep 12
done
else
echo "#Zeit Geldkurs Datum" >> DAX_tick.txt
while :; do
(echo -n $(w3m -no-cookie http://www.finanzen.net/aktien/DAX-Realtimekurse | grep -A1 'Zeit.*Bid.*Ask' | tail -n 1 | sed -r 's/.{0}(.{18}).*/\1/') "" && date "+%d.%m.%y") >> DAX_tick.txt
sleep 12
done
fi
|
Hier mal ein kleiner Output aus der DAX_tick.txt #Zeit Geldkurs Datum
19:40:30 10.597,00 23.08.16
19:40:30 10.597,00 23.08.16
19:40:52 10.598,00 23.08.16
19:41:01 10.597,00 23.08.16
19:41:01 10.597,00 23.08.16
19:41:01 10.597,00 23.08.16
19:41:01 10.597,00 23.08.16
19:41:40 10.596,50 23.08.16 Das lässt schon vermuten, dass 12 Sekunden velängert werden könnten. Ich probiere mal 20 Sekunden. Drei Datenpunkte pro Minute
|
Seebär
Anmeldungsdatum: 2. Mai 2009
Beiträge: 829
|
Herbststurm schrieb: Ich habe das Ganze noch um eine if Schleife erweitert um das sinnvoll beenden und wieder starten zu können:
Weia. Zum Glück gibt es für alles eine Seite im Netz: if Schleife 😉
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28952
Wohnort: WW
|
Hallo, Yahoo Finances bietet eine recht umfangreiche REST-API zum Abfragen von Aktienkursen / Werten. Müsstest halt nur mal checken, ob der von dir gesuchter Wert da auch drin ist. Gruß, noisefloor
|
Herbststurm
(Themenstarter)
Anmeldungsdatum: 27. Mai 2011
Beiträge: 244
|
Aber das sind leider alte Daten und auch nicht im Ticker soweit ich weiß.
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Auf der vorigen Seite hatte ich ja einen "Datenkompressor" vorgeschlagen, der immer nur was schreibt, wenn sich der Kurs ändert. Sowas geht recht hübsch mit einer temporären Datei und tail --follow (oder auch einer Pipe) zu machen, mit einem nachgeschalteten Filter, der auf Änderungen reagiert. Ich habe für beide Filter jetzt mal einfach awk bemüht. Damit sähe das so aus:
Abfrageschleife zum einspeisen der tmp-Datei: | while sleep 30; do
w3m -no-cookie http://www.finanzen.net/aktien/DAX-Realtimekurse \
| awk '/Zeit.*Bid.*Ask/ { getline; print $1,$2,strftime("%d.%m.%y")}'
done >> /tmp/dax.tmp
|
und dann in einem anderen Terminal das Zusammenfassen: track@track:~$ tail -f /tmp/dax.tmp | awk 'FNR==1 {print "#Zeit Geldkurs Datum"} {if($2 != vorkurs) print; fflush(); vorkurs=$2 }'
#Zeit Geldkurs Datum
21:11:25 10.592,50 23.08.16
21:11:50 10.593,00 23.08.16
21:12:52 10.593,50 23.08.16
21:13:28 10.594,00 23.08.16
21:14:13 10.596,50 23.08.16
21:14:25 10.596,00 23.08.16
21:15:11 10.595,50 23.08.16
21:15:26 10.596,50 23.08.16
21:15:28 10.596,00 23.08.16
21:15:45 10.595,50 23.08.16
21:16:34 10.596,00 23.08.16
21:18:06 10.595,50 23.08.16
21:18:38 10.596,00 23.08.16
21:19:02 10.595,50 23.08.16
21:19:18 10.595,00 23.08.16
21:19:52 10.596,00 23.08.16
21:20:11 10.595,00 23.08.16
21:20:26 10.594,50 23.08.16
21:20:29 10.595,00 23.08.16 Das kannst Du mit tee nebenbei natürlich auch noch mitloggen.
An den Zeitstempeln siehst Du, dass er wirklich nur schreibt, wenn sich der Kurs ändert. LG, track
|
Herbststurm
(Themenstarter)
Anmeldungsdatum: 27. Mai 2011
Beiträge: 244
|
Ziemlich cool. Danke sehr. Ich habe nochmal darüber nachgedacht und lasse lieber äquidistant die Zeitpunkte ausgeben damit unterschiedliche Aktien und Indizes die jeweils gleichen statistischen Grundgesamtheiten besitzen. Das halte ich nach Abwägung für besser um bei Analysen kein Opfer des Simpson Paradoxon zu werden. Trotzdem bin ich für den Code sehr dankbar, denn es werden bestimmt wieder Aufgaben erscheinen wo das nützlich werden kann (völlig unabängig von Börse sondern IT Aufgaben). Den awk Befehl kannte ich noch nicht. Da habe ich nützliches gelernt ☺ Was ich als nächstes machen werde ist eine Zeitsteuerung die dafür sorgt das es zu Börsenschluss sowie Börsenbeginn beendet und automatisch startet. Das ganze mit dem Hintergedanken das Skript dann auf einem Server laufen zu lassen. Ich bin mir nur noch nicht ganz sicher ob ich das mit dem at Befehl realisieren werde oder ob Cron-jobs geeigneter sind. Das finde ich aber noch raus ☺
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Die Zeitsteuerung die Du suchst, gibt es als eine simple cron - Zeile, kombiniert mit 2-3x sleep (für die 15./30./45. Sekunde oder so). at wäre eher für einmalige Aufgaben.
LG, track
|