Börsenkurse runterladen ?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Torsten2005

Mittwoch 2. November 2005, 15:24

hallo , ich möchte mir ein (erstmal einfaches) Börsenprogramm schreiben .

- wollte wissen : ob jemand eine möglichkeit kennt von einem server kursdaten mittels tickersymbol runterzuladen ?
Benutzeravatar
jens
Moderator
Beiträge: 8481
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 2. November 2005, 16:15

Das hatte ich auch mal angedacht und ein wenig rumprogrammiert... Bei http://finance.yahoo.com/ konnte man Kurse als CVS recht gut runterladen... Es gibt da noch eine Reihe andere Anbieter, bei den man das machen kann, aber realtime kostet immer Geld ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

Mittwoch 2. November 2005, 21:20

ja danke ich werde mich da mal umschaun . Es muss ja nicht realtime sein , 15 min verspätet reicht völlig . will mir dann ein chartprogramm basteln , ich weiß das gibs auf jeder börsenseite , aber nie so wie ich es will und dann möchte ich außerdem Candlestickmuster programmieren usw.

Nur die kurse muss ja irgendein Server zur verfügung stellen , den man dann entsprechend ansprechen muss.
Ich wollte nämlich erstmal diese grundlegende sache klären , bevor ich mich an das programm ranmache !

gruß
Benutzeravatar
jens
Moderator
Beiträge: 8481
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 3. November 2005, 07:56

Es gibt auch lokal laufende Börsenprogramme, in recht unterschiedlichen Preisregionen. Die c't (14/2005, Seite 120) hatte mal einen Test gemacht, war recht interessant der Artikel...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

Freitag 4. November 2005, 19:57

jens hat geschrieben:Das hatte ich auch mal angedacht und ein wenig rumprogrammiert... Bei http://finance.yahoo.com/ konnte man Kurse als CVS recht gut runterladen... Es gibt da noch eine Reihe andere Anbieter, bei den man das machen kann, aber realtime kostet immer Geld ;)

kannst du mir mal sagen wie man das cvs-system bei der seite benutzen kann ??

gruß
Benutzeravatar
jens
Moderator
Beiträge: 8481
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Samstag 5. November 2005, 13:01

Da mußt du selber mal nachsehen... Ein Eintieg ist die Seite http://de.biz.yahoo.com/de/overview.html

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 8. Dezember 2005, 19:47

hallo , so bin ein wenig weiter gekommen ,

wollte das runterladen der Börsenkurse nun anders realisieren da es ja von yahoo eine url gibt wo man die kurse rauslesen kann :

Dieses Programm liest die seite raus , die tage von wann bis wann man die kurse haben möchte , kann man dann noch in der url varriieren.

Code: Alles auswählen

import urllib
url=("http://finance.yahoo.com/q/hp?a=11&b=05&c=2005&d=11&e=05&f=2005&s=DCX.DE&g=d")
a=urllib.urlopen(url)
s=a.readlines()
print s
a.close

Jetzt muss man eigentlich nur noch die daten aus dem HTML text rauslesen und dann in eine seperate Datei (die dann den symbolnamen bekommt) abspeichern .

Frage: wie kann man das am effektifsten machen ?

Der Textschnipzel der seite sieht so aus :

Code: Alles auswählen

align="right">6-Dez-05</td><td class="yfnc_tabledata1" align="right">43,12</td><td class="yfnc_tabledata1" 
align="right">43,38</td><td class="yfnc_tabledata1" align="right">42,98</td><td class="yfnc_tabledata1" 
align="right">43,37</td><td class="yfnc_tabledata1" align="right">3.347.981</td><td 
Ich brauch dann für die z.b. DCX.txt datei Datum , eröffnung , hoch, tief ,schluß und Volumen .

Ansonsten kann man mit der url die entsprechenden csv -dateien runterladen , aber ich weiß nicht wie man die mit python runterladen kann .

url=("http://ichart.yahoo.com/table.csv?=5&b= ... gnore=.csv")

Edit (Leonidas): Code in Python-Tags gesetzt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 8. Dezember 2005, 20:28

BeautifulSoup könnte etwas für dich sein, oder du machst es über reguläre Ausdrücke, so wie ich es in What's On Air (zugegebenermaßen etwas überflüssigerweise) gemacht habe.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

Freitag 9. Dezember 2005, 15:24

So ich habs mit regulären Kramm versucht : (weil ich mit der suppengeschichte nicht klar kam )

Code: Alles auswählen

from Tkinter import *
import urllib
from re import *
Symbol="DCX"
Monatvon="11"
Tagvon="05"
Jahrvon="2005"
Monatbis="11"
Tagbis="08"
Jahrbis="2005"
# Daten rauslesen
url=("http://finance.yahoo.com/q/hp?a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&s=%s.DE&g=d" %(Monatvon,Tagvon,Jahrvon,Monatbis,Tagbis,Jahrbis,Symbol))
a=urllib.urlopen(url).readlines()
       
for i in a:   
     if '</tr></table><table width="100%" cellpadding="2" cellspacing="0" border="0"><tr class="yfnc' in i:   # i ist ein string
        #print i     
        Dat=findall ('>\d-\D+-\d\d<',i)
        print Dat
        Kurse=findall ('>\d+\D\d+<',i)     #Dat,Kurse,Volumen sind Listen
        print Kurse
        Volumen=findall ('\d+,\d+,\d+',i)
        print Volumen
        
     #   replace(p,"")
meine Frage jetzt noch dazu : Die Variablen Dat, kurse usw. sind jetzt Listen , und bei listen kann ich die replaceanweisung nicht anwenden ?
kann ich listen in Strings umwandeln? Oder kann man gleich verschachtel replace (findall ())) oder so ähnlich arbeiten ?

Gruß

Edit (Leonidas): Code in Python-Tags gesetzt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 9. Dezember 2005, 15:35

Das nächste mal Codes bitte in [python]-Tags setzen, ich hab das mal für dich gemacht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

Freitag 9. Dezember 2005, 18:15

ok !
hab aber noch eine andere Frage : unter dem Link ; ein Beispiel für für DCX(Daimler) ; kann man die Datei als Table.csv datei runterladen

http://ichart.yahoo.com/table.csv?a=5&b ... gnore=.csv

Wie macht man das unter python , so das man dann auch automatisch die datie in dcx.csv umbenennt?

-meine Bücher geben da nix her , wie ich das mit dem httplib modul machen kann .
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 9. Dezember 2005, 18:22

Dazu benutzt man urllib:

(ungetestet)

Code: Alles auswählen

import urllib
req = urllib.urlopen('http://ichart.yahoo.com/table.csv?a=5&b=22&c=2005&d=11&e=05&f=2005&s=DCX.DE&y=0&g=d&ignore=.csv')
f = file('dcx.csv', 'w')
f.write(req.read())
f.close()
req.close()
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

Freitag 9. Dezember 2005, 20:11

danke klappt , geht doch so einfach hätt ich nicht gedacht :idea:
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Donnerstag 6. Juli 2006, 17:05

http://finance.yahoo.com/ bietet leider nur CSV-Dateien für Aktien. Gibt es auch eine Seite, wo man weiterverwendbare Dateien auch für Fonds kostenlos herunterladen kann? Tagesaktuelle Kurse würden mir ausreichen.
Bei den meisten kostenlosen Anbietern kann man die Fondskurse ja nur interaktiv (häufig über JAVA-Applets) suchen lassen. Dann dürfte das Herunterladen wohl recht kompliziert und vor allen Dingen sehr zeitaufwendig sein. Oder gibt es dafür Onlinezeit-sparende Methoden?

Vielen Dank im voraus
HWK
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Dienstag 25. Juli 2006, 20:20

Nach längerem Suchen habe ich die Seite http://www.teletrader.com/ gefunden. Hier kann man mittels 'http://www.teletrader.com/_markets/sear ... archfor=%s' %s wkn eine Seite herunterladen, die von mehreren Börsen mehr oder weniger aktuelle Kurse für die WKN liefert. Diese Seite kann dann wirklich einfach mit Pythons Stringfunktionen ausgewertet werden.
Antworten