Trading-Stocks.de

Normale Version: Kostenlose Historische EOD Daten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7
danke für die links zu den webseiten, sind für mich hilfreich :-)
EOD od. RT (indikative) gibt es via webscraping.

Einfache Lösung -> excel verwenden => 2013 Hat eingebauten engine und nur eingabe der webadresse plus einen check im Feld (gelber Pfeil) notwendig zu checken.

Excel Menue-> Daten->ext.Daten abrufen->aus dem Web-> usw...
webseite eben nochmals ausprobiert-> https://www.ls-tc.de/de/
Abfragen accepted markieren und Daten Importieren.

Falls es nicht klappt- info ins Forum stellen od. Nachricht an mich Tup
(13.02.2019, 16:26)Noni-Binder schrieb: [ -> ]Excel Menue-> Daten->ext.Daten abrufen->aus dem Web-> usw...
webseite eben nochmals ausprobiert-> https://www.ls-tc.de/de/
Abfragen accepted markieren und Daten Importieren.

Ja die sauge ich auch in RT mit Python. Tradegate steht noch auf der Todo Liste.
#Faultier
hier ist noch ein link mit weiteren postings

https://www.trading-stocks.de/thread-210.html
(13.02.2019, 18:14)atze2000 schrieb: [ -> ]
(13.02.2019, 16:26)Noni-Binder schrieb: [ -> ]Excel Menue-> Daten->ext.Daten abrufen->aus dem Web-> usw...
webseite eben nochmals ausprobiert-> https://www.ls-tc.de/de/
Abfragen accepted markieren und Daten Importieren.

Ja die sauge ich auch in RT mit Python. Tradegate steht noch auf der Todo Liste.

atze2000 - würdest Du diese Saugnäpfe in diesen thread stellen wollen?
(könnte vieleicht doch zu weiteren Aktivitäten führen Biggrin Smile Rolleyes
(13.02.2019, 18:41)Noni-Binder schrieb: [ -> ]
(13.02.2019, 18:14)atze2000 schrieb: [ -> ]
(13.02.2019, 16:26)Noni-Binder schrieb: [ -> ]Excel Menue-> Daten->ext.Daten abrufen->aus dem Web-> usw...
webseite eben nochmals ausprobiert-> https://www.ls-tc.de/de/
Abfragen accepted markieren und Daten Importieren.

Ja die sauge ich auch in RT mit Python. Tradegate steht noch auf der Todo Liste.

atze2000 - würdest Du diese Saugnäpfe in diesen thread stellen wollen?
(könnte vieleicht doch zu weiteren Aktivitäten führen Biggrin Smile Rolleyes

Gibt nachher ein Snippet dazu Wink
Ich hole mir bspw. mit dem HTML Agility Pack via C# die
Daten jeder gewünschten Aktie von finanzen.net - sind keine Realtime Daten,
sondern 15 Min, aber Realtime brauchte ich bisher eben auch nicht.

Die Auswertung mach ich aber immer noch mit Excel - ich hatte schon mal irgendwo drauf hingewiesen
meine ich, das neue Excel hat ja als Datentyp jetzt Stockdata für fast alle US Aktien,
mit allen möglichen Daten wie Mitarbeiterzahl und was weiss ich nicht noch alles.

Ist nur nicht so einfach das in DE sitzend zu aktivieren, da muss ein Sprachpaket
installieren, dann erscheint der Datentyp auch - ist natürlich das einfachste,
muss man sich selber ja nicht mehr um die Kursversorgung kümmern Biggrin
Code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import re
import time
import os
import os.path
import string

sleeptime1 = 10 #20
sleeptime2 = 2

StartStunde = 8
EndStunde = 22

symbollist = ["https://www.ls-tc.de/de/aktien/deutschland/dax"]
                

def check_data(source,a,b):
    fobj = open("Kursdaten/"+source+".csv", "r")
    i = 0
    buf = []
    for line in fobj:
        i = i +1
        buf.append(line)
    fobj.close()
    data = buf[i-1]
    daten_feld = data.split(";")
    if a == daten_feld[1] or b == daten_feld[2]:
        return False
    else:
        return True

def check_double_data(bid,ask):
    buf = []
    fobj = open("Kursdaten/"+source+".csv", "r")
    for line in fobj:
        buf.append[line]
    

def WriteData(wert,Datum,ti,bi,aa,vo):
    if check_data(wert,ti,bi) == True: # and check_double_data() == True: Muss gemacht werden
        if os.path.exists("Kursdaten/"+wert+".csv"):
            fobj = open("Kursdaten/"+wert+".csv","a")
            fobj.write(Datum+";"+ti+";"+bi+";"+aa+";"+vo+"\n")
            fobj.close()
            #print stri[1],";",Datum,";",ti,";",bi,";",aa,";",vo
        else:
            fobj = open("Report/"+"Error"+".csv","a")
            fobj.write(wert+";"+Datum+";"+ti+";"+bi+";"+aa+";"+vo+"\n")
            fobj.close()
            
def format_filename(s):
   """Take a string and return a valid filename constructed from the string.
        Uses a whitelist approach: any characters not present in valid_chars are
        removed. Also spaces are replaced with underscores.
        
        Note: this method may produce invalid filenames such as ``, `.` or `..`
        When I use this method I prepend a date string like '2009_01_15_19_46_32_'
        and append a file extension like '.txt', so I avoid the potential of using
        an invalid filename.
        
        """
   valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)
   filename = ''.join(c for c in s if c in valid_chars)
   filename = filename.replace(' ','_') # I don't like spaces in filenames.
   filename = filename.replace('.','_') # Und ich keine Punkte.
   return filename.lower()


def scrap():
    i = 0
    idx = 0
    while i <> 1:
        Stunde = int(time.strftime("%H"))
        Minute = int(time.strftime("%M"))
        time.sleep(0.01)
        os.system("clear")
        print "Ausserhalb der Handelszeiten!!"
        if Stunde >= StartStunde and Stunde <= EndStunde:
            os.system("clear")
            print "++++++++++++++++++++"
            time.sleep(sleeptime1)
            os.system("clear")
            print "####################"
            #=== URL Lesen ===
            for i in range(0,len(symbollist),1):
                os.system("clear")
                print "++++++++++++++++++++"
                #time.sleep(sleeptime1)
                os.system("clear")
                print "####################"
                time.sleep(sleeptime2)
                htmlfile = urllib.urlopen(symbollist[i])
                htmltext = htmlfile.read()
                #=== HTML Daten Tags ===
                Name    = '<a href="/de/aktie/(.+?)</a>'
                Geld    = 'bidWithCurrencySymbol" decimals="4">(.+?)&nbsp;€</span>'
                Brief   = 'askWithCurrencySymbol" decimals="4">(.+?)&nbsp;€</span>'
                Zeit    = 'midTime" decimals="4">(.+?)</span>'
                Volumen = 'tradeCumulativeTurnoverWithCurrencySymbol" decimals="4">(.+?)&nbsp;€</span>'
                #=== Daten Suchen ===
                patternname = re.compile(Name)
                patternbid  = re.compile(Geld)
                patternask  = re.compile(Brief)
                patterntime = re.compile(Zeit)
                patternvol  = re.compile(Volumen)
                #=== Daten Extrahieren  ===
                Bezeichnung = re.findall(patternname,htmltext)
                BID         = re.findall(patternbid,htmltext)
                ASK         = re.findall(patternask,htmltext)
                TIME        = re.findall(patterntime,htmltext)
                VOL         = re.findall(patternvol,htmltext)
                Datum = str(time.strftime("%d.%m.%Y"))
                for i in range(0,len(Bezeichnung),1):
                    na = Bezeichnung[i]
                    print na
                    bi = BID[i]
                    aa = ASK[i]
                    ti = TIME[i]
                    vo = VOL[i]
                    stri = na.split(">")
                    wert = stri[1]
                    korrekterfilename = format_filename(wert)
                    if idx == 0:
                        fobj = open("Kursdaten/"+korrekterfilename+".csv","a")
                        fobj.write(Datum+";"+ti+";"+bi+";"+aa+";"+vo+"\n")
                        fobj.close()
                        #print stri[1],";",Datum,";",ti,";",bi,";",aa,";",vo
                    elif idx == 1:
                        WriteData(korrekterfilename,Datum,ti,bi,aa,vo)
                    #wert = ""
            idx = 1 # schaltet nach dem ersten schreiben checkdata frei

                    
            

scrap()


Hab den Code vor vielen Jahren geschrieben, müsst mal überarbeitet werden, aber läuft noch.
(13.02.2019, 20:21)atze2000 schrieb: [ -> ]
Code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib
import re
import time
import os
import os.path
import string

sleeptime1 = 10 #20
sleeptime2 = 2

StartStunde = 8
EndStunde = 22

symbollist = ["https://www.ls-tc.de/de/aktien/deutschland/dax"]
                

def check_data(source,a,b):
    fobj = open("Kursdaten/"+source+".csv", "r")
    i = 0
    buf = []
    for line in fobj:
        i = i +1
        buf.append(line)
    fobj.close()
    data = buf[i-1]
    daten_feld = data.split(";")
    if a == daten_feld[1] or b == daten_feld[2]:
        return False
    else:
        return True

def check_double_data(bid,ask):
    buf = []
    fobj = open("Kursdaten/"+source+".csv", "r")
    for line in fobj:
        buf.append[line]
    

def WriteData(wert,Datum,ti,bi,aa,vo):
    if check_data(wert,ti,bi) == True: # and check_double_data() == True: Muss gemacht werden
        if os.path.exists("Kursdaten/"+wert+".csv"):
            fobj = open("Kursdaten/"+wert+".csv","a")
            fobj.write(Datum+";"+ti+";"+bi+";"+aa+";"+vo+"\n")
            fobj.close()
            #print stri[1],";",Datum,";",ti,";",bi,";",aa,";",vo
        else:
            fobj = open("Report/"+"Error"+".csv","a")
            fobj.write(wert+";"+Datum+";"+ti+";"+bi+";"+aa+";"+vo+"\n")
            fobj.close()
            
def format_filename(s):
   """Take a string and return a valid filename constructed from the string.
        Uses a whitelist approach: any characters not present in valid_chars are
        removed. Also spaces are replaced with underscores.
        
        Note: this method may produce invalid filenames such as ``, `.` or `..`
        When I use this method I prepend a date string like '2009_01_15_19_46_32_'
        and append a file extension like '.txt', so I avoid the potential of using
        an invalid filename.
        
        """
   valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)
   filename = ''.join(c for c in s if c in valid_chars)
   filename = filename.replace(' ','_') # I don't like spaces in filenames.
   filename = filename.replace('.','_') # Und ich keine Punkte.
   return filename.lower()


def scrap():
    i = 0
    idx = 0
    while i <> 1:
        Stunde = int(time.strftime("%H"))
        Minute = int(time.strftime("%M"))
        time.sleep(0.01)
        os.system("clear")
        print "Ausserhalb der Handelszeiten!!"
        if Stunde >= StartStunde and Stunde <= EndStunde:
            os.system("clear")
            print "++++++++++++++++++++"
            time.sleep(sleeptime1)
            os.system("clear")
            print "####################"
            #=== URL Lesen ===
            for i in range(0,len(symbollist),1):
                os.system("clear")
                print "++++++++++++++++++++"
                #time.sleep(sleeptime1)
                os.system("clear")
                print "####################"
                time.sleep(sleeptime2)
                htmlfile = urllib.urlopen(symbollist[i])
                htmltext = htmlfile.read()
                #=== HTML Daten Tags ===
                Name    = '<a href="/de/aktie/(.+?)</a>'
                Geld    = 'bidWithCurrencySymbol" decimals="4">(.+?)&nbsp;€</span>'
                Brief   = 'askWithCurrencySymbol" decimals="4">(.+?)&nbsp;€</span>'
                Zeit    = 'midTime" decimals="4">(.+?)</span>'
                Volumen = 'tradeCumulativeTurnoverWithCurrencySymbol" decimals="4">(.+?)&nbsp;€</span>'
                #=== Daten Suchen ===
                patternname = re.compile(Name)
                patternbid  = re.compile(Geld)
                patternask  = re.compile(Brief)
                patterntime = re.compile(Zeit)
                patternvol  = re.compile(Volumen)
                #=== Daten Extrahieren  ===
                Bezeichnung = re.findall(patternname,htmltext)
                BID         = re.findall(patternbid,htmltext)
                ASK         = re.findall(patternask,htmltext)
                TIME        = re.findall(patterntime,htmltext)
                VOL         = re.findall(patternvol,htmltext)
                Datum = str(time.strftime("%d.%m.%Y"))
                for i in range(0,len(Bezeichnung),1):
                    na = Bezeichnung[i]
                    print na
                    bi = BID[i]
                    aa = ASK[i]
                    ti = TIME[i]
                    vo = VOL[i]
                    stri = na.split(">")
                    wert = stri[1]
                    korrekterfilename = format_filename(wert)
                    if idx == 0:
                        fobj = open("Kursdaten/"+korrekterfilename+".csv","a")
                        fobj.write(Datum+";"+ti+";"+bi+";"+aa+";"+vo+"\n")
                        fobj.close()
                        #print stri[1],";",Datum,";",ti,";",bi,";",aa,";",vo
                    elif idx == 1:
                        WriteData(korrekterfilename,Datum,ti,bi,aa,vo)
                    #wert = ""
            idx = 1 # schaltet nach dem ersten schreiben checkdata frei

                    
            

scrap()


Hab den Code vor vielen Jahren geschrieben, müsst mal überarbeitet werden, aber läuft noch.

danke für diese Info, ich werd dieses script mal ausprobieren - wird aber ein paar Tage dauern - Tup
zum Markieren von Zellen oder Bereichen oder...gibt diese webseite eine anwendbare Farbdarstellung/codes für excel vba...eben nochmals probiert...läuft.. :-)

http://dmcritchie.mvps.org/excel/colors.htm
(14.02.2019, 10:40)Noni-Binder schrieb: [ -> ]zum Markieren von Zellen oder Bereichen oder...gibt diese webseite eine anwendbare Farbdarstellung/codes für excel vba...eben nochmals probiert...läuft.. :-)

  http://dmcritchie.mvps.org/excel/colors.htm

Kann man das nicht auch einfach mit der "bedingten Formatierung" lösen oder wofür nutzt du die Farbdarstellung ?
Seiten: 1 2 3 4 5 6 7