automatische Kursabfrage von Aktien mit Excel

  • Zitat

    Original von witchdream
    hmm, ich oute (offenbare) mich mal als new-speak-idiot (denglish-beginner). In diesem Sinne: Was muss denn ein noob wie ich als parsen understanden?


    Sorry, war Fachchinesisch: http://de.wikipedia.org/wiki/Parser

    »In meinem Alter begreife ich, dass Zeit mein kostbarster Besitz ist.«
    »Freiheit bedeutet, dass man nicht unbedingt alles so machen muss wie andere Menschen.«
    »Eine Aktie zu verkaufen die fällt, ist in etwa so, als ob man ein Haus für 100.000 Dollar kauft und es verkauft, sobald jemand 80.000 Dollar dafür bietet.«
    Buffett

  • Als Tipp: Wer das ganze etwas professioneller und flexibler haben will, sollte sich mit Perl beschäftigen. Die Sprache kommt quasi mit eingebauten Parser in Form von regulären Ausdrücken daher. Man kann sich auch im Programm in Webpages einloggen, die Links auf der Page raussuchen, und durchnavigieren. Es gibt auch Module um direkt Excel Tabellen zu schreiben.


    Damit kann man auch richtige HTML Seiten parsen:



    Der ganzen Kladderadatsch ist open source und entsprechend frei verfügbar.


    www.activestate.com
    www.cpan.org
    www.eclipse.org

    „Das große Karthago führte drei Kriege. Nach dem ersten war es noch mächtig. Nach dem zweiten war es noch bewohnbar. Nach dem dritten war es nicht mehr aufzufinden.“

    2 Mal editiert, zuletzt von nixda ()

  • Zitat

    Original von nixda
    Als Tipp: Wer das ganze etwas professioneller und flexibler haben will, ...


    Weitere Möglichkeit:


    Excel ist so nett und macht aus einer HTML-Seite eine Tabelle!
    Dann such man sich einen markanten Begriff (weil ja nicht garantiert ist das diese Tabelle jedes mal genauso aufgebaut ist) und schlängelt sich ab da an wie durch eine Tabelle!


    Code
    1. Workbooks.Open Filename:= "Http:\\..."
    2. Set pos = ActiveSheet.Cells.Find("Stammdaten")
    3. value = pos.Offset(4, 1) 'akt. Kurs
    4. value = Replace(value, ",", ".") 'Punkt statt Komma

    »In meinem Alter begreife ich, dass Zeit mein kostbarster Besitz ist.«
    »Freiheit bedeutet, dass man nicht unbedingt alles so machen muss wie andere Menschen.«
    »Eine Aktie zu verkaufen die fällt, ist in etwa so, als ob man ein Haus für 100.000 Dollar kauft und es verkauft, sobald jemand 80.000 Dollar dafür bietet.«
    Buffett

  • Zitat

    Original von nixda
    Als Tipp: ... Perl ...


    Läuft das dann local auf dem Rechner oder auf einem Webserver?

    »In meinem Alter begreife ich, dass Zeit mein kostbarster Besitz ist.«
    »Freiheit bedeutet, dass man nicht unbedingt alles so machen muss wie andere Menschen.«
    »Eine Aktie zu verkaufen die fällt, ist in etwa so, als ob man ein Haus für 100.000 Dollar kauft und es verkauft, sobald jemand 80.000 Dollar dafür bietet.«
    Buffett

  • dev : Kann man machen wie mal will. Perl wurde und wird auch verwendet um HTML-Code zu erzeugen. Dann ruft der Webserver ein Perlprogramm auf und reicht die Ausgabe des Programms einfach an den Aufrufer durch.


    Wenn Du Perl lokal installierst, z.B. Active State für Windows, kannst du Perlprogramme aus der Dos-Box starten "Perl programm.pl".


    Perl ist im Normalfall eine Interpretersprache, d.h. auf dem System, auf dem die Programme laufen, muss ein Perl installiert sein. Kann aber auch sein, das irgendwo Compiler existieren.


    Es gibt zahlreiche Module ("Packages") mit irgendwelchen Funktionen zum dazuinstallieren, zB Parser für HTML, XML o.ä. Datenbankinterfaces, Excel-Output etc: www.cpan.org


    Ich selber arbeite mit ActivesState Perl für Windoof und Eclipse als Entwicklungsumgebung. Für Eclipse gibt es ein Perl Modul, das man zusätzlich installieren muss. Links siehe oben. Die Programme laufen dann aber auch unter Linux. AcitveState hat ein Paketmanager "ppm", mit dem man die Module sher einfach auswählen und installieren kann.


    Perl ist ein wenig eine Hacker Sprache, die jede Menge Shortcuts und Tricks erlaubt. Deshalb sehr flexibel aber manchmal auch ein wenig kompliziert.


    http://www.activestate.com/products/activeperl/

    „Das große Karthago führte drei Kriege. Nach dem ersten war es noch mächtig. Nach dem zweiten war es noch bewohnbar. Nach dem dritten war es nicht mehr aufzufinden.“

  • Zitat

    Original von nixda
    ...
    Perl ist ein wenig eine Hacker Sprache,
    ...


    Hmm, dann ist Perl seit einiger Zeit in de verboten ;-).


    Es ist einfach eine Sript-Sprache, mit der man diverse Sachen automatisieren kann!

    »In meinem Alter begreife ich, dass Zeit mein kostbarster Besitz ist.«
    »Freiheit bedeutet, dass man nicht unbedingt alles so machen muss wie andere Menschen.«
    »Eine Aktie zu verkaufen die fällt, ist in etwa so, als ob man ein Haus für 100.000 Dollar kauft und es verkauft, sobald jemand 80.000 Dollar dafür bietet.«
    Buffett

  • hi nixda,


    ich liebe perl ebenfalls :-) Baue sicher seit '95 Parser damit. Perl hat sehr viele Befehle, die sich sehr gut zum Durchsuchen eines Textes und zum Rauspicken der Informationen eignen.


    In letzter Zeit mache ich das aber verstärkt mit Excel oder Access und vba, da es meist auch auf irgendwelchen Firmenrechnern laufen soll. Da muß man sich dann eben mit langen Formeln mit den Befehlen 'instr', 'mid', 'left','instrrev' rumhauen... :-)


    Dong

    2 Mal editiert, zuletzt von Donglengcha ()

  • Update, (falls das noch jemand interessiert):


    Für Anwender mit Dezimalpunkt (! in den Ländereinstellungen des Betriebssystems festgelegt) bietet sich die folgende Vereinfachung bzw. das folgende Update an:


    http://finance.yahoo.com/d/quo….F&f=sl1d1t1c1ohgv&e=.csv


    also
    - "finance statt "oldfinance",
    - "de" weglassen
    - und unbedingt "Symbol" und nicht WKN oder ISIN als Wertpapierkennung nehmen, hier "srm.F" für seabridge in Frankfurt (das hatten wir aber schon weiter oben, wer gut aufgepasst hat). Bei Zertifikaten aber nach wie vor die WKN nehmen, hier funktioniert das nicht mit dem Symbol, also z.B. 330670.SG für das SET -Zertifikat in Stuggar


    Und das vorher extrem langwierige Zerstückeln des Ergebnisstrings


    vereinfacht sich zu


    =+TEIL(TEIL(AB4;FINDEN(",";AB4)+1;10);1;FINDEN(",";TEIL(AB4;FINDEN(",";AB4)+1;10))-1)


    mit AB4 als Adresse der Zelle, in der die Abfrage steht.


    Alles klar? Weitere Infos siehe Eingangsposting.


    Wer mir jetzt noch eine saubere(!) Abtrennung bzw. Umwandlung von Datum und Kurszeit liefert, hat was gut!


    =TEIL(AB4;FINDEN("/";AB4)-2;10)
    liefert nämlich
    "7/6/2007"
    , was nicht so schön ist


    und
    =TEIL(AB4;FINDEN(":";AB4)-2;5)
    liefert
    "6:17
    , was gar nicht elegant aussieht und außerdem Amizeit zu sein scheint!


    Endlich wieder Geldzählen auf Knopfdruck. Ich bin reich.

    "SpontanVERkäufe ohne gründliche Analyse sind die Hauptursache teurer Fehlentscheidungen" (HF, 15.3.2007, modif.)

  • Mach mal 10 Updates hintereinander, dann wirst du geblockt!


    ISIN: http://de.finance.yahoo.com/d/…hgv&e=.csv&s=DE0007231326

    »In meinem Alter begreife ich, dass Zeit mein kostbarster Besitz ist.«
    »Freiheit bedeutet, dass man nicht unbedingt alles so machen muss wie andere Menschen.«
    »Eine Aktie zu verkaufen die fällt, ist in etwa so, als ob man ein Haus für 100.000 Dollar kauft und es verkauft, sobald jemand 80.000 Dollar dafür bietet.«
    Buffett

    Einmal editiert, zuletzt von dev ()

  • Wieder mal eine Umstellung:


    http://de.old.finance.yahoo.co…f=sl1d1t1c1ohgv&e=.csv&s=" + isin + ".DE," + isin + ".F"

    »In meinem Alter begreife ich, dass Zeit mein kostbarster Besitz ist.«
    »Freiheit bedeutet, dass man nicht unbedingt alles so machen muss wie andere Menschen.«
    »Eine Aktie zu verkaufen die fällt, ist in etwa so, als ob man ein Haus für 100.000 Dollar kauft und es verkauft, sobald jemand 80.000 Dollar dafür bietet.«
    Buffett

  • Zitat

    Original von Donglengcha
    Ich fürchte, die Ticket-Schreiberei führt genau zum Gegenteil: Yahoo wird seine Formate häufiger verändern, um das direkte Abrufen zu erschweren. Deren Geschäftsmodell basiert schließlich auf Werbung. Und die wird nur wahrgenommen, solange sich der Benutzer seine Infos über die Webseite beschafft.


    Nicht umsonst ist der Abruf über Skripte in den AGB untersagt. Excel ist in diesem Sinne eigentlich nichts anderes als ein Skript.


    Wurde das inzwischen geändert? Ich habe mal sämtliche Seiten im "Yahoo! Terms Center" (http://info.yahoo.com/legal/us/yahoo/) heruntergeladen und nach " script" durchsucht.


    In einigen wird das automatisierte Erstellen von "multiple API Keys" untersagt, worum es hier aber auch nicht geht.


    Die "Advertiser Terms" ganz unten auf der Webseite untersagen in der Tat den Einsatz von jeglichen "automated means", also auch Skripten. Ich vermute aber, diese Bestimmungen betreffen nur die Werbekunden von Yahoo? Oder habe ich da etwas falsch verstanden/übersehen?