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 ?
Börsenkurse runterladen ?
- 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 ![Wink ;)](./images/smilies/icon_wink.gif)
![Wink ;)](./images/smilies/icon_wink.gif)
-
- 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ß
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ß
-
- 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ß
- 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
-
- 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.
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 :
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.
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
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.
-
- 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
-
- 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 )
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.
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,"")
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.
-
- 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 .
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 .
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Dazu benutzt man urllib:
(ungetestet)
(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
-
- 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 :idea:](./images/smilies/icon_idea.gif)
![Idea :idea:](./images/smilies/icon_idea.gif)
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
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
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.
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
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.
Siehe folgenden Beitrag für Kritik: http://www.python-forum.de/post-90450.html#90450
Dieses Beispiel läuft aber bei mir nicht ERRORBlackJack hat geschrieben:Siehe folgenden Beitrag für Kritik: http://www.python-forum.de/post-90450.html#90450
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] **
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.
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.