Also was soll das Programm können :
[der Quelltext kommt am Ende]
-Kurse von aktien runterladen --> gelöst ,-aktuell 2tagealte kurse(rückwirkend ca. 9 monate)
-aktelle Kursdaten des Tages aus börsenseite herausfiltern --> fast gelöst
-aus den Daten Candlestick muster heraussuchen , wie z.b hammer , morgenstern , tower usw. --> für hammer gelöst und dann ausgabe der Tage
Das soll erstmal das Grundgerüst sein , natürlich kann man das später noch erweitern !
Probleme:
Allerdings tun sich da jetzt einige problem auf , weil ich bis jetzt auf Klassen , methoden verzichtet habe , weil ich noch nicht so ganz damit klar komme .
- Daten erweitern : damit meine ich , die csv-datei umfasst daten vom 28.2.2005 bis 7.12.05 , für den 9.12 bekomm ich es von der aktuellen seite, am montag den 12.12 bekomme ich die daten für den 8.12 am dienstag für den 9.12 usw. , die daten vom 28. 2 sind dann aber weg weil csv. datei überschrieben?????
- also aktuelle Daten der csv-datei hinzufügen ??
- wichtigste Frage: welche Klassen , sind hier am sinnvollsten , ?
Naja villeicht ist hier noch ein charttechnisch innteressierter
kurz zum Programm : Ordner müssen individuell verändert werden ,; beim start öffnet sich ein fenster mit 2 botton ; K--> Kurse holen ; W--> Muster heraussuchen , bisher nur Hammer ;
Quelltext
Code: Alles auswählen
#! /usr/bin/env python
# -*- coding: cp1252 -*-
from time import *
from Tkinter import *
import urllib
from re import *
heute=strftime('%d')+'-'+strftime('%b')+'-'+strftime('%y')
Wochentag=strftime('%w') #Sonntag ist 0 ; sammstag 6
int(strftime('%d'))-1
if strftime('%w')=='6': #Wochentagsänderung wenn So oder Sa zu Freitag
heute=str(int(strftime('%d'))-1)+'-'+strftime('%b')+'-'+strftime('%y')
if strftime('%w')=='0':
heute=str(int(strftime('%d'))-2)+'-'+strftime('%b')+'-'+strftime('%y')
Symbol="DCX"
Monatvon="01"
Tagvon="10"
Jahrvon="2005"
Monatbis="11"
Tagbis="09"
Jahrbis="2005"
#aktuelle daten lesen
url=("http://de.finance.yahoo.com/q?s=%s.DE" %(Symbol))
a=urllib.urlopen(url).readlines()
for i in a:
if '</td></tr></table><br><table width="585" id="yfncsumtab" cellpadding="0"' in i: # Zeile mit den Daten; i ist ein string
Eroeffnungskurs=str(findall('Er\xf6ffnungskurs\S+\s\S+\d+',i))
heute_open=str(findall('>\d+,\d+',Eroeffnungskurs)).replace('>','') #open
heute_Tagesspanne=str(findall('Tagesspanne\S+\s\S+\d+\s-\s\d*,\d*',i))
heute_Tagesspanne1=str(findall('>\d+,\d+',heute_Tagesspanne))
heute_tief=findall('\d+,\d+',heute_Tagesspanne1) #tiefkurs
heute_Tagesspanne2=str(findall('-\s\d+,\d+',heute_Tagesspanne))
heute_hoch=heute_Tagesspanne2.replace('- ','') #hochkurs
Schlusskurs=str(findall('Letzter\s*Kurs\S+\s\S+\d+',i))
heute_letzter=str(findall('>\d+,\d+',Schlusskurs)).replace('>','') #letzterKurs
def but1():
#Datei erzeugen und alte daten(2tage alt) als CSV datei runterladen
anfrage = urllib.urlopen('http://ichart.yahoo.com/table.csv?a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&s=%s.DE&y=0&g=d&ignore=.csv' \
%(Monatvon,Tagvon,Jahrvon,Monatbis,Tagbis,Jahrbis,Symbol))
datei=file('C:/Dokumente und Einstellungen/Torsten/Desktop/Boersenprogramm_Python/Daten/%s.csv' %Symbol, 'w+') #hier kommen die Daten hin
datei.write(anfrage.read())
datei.close()
anfrage.close()
def but2():
#Daten bearbeiten--> Datum (Format T.M.jahr) , O ,H, T,S ,V ,rest;
daten=file('C:/Dokumente und Einstellungen/Torsten/Desktop/Boersenprogramm_Python/Daten/%s.csv' %Symbol, 'r')
kurse=daten.read() #beispiel: 7-Dec-05,43.17,43.45,42.57,42.99,4392391,42.99
zeilen=kurse.splitlines()
d_dcx ={} #Dictionary
zeilen.remove('Date,Open,High,Low,Close,Volume,Adj. Close*')
for z in zeilen:
spalte=z.split(',')
datum=spalte[0]
open=spalte[1]
hoch=spalte[2]
tief=spalte[3]
schluss=spalte[4]
volumen=spalte[5]
#float(((float(open)-float(tief))/(float(schluss)-float(open))))
if (float(schluss)-float(open))!=0: # and(float(hoch)-float(schluss))
if float(((float(open)-float(tief))/(float(schluss)-float(open)))) >3\
and float(((float(hoch)-float(tief))/(float(hoch)-float(schluss)+0.0000001)))> 7.0:
#Hammer
hammer=1
else: hammer=0
d_dcx[datum]=[open,hoch,tief,schluss,volumen,hammer]
#print d_dcx[datum][hammer]
#if (d_dcx[datum][hammer])==0:
# print d_dcx[datum]
for e in d_dcx.keys():
#print e
if (d_dcx[e][5])==1: #wenn hammer
print e
d_dcx[heute]=[heute_open,heute_hoch,heute_tief,heute_letzter,1]
#neuedatei=file('C:/Dokumente und Einstellungen/Torsten/Desktop/Boersenprogramm_Python/Daten/%s_.txt' %Symbol, 'w+')
#Oberflächengestalltung
fenster1 = Tk()
titel = Label(master=fenster1, text='Börsenprogramm',fg='blue',font=(sb,15,'bold','underline'),bd=10)
titel.pack()
fenster1.button=Button(master=fenster1, text='Kurse',command= but1,fg='red',font=(st,10),bd=5,height=1)
fenster1.button.pack(side=LEFT)
fenster1.button=Button(master=fenster1 , text='W',command=but2,fg='red',font=(st,10),bd=5)
fenster1.button.pack(side=LEFT)
fenster1.mainloop()