Börsenkurse runterladen ?

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

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
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 ;)

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

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
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

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

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
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

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

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Torsten2005
User
Beiträge: 34
Registriert: Mittwoch 2. November 2005, 15:37
Wohnort: Berlin
Kontaktdaten:

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

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

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.
nofuture
User
Beiträge: 16
Registriert: Montag 31. Juli 2006, 22:59

Man kann mittels des Programms QAccess.com den Datenfeed von Yahoo in Accessdatebank füttern. Damit erleichtert man sich einige Arbeit.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

Serrvus da hab ich doch was für den tecdax
alle dateien im verzeichniss wo die daten hinsollen
MAN KANN das .cvs auch durch .txt ersetzen dann erhält man weiterverarbeitbare dateien

Code: Alles auswählen

2beiträge weiter funktionierendes programm
Zuletzt geändert von sea-live am Dienstag 4. März 2008, 18:06, insgesamt 1-mal geändert.
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

BlackJack hat geschrieben:Siehe folgenden Beitrag für Kritik: http://www.python-forum.de/post-90450.html#90450
Dieses Beispiel läuft aber bei mir nicht ERROR
Doppelpostings ist auch sicherlich nicht erwünscht deswegen hier schluss
ohne index ist ein einzelner datenzugriff auch sehr schwirig denk ich mal als ANFÄNGER
ich lass mich aber gerne belehren.

wie greif ich dann ohne INDEX auf datensatz 6 zu ** symbol_liste[x] **
BlackJack

Naja, da habe ich den Doppelpunkt am Ende der ``def`` von `main()` vergessen.

Natürlich kann man gezielt auf das 6. Element nur mit einem Index zugreifen, nur wird das in dem Beispiel ja gar nicht gebraucht. Da wird immer nur nacheinander auf *alle* Elemente zugegriffen und das geht eben mit einer ``for``-Schleife über die Elemente.
Antworten