Seite 1 von 2

Börsenkurse runterladen ?

Verfasst: Mittwoch 2. November 2005, 15:24
von 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 ?

Verfasst: Mittwoch 2. November 2005, 16:15
von jens
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 ;)

Verfasst: Mittwoch 2. November 2005, 21:20
von Torsten2005
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ß

Verfasst: Donnerstag 3. November 2005, 07:56
von jens
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...

Verfasst: Freitag 4. November 2005, 19:57
von Torsten2005
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ß

Verfasst: Samstag 5. November 2005, 13:01
von jens
Da mußt du selber mal nachsehen... Ein Eintieg ist die Seite http://de.biz.yahoo.com/de/overview.html

Verfasst: Donnerstag 8. Dezember 2005, 19:47
von Torsten2005
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.

Verfasst: Donnerstag 8. Dezember 2005, 20:28
von Leonidas
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.

Verfasst: Freitag 9. Dezember 2005, 15:24
von Torsten2005
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.

Verfasst: Freitag 9. Dezember 2005, 15:35
von Leonidas
Das nächste mal Codes bitte in [python]-Tags setzen, ich hab das mal für dich gemacht.

Verfasst: Freitag 9. Dezember 2005, 18:15
von Torsten2005
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 .

Verfasst: Freitag 9. Dezember 2005, 18:22
von Leonidas
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()

Verfasst: Freitag 9. Dezember 2005, 20:11
von Torsten2005
danke klappt , geht doch so einfach hätt ich nicht gedacht :idea:

Seiten zum Download von Fondskursen?

Verfasst: Donnerstag 6. Juli 2006, 17:05
von HWK
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

Verfasst: Dienstag 25. Juli 2006, 20:20
von HWK
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.

Verfasst: Freitag 15. September 2006, 11:00
von nofuture
Man kann mittels des Programms QAccess.com den Datenfeed von Yahoo in Accessdatebank füttern. Damit erleichtert man sich einige Arbeit.

Aktienkurse Historie runterladen mit Python

Verfasst: Montag 18. Februar 2008, 12:31
von sea-live
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

Verfasst: Montag 18. Februar 2008, 13:28
von BlackJack
Siehe folgenden Beitrag für Kritik: http://www.python-forum.de/post-90450.html#90450

Verfasst: Montag 18. Februar 2008, 13:48
von sea-live
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] **

Verfasst: Montag 18. Februar 2008, 14:19
von 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.