Stock-Screener

  • Abgesehen davon, dass bei wisi.com der Bereich "Research Report" (mit den Daten zur Verschuldung) noch klemmt, bin ich mit meinen 180 Aktien fertig. Von mir aus können wir (via Norbert) die erste Gesamttabelle mit den CDAX-Aktien zusammenbasteln, auch wenn noch nicht alle mit ihrem Teil fertig sind. Wie sieht's bei euch aus?

  • Hallo!


    Ich habe gerade Ralfs Makro getestet und es läuft super. Irgendwie gibt es auch keine Seitenbeschränkung mehr für die Company Profile Seite :)


    Ich habe es etwas erweitert, so dass jetzt alle wichtigen Daten aus der ProfilSeite herausgezogen werden


    Sub wisi()
    Dim wks As Worksheet
    Dim sQuery As String
    Dim zeile, startzeile, cus_spalte As Integer


    'On Error GoTo errorhandler
    Application.ScreenUpdating = False


    'Vorbelegungen
    Set wks = ActiveWorkbook.Sheets("Datenbank")
    startzeile = 35 'Erste Datenzeile in der Datenbank
    cus_spalte = 3 'Spalte mit der CUSIP, über die bei WISI gesucht wird
    hi_spalte = 4 'Spalte mit Hauptindustrie in der Datenbank
    si_spalte = 5 'Spalte mit Subindustrie in der Datenbank
    aa_spalte = 6 'Spalte mit Aktienanzahl in der Datenbank
    um_spalte = 7 'Spalte mit Umsatz in der Datenbank
    div_spalte = 8
    kgv_spalte = 9
    kuv_spalte = 10
    kbv_spalte = 11
    kurs_spalte = 12
    shares_spalte = 13
    name_spalte = 1


    'Schleife über alle Wertpapiere in der Datenbank
    zeile = startzeile
    Do While wks.Cells(zeile, 3).Value <> ""
    If wks.Cells(zeile, cus_spalte).Value <> "" Then
    'Query definieren
    sQuery = "http://corporateinformation.com/corpinfo.asp?CUSIP=" & wks.Cells(zeile, cus_spalte).Value
    'Neues Tabellenblatt einfügen
    Worksheets.Add After:=Worksheets(Worksheets.Count)
    'Wisi-Seite in das Tabellenblatt kopieren
    With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;" & sQuery, _
    Destination:=Range("A1"))
    .Refresh BackgroundQuery:=False
    End With
    'Hauptindustrie auslesen
    wks.Cells(zeile, hi_spalte).Value = ActiveSheet.Range("H12").Value
    'Subindustrie auslesen
    wks.Cells(zeile, si_spalte).Value = ActiveSheet.Range("H15").Value
    'Aktienanzahl auslesen
    wks.Cells(zeile, aa_spalte).Value = ActiveSheet.Range("H39").Value
    'Umsatz auslesen
    wks.Cells(zeile, um_spalte).Value = ActiveSheet.Range("H9").Value
    wks.Cells(zeile, div_spalte).Value = ActiveSheet.Range("E30").Value
    wks.Cells(zeile, kgv_spalte).Value = ActiveSheet.Range("D32").Value
    wks.Cells(zeile, kuv_spalte).Value = ActiveSheet.Range("D33").Value
    wks.Cells(zeile, kbv_spalte).Value = ActiveSheet.Range("D34").Value
    wks.Cells(zeile, kurs_spalte).Value = ActiveSheet.Range("B14").Value
    wks.Cells(zeile, name_spalte).Value = ActiveSheet.Range("B4").Value
    wks.Cells(zeile, name_spalte).Value = ActiveSheet.Range("H39").Value
    'Tabellenblatt mit Wisi-Seite löschen
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Application.DisplayAlerts = True
    End If
    zeile = zeile + 1
    Loop


    wks.Activate
    Application.ScreenUpdating = True
    Exit Sub


    errorhandler:
    MsgBox "Es ist ein Fehler aufgetreten: " & Err.Number
    'Application.DisplayAlerts = False
    'Application.DisplayAlerts = True
    wks.Activate
    Application.ScreenUpdating = True


    End Sub

  • Hm, merkwürdig. Bei mir ist nach drei Seiten Schluß, da greift die Beschränkung. Bist Du sicher, daß Du keinen Account angemeldet hast ;)?


    Auf das Problem mit den Zahlen, die als Datum dargestellt werden, war ich auch gestoßen. Habe aber noch keine Lösung dafür. Vielleicht kann man durch Typumwandlung die alten Zahlen wiederherstellen? Merkwürdig ist allerdings, daß bei manchen Firmen die Zahlen richtig dargestellt werden.


    Für das Datensaugen auf den weiteren Seiten gibt es bestimmt auch eine Lösung. Ich hätte da eine Idee, kann aber hitzebedingt (mein PC steht in einem Zimmer im Dachgeschoß) im Moment nichts ausprobieren. Die CPU würde schmilzen wie die Butter im Hochofen ...


    Ich suche immer noch nach einer Liste mit CUSIP-Nummern; ohne die macht alles keinen Sinn. Kennt hier vielleicht einer einen Mitarbeiter im Wertpapierbereich einer Bank, der uns so eine Liste besorgen könnte?


    Viele Grüße
    ralf

  • Hallo Ralf.


    Ich habe es vorhin getestet, die Profilseiten (gilt nicht für z.B. research) kann ich mit meinem Noname-Account unendlich lange testen :-)
    Allerdings ändern die derzeit noch an der Tabellenstruktur, so dass mein Makro nicht mehr 100%ig läuft.


    Für das Datum habe ich eine Idee:


    Könnte man nicht nach


    Worksheets.Add After:=Worksheets(Worksheets.Count)


    einen Befehl einsetzen, der die Standard-Formateinstellungen für alle Zellen auf Zahlen setzt? Ich denke die Standard "Standard"-Einstellung ist das Problem.

  • Hallo,


    und hier die Lösung für die nicht gewollte Umwandlung der Zahlen in Datumswerte beim Import der Wisi-Seiten. Man muß die Query um den Zusatz ".WebDisableDateRecognition = True" erweitern.


    Mein Quellcode sieht nun wie folgt aus, wobei ich beispielhaft die Dividende (welche bisher nur als Datumswert verfügbar war) in die achte Spalte meiner Datenbank lade.


    Auf diese Art können nun wahrscheinlich alle Werte, die auf der Seite Company Profile von wisi stehen, reingeladen werden. Dank an Maximus für sein hartnäckiges Nachfragen :).


    Ich kann jetzt übrigens auch endlos die Company Seiten abfragen. Wahrscheinlich hat wisi nach der kürzlichen Umstellung seiner Seiten vergessen, "die Tür wieder abzuschliessen". Mir soll's recht sein ...


    Viele Grüße
    ralf

  • schaut mal was ich hier habe: alle CUSIPs für Deutschland ;D


    Das sind alle in WISI verfügbaren Unternehmen (933 Stück) ;D


    Außerdem kann man die CUSIPs für alle anderen Länder ebensoleicht beschaffen. Wenn wir jetzt noch das Skript auf die Research / ... Seiten erweitern, braucht keiner mehr von Hand zu tippen!

  • Maximus ,


    ich glaub das nicht, Du bist der Größte, wo hast Du denn die Dinger her?


    Ähh, noch ein kleiner nachgeschobener Wunsch. Gäbe es die auch mit zusätzlicher Angabe der WKN, damit man eine automatische Zuordnung (Funktion SVERWEIS) machen könnte? Die Zuordnung über den Namen könnte auf Grund leichter Abweichungen beim Abschreiben zum Problem werden.


    witchdream


    Du hattest angemerkt, daß die Angaben bei verschiedenen Unternehmen aus verschiedenen Jahren stammen können. Wisi schreibt in die Zeile oberhalb des Umsatzes, aus welchem Jahr die Angabe stammt. Mit folgenden Programmzeilen könnte man diese Jahresangabe in den Kommentarbereich der Umsatzzelle eintragen. Wenn man mit der Maus dann darauf zeigt, geht der Kommentar auf und man kann das Jahr lesen. Wäre das eine Lösung?


    'Umsatz auslesen
    wks.Cells(zeile, um_spalte).Value = ActiveSheet.Range("H8").Value
    wks.Cells(zeile, um_spalte).ClearComments
    wks.Cells(zeile, um_spalte).AddComment Left(ActiveSheet.Range("H7").Value, 4)


    Viele Grüße
    ralf

  • schau mal unter http://www.corporateinformation.com/ctryind.asp?ctry_cod=280


    Dort ist eine Auswahlbox für alle deutsche Unternehmen. Und wie vermutet, erfolgt die Verlinkung über dir CUISPs. Du musst nur den Quelltext öffnen und extrahieren. :)


    Die WKNs bekomme ich leider nicht hin, aber vielleicht fällt mir da nochwas ein!


    Könnte man die verknüpfung nicht über die 2002er Sales machen? zusätzlich vielleicht ticker o.a.?


    :-)


    Bei unserer Teamarbeit scheint großes zu entstehen :-)

  • Super!


    @ Maximus: ich bin schon dabei, die CUSIPS den CDAX-Datensätzen von der Dt. Börse zuzuordnen. Die Aktien, die bei wisi zusätzlich zum CDAX enthalten sind, werde ich auch gleich einfügen, und zwar so, dass man auch in Zukunft die beiden Daten-Sets getrennt darstellen kann. Ist eine ziemliche Pfriemelei - kann ein bisschen dauern.


    @ ralf: wir haben zu allen CDAX-Aktien die ISIN, daraus lässt sich über Excel-Formeln einfach die WKN "herausschälen". Kein Problem.


    Zu den Jahresangaben für den Umsatz: das mit dem Kommentar ist eine gute Idee. Noch besser fände ich, einfach eine zusätzliche Spalte in der Excel-Datei einzufügen, die das Umsatz-Jahr enthält. Das kann man dann im Lauf der Jahre erweitern und archivieren, und ausserdem kann man leicht Aktien mit veralteten Angaben wegsortieren. (Das sind in der Regel bankrotte Schrottaktien, die man sowoieso ausblenden will.) Geht das?

  • Ich habe jetzt die CUSIPS in unsere Tabelle aufgenommen - das ging schneller als erwartet. Ausserdem habe ich alle Aktien in die Tabelle aufgenommen, die bei wisi.com in der Datenbank sind, nicht aber im CDAX. Mit anderen Worten: wir haben jetzt eine komplette Rohtabelle für alle deutschen wisi-Aktien.


    Es ist jetzt auch möglich, die CDAX-Aktien mit dem wisi-Datensatz zu vergleichen. Ergebnis:


    - wisi enthält ausser den CDAX-Aktien 283 deutsche Aktien, die nicht im CDAX gelistet sind
    - umgekehrt fehlen beim wisi-Datensatz folgende deutsche Aktien, die im CDAX enthalten sind (Aktienname / ISIN):


    ALBIS LEASING AG O.N. DE0006569403
    ALLGEIER COMPUTER AG DE0005086300
    ALPHAFORM O.N. DE0005487953
    AMATECH AG O.N. DE0005192801
    BABCOCK BORSIG (NEU) O.N. DE0006638349
    BAEURER AG DE0005530703
    BIODATA INF.TECH.AG DE0005422703
    BREMER VULKAN VERBD I.K. DE0005271001
    CEYONIQ AG DE0005420004
    CURASAN AG DE0005494538
    DEPFA DT.PFANDBRIEFB.AG DE0008047002
    ELSA AG O.N. DE0005073605
    ESCOM AG I.A. DE0006007206
    EUROBIKE AG O.N. DE0005706600
    FEEDBACK O.N. DE0005490775
    FUNKWERK O.N. DE0005753149
    HEILER SOFTWARE O.N. DE0005429906
    HEYDE AG O.N. DE0006026701
    INFOGENIE AG KONV. DE0007472060
    INFOMATEC O.N. DE0006222003
    ISION INTERNET O.N. DE0006112006
    M+S ELEKTRONIK AG DE0006617400
    MANAG.DATA MED.SYST. DE0006621303
    MB SOFTWARE AG O.N. DE0006583206
    MEDISANA AG DE0005492540
    MOENUS TEXTILMASCH.O.N. DE0006621006
    NET.IPO AG O.N. DE0005250005
    NEXUS AG O.N. DE0005220909
    OAR CONSULTING AG O.N. DE0006870801
    ORBIS AG O.N. DE0005228779
    PHILIPP HOLZMANN AG O.N. DE0006082001
    PITTLER MA.FABR. AG I.K. DE0006925001
    PIXELNET AG O.N. DE0005279806
    POPNET INTERNET AG O.N. DE0006228109
    RHEINER MODEN AG I.L. DE0007018707
    SAI AUTOMOTIVE AG DE0005009005
    SOFTMATIC AG DE0007271702
    SOLAR-FABRIK AG O.N. DE0006614712
    SPUETZ AG NA O.N. DE0007241440
    SYSKOPLAN AG DE0005501456
    VCH BEST-OF-VC NA O.N. DE0007857575
    VIVANCO GRUPPE AG DE0007602906


    Die meisten dieser Aktien sind bankrotte Firmen, d.h. wisi scheint seine Datensätze besser zu pflegen als die Deutsche Börse den CDAX ....


    @ Investor, Maximus, Value, Ralf: Ihr habt Forenpost.

  • witchdream ,


    nochmal zu den Angaben über den Stand der Daten. Ja, natürlich kann man die Information auch in eine eigene Spalte einfügen.


    Anbei das Makro in der entsprechenden Version. Den Quellcode für das Einstellen in den Kommentar der Zellen habe ich drin gelassen, aber durch das Vorstellen eines ' inaktiv gesetzt. Wenn Du das Makro einsetzt, müßtest Du nur wie gehabt die Spaltennummern Deiner Tabelle in den Vorbelegungen eintragen.


    @alle
    Ich habe folgendes in das angehängte Makro eingebaut: Eine Spalte, in der ich ein x setze, wenn ich möchte, daß die Daten beim nächsten Abgleich modifiziert werden. Es kann ja sein, daß man doch mal aktuellere Daten als wisi hat. Diese würde dann überschrieben. Das Makro prüft daher vor dem Eintragen der wisi-Daten, erstens ob ein x in der angesprochenen Spalte gesetzt ist, zweitens, ob die Zielspalte (also Dividende, Umsatz, etc.) leer ist. Damit kann man also im ersten Schritt den ganzen Datensatz für das Überschreiben freigeben, im zweiten Schritt durch das manuelle Löschen einzelner Feldinhalte das Makro anweisen, nur diese Felder ín einem Datensatz zu überschreiben. Klingt jetzt vielleicht etwas kompliziert, ist vielleicht auch überflüssig, aber ich habe jetzt ein wenig damit gearbeitet und finde es ganz nützlich.


    So langsam kommt bei mir immer häufiger die Frage auf, wie man die verschiedenen Softwareversionen auseinanderhalten kann. Ich stelle hier neue Funktionen ein, die aber vielleicht nicht jeder haben möchte. Im Moment sehe ich nur die Lösung, daß ich den Quellcode so gut wie möglich kommentiere und sich dann jeder sein eigenes Makro aus den einzelnen "Komponenten" bastelt. Wenn jemand eine andere Idee hat, immer her damit.


    Viele Grüße
    ralf

  • Es dauert bei mir noch, Mr Helm scheint viel beschäftigt zu sein und vor dem Urlaub wird es knapp für mich.

    Das Drehbuch für den Untergang steht fest - es geht nur noch um den Preis für die beste Maske (H. v. Buttlar)

  • Hallo,


    ich habe jetzt dank ralf, witchdream und investor alle Profilseiten automatisch gescannt, auch die von value, nicht das wer doppelte Arbeit macht. ;-)
    Norbert hat sie und wird die aktualisierte Version bald online stellen. Für die anderen Seiten bastele ich noch an einer automatischen Lösung.


    :-)