Jump to content
yomandor

Portfoliomanagement mit Excel

Recommended Posts

yomandor
Posted

Hi Leute,

 

ich habe vor mir mit Excel eine eigene Portfoliomanagement Software zu basteln.

Meine Excelkenntnisse lassen mich aber bei folgenden Punkt im Stich:

 

ich möchte 1.) historische Kurse einlesen und 2.) täglich aktualisieren.

 

Bisher habe ich zwar beides für sich alleine hinbekommen (historische kurse über yahoo und den aktuellen Kurs über das xlquotes add-in), jedoch noch nicht kombiniert. Sprich, es soll eine Art Datenbank aufgebaut werden in der täglich der aktuelle Kurs zu den bestehenden historischen Kursen hinzugefügt wird.

 

Ich habe dann vor damit aktuelle Korrelationen zu berechnen und mein Portfolio als Gesamtchart darzustellen.

 

Irgendwelche Vorschläge? Oder wäre dafür MS Access evtl besser geeignet (davon habe ich aber noch weniger Ahnung)? Ich weiß, dass xlquotes historische kurse anzeigen kann, aber immer nur für einen Tag und nicht für einen längeren Zeitraum.

 

Vielen Dank für eure Antworten

Share this post


Link to post
sebi
Posted · Edited by sebi

/edit: mist, erstmal zuende lesen...

Share this post


Link to post
benny_m
Posted

Ob automatisch geht weiß ich nicht. Manuell geht es auf jeden Fall. Musst halt mit excel mal ein bißchen rumspielen und basteln. Im Wesentlichen musst du ja deine historische Kursabfrage immer nur einen Tag weiter

kopieren.

Share this post


Link to post
Dork
Posted
Ich weiß, dass xlquotes historische kurse anzeigen kann, aber immer nur für einen Tag und nicht für einen längeren Zeitraum.

 

Hilft Dir evtl. dieses hier: :unsure:

 

 

hist._kurse.xls

 

 

Man muss nur den gewünschten Zeitraum verlängern und danach mit der Kursabfrage das Gleiche machen...

Share this post


Link to post
yomandor
Posted

Danke für den Tipp. Das hatte ich auch schon ausprobiert und es funktioniert bei kurzen Zeiträumen auch ganz gut. Allerdings schwebt mir ein Bereich von mehreren Jahren vor für die historischen Kurse (um aussagekräftige Korrelationen zu bekommen) und da stößt die Methode an ihre Grenzen. Zumindest auf meinem Rechner hat sich Excel fast aufgehängt, als ein paar tausend Zeilen aktualisiert wurden :w00t:

Share this post


Link to post
benny_m
Posted

Du musst das automatische aktualisieren rausmachen und immer nur die Zeilen, welche du verändert hast, manuell berechnen lassen. Sonst zieht xlquotes sich die Daten immer wieder frisch runter.

Share this post


Link to post
thetanut
Posted

Hallo yomandor,

 

ich beschäftige mich zurzeit auch mit Daten in Excel, allerdings geht es bei mir eher um fundamentale Daten und meine Trades. Ich denke, man braucht eine Datenbank, wenn man viele Daten nicht nur sammeln, sondern auch vernünftig auswerten will. Ein weiterer Vorteil ist, dass die Daten in einer Datenbank praktisch von jeder Software genutzt werden können.

 

Leider fallen mir die ersten Schritte zur eigenen Datenbank mit Excelanschluss noch schwer, aber soweit ich es bisher herausgefunden habe, sollte es eine SQL-Datenbank sein.

 

Schau mal mysql und postgresql an:

http://dev.mysql.com/doc/refman/5.1/de/index.html

 

http://www.postgresql.org/

 

beide sind Freeware und sollen sehr leistungsstark sein.

 

Microsoft bietet seinen Server auch als kostenlose Express Version, leider fehlen darin einige nützliche Eigenschaften, z.B. Funktionen zum leichteren Datenaustausch, die die anderen scheinbar kostenlos mitbringen.

 

Bei http://www.bunselmeier.de/pctipps/connect/mysql.htm steht eine Anleitung zur ersten mysql – Datenbank. Ich möchte allerdings über VBA auf die Datenbank zugreifen (lesen und schreiben), wofür ich noch kein vernünftiges Einsteiger-Tutorial gefunden habe. Vielleicht hat ja ein Leser einen Link?

Share this post


Link to post
m_g
Posted

Gutgemeinter Rat, aber ich denke MySQL und PostgreSQL werden technisch zu anspruchsvoll und überdimensioniert für den Threadopener sein. :)

Share this post


Link to post
sebi
Posted

Denke mit Access oder dem OpenOffice pendant fährt man im home Bereich besser ;)

Share this post


Link to post
Morbo
Posted

OpenOffice + MySQL ist ne saubere Sache.

 

PostGreSQL ist schon ne Nummer groesser und erfordert "richtige" SQL Kenntnisse (und wer die hat, spart sich den OpenOffice Teil...). Wer automatisiert Daten runterladen will: Finance::Quote muss man aber perl koennen tun...

Share this post


Link to post
yomandor
Posted

So Leute, erstmal vielen Dank für eure Antworten - ist echt ein super Forum.

 

Die eleganteste Lösung scheint mir tatsächlich der Weg über eine Datenbank, statt Kurse direkt in Excel zu verwalten. Mein Ziel ist es neben der Depotverwaltung eh irgendwann mit den Daten Effizienzlinien zu berechnen und dafür ist Excel wohl sowieso nicht das beste Programm.

 

Da ich mich bisher leider gar nicht mit Datenbanken auskenne (es aber gerne lernen möchte) stellt sich die Frage was besser bzw. einfacher ist: MySQL oder MS Access?

 

Hat jemand Erfahrungen damit gemacht? Ist es bei beiden DBs möglich historische Kurse automatisiert zu laden?

Share this post


Link to post
Grumel
Posted · Edited by Grumel

Acess ist 1000 mal einfacher. Alleine die Installation von Mysql und Bedienoberfläch wird dich Tage beschäftigen.

 

Es grüßt der Computer dau, der den Versuch eine Datenbank basierende Website zu machen sehr schnell aufgeben.

Share this post


Link to post
sebi
Posted

Das laden von historischen Kursen hat zuerst einmal nichts mit der Datenbank zu tun. Die speichert lediglich deine Dinge ab.

Share this post


Link to post
Morbo
Posted

richtig. Die Datenbank speichert und hilft beim suchen. Um zu kriegen was Du willst, braucht es aber drei (logische) Komponenten:

 

- die Datenbank

- Code der Kurse $irgendwo findet und reinschreibt

- Code der Kurse rausliest und darstellt (als Chart, Depotwert ausrechnet, etc...)

 

mal ein paar Zahlen: ich habe Kursdaten von etwa 3 Jahren. Das sind etwa ~160 Aktien, davon werden im Schnitt etwa 100 aktiv (dh. zur selben Zeit) abgefragt. Meinstens sind es EOD Daten, bei einigen auch Intraday Kurse. Niemals mehr als 1 Kurs pro Stunde.

 

Alles zusammen sinds ~150.000 records. Das heisst Excel und OpenOffice Spread Sheet sind schon mal raus. Zu Access kann ich nichts sagen. Glaube aber kaum, dass es fuer groessere Datenmengen geeignet ist.

 

Fuer eine SQL Datenbank ist sowas kein Problem. Auch wenn es mal 10 Millionen records werden gibts genuegend Moeglichkeiten die Abfragen performant zu gestalten (indizes, views, ...).

 

Genau hier liegt das eigentliche Problem: Du musst die Kurse mit den Aktien (und. evtl. anderen Daten, zb Positionen) in Verbindung bringen. Man nennt das "JOIN". Bei 150000 Kursen und 100 Aktien bedeuted das fuer die Datenbank im schlimmsten Fall: 150.000 * 100 = 15 Millionen (!) records die durchforstet werden muessen um zu finden was Du sehen willst... man kann also sehr schnell auch den neuesten 5 GHz PC ordentlich beschaeftigen. :-)

Share this post


Link to post
sebi
Posted

Ich hoffe, du hast gelesen dass er sein Portfolio "überwachen" will und nich das einer Bank.

Mal angenommen er hat ein Kapital von 1.000.000 und setzt für jede Aktie 10.000 ein sind das 100 Aktien die er halten kann. Also kommen pro Jahr (sehr großzügig) 26.000 EOD Einträge zusammen. Also annähernd nichts.

 

Also ist die Frage eher, mit was kann man einfach umgehen und da gehör ein SQL Server eher nicht dazu.

Falls es doch mal mehr wird kann man von allem noch auf etwas größeres umsteigen aber gleich zu beginn ins kalte Wasser springen vergeht schnell der Spass.

 

Aber wie immer gilt probieren geht über studieren also einfach mal testen. Trial- / Test- / Vollversionen gibt es

hier

hier

hier

---

hier

hier

und hier

 

Auslesen und darstellen gibt es viele Möglichkeiten. Von Selbst Programmieren bis Excel/OO-Calc Anbindung alles dabei ;)

 

Für den Datenimport ist etwas Handarbeit gefragt und dürfte egal bei welcher Datenbank (wobei ich nicht alle verlinkten genau kenne) gleich sein. Möglicherweise liese sich das sogar mit XLQUOTES in Verbindung mit Excel Datenbankanbindung machen.

Share this post


Link to post
Grumel
Posted

Das ist auch noch ein wichtiger Punkt bei mysql, die etwas bedienbareren Programme kosten viel Geld - open Office keinen Cent.

Share this post


Link to post
Morbo
Posted
Ich hoffe, du hast gelesen dass er sein Portfolio "überwachen" will und nich das einer Bank.

 

man muss ja nicht gleich alles halten. Von meinen 160 "Aktienrecords" halte ich vielleicht 2 oder 3 gleichzeitig. Der Rest ist unter Beobachtung. Fuer das Beobachten geht ja die meiste Zeit drauf und nicht fuers ausrechnen wieviel ne Position wert ist. Daher sollte man moeglichst ein Werkzeug verwenden. Regelmaessig durch 10 werbeverseuchte Finanzseiten klicken nervt maechtig... IMHO zumal man sich irgendwo auch Notizen machen will.

 

Mit "Aktie" meine ich im - hier technischen Zusammenhang - auch Index, Fonds, Optionen, Zertifikate, ... usw... also alles wofuer man einen Kurs abfragen kann. Es sammeln sich halt schnell mehr Daten als man so denkt. :)

 

Also ist die Frage eher, mit was kann man einfach umgehen und da gehör ein SQL Server eher nicht dazu.

Falls es doch mal mehr wird kann man von allem noch auf etwas größeres umsteigen aber gleich zu beginn ins kalte Wasser springen vergeht schnell der Spass.

 

stimmt, SQL ist nicht einfach.

 

aber bevor man selber bastelt kann man auch probieren, was andere programmiert haben. zb AST oder StockManiac... aber einfach zu installieren sind die beide nicht. :unsure: da soll er lieber diese Excel Tabelle nutzen, die hier irgendwann mal gepostet wurde.

Share this post


Link to post
yomandor
Posted

Also, 160 Aktien für 1.000.000 EUR habe ich leider nicht im Depot ;-)

Tatsächlich geht es mir aber nicht nicht nur darum meine Depotwerte darzustellen, sondern auch mehrere mögliche Investments zu beobachten. Daher sollten es schon gerne 30-40 Aktien bzw. Positionen sein, deren Tagesschlusskurs ich in die Datenbank bekomme.

 

Wenn ich es richtig verstehe speichert eine Datenbank a la MySQL oder Access nur die Daten und ich bräuchte ein weiteres Programm (evtl. Matlab oder Excel) um meine gewünschten Berechnungen anzustellen. Richtig?

Die gewünschten Berechnungen wären wie gesagt durchschnittliche Renditen, Standardabweichungen, Korrelationen, Chartdarstellung und evtl. eine Regressionsanalyse + Effizienzlinie.

 

@ Morbo: was genau meinst du mit "Du musst die Kurse mit den Aktien (und. evtl. anderen Daten, zb Positionen) in Verbindung bringen. Man nennt das "JOIN""?

 

Damit meinst du nicht die Kovarianzen, oder? Für deren Berechnung müssten die Kurse zwar in Verbindung gebracht werden, aber das hätte ja eher etwas mit Rechnung und nicht mit der DB zu tun.

Share this post


Link to post
sebi
Posted

Hallo,

die 160 Aktien waren auch mehr ne Theoretische Zahl ;)

 

Mysql speichert in der Tat nur Daten. Access ist ein frontend mit dabei. Könnte je nachdem was du möchtest ausreichen.

 

Excel / OO-Calc kann man aber soweit ich weiß an die Datenbanken anbinden, um kompliziertere Berechnungen durchzuführen. Anschließend kannst du die Daten wieder in der Datenbank speichern.

 

Das mit dem Join ist eine Sache der SQL Sprache. hier siehst du nen paar Beispiele.

Share this post


Link to post
Morbo
Posted
Wenn ich es richtig verstehe speichert eine Datenbank a la MySQL oder Access nur die Daten und ich bräuchte ein weiteres Programm (evtl. Matlab oder Excel) um meine gewünschten Berechnungen anzustellen. Richtig?

nicht ganz: die Datenbank speichert nicht nur, sie liefert die Daten auch in der Form die Du im Programm haben willst. Sie kann also auch rechnen und filtern und "joinen" (siehe unten). Im Idealfall macht sie das so gut, dass [d]ein Programm entweder gar nichts oder nur die wirklich komplizierten Dinge selber rechnen muss. Fuer die Darstellung der Ergebnisse brauchst Du auf jeden Fall irgendwas.

 

@ Morbo: was genau meinst du mit "Du musst die Kurse mit den Aktien (und. evtl. anderen Daten, zb Positionen) in Verbindung bringen. Man nennt das "JOIN""?

 

Du wirst vermutlich eine Tabelle fuer die Kursdaten machen. Eine zweite Tabelle speichert Details zu den Aktien und in einer Dritten steht welche Positionen Du besizt.... usw... usf... (wohin das ausarten kann, sieht man hier)

 

Angenommen Du willst jetzt eine Liste mit Aktienname, Positionsgroesse und Tageskurs. Dann musst Du eine Abfrage schreiben, die sich ueber alle drei Tabellen erstreckt. Im Hintergrund wuerde die Datenbank die drei Tabellen aneinander ketten und in dieser virtuellen Riesentabelle nach den Saetzen suchen die Du haben willst... das ist ein JOIN.

 

(okok, man koennte auch subqueries benutzen, waehre evtl. sogar schneller)

 

Am Ende ists ne Gradwanderung was man im Query berechnet und was man im Programm berechnet. Wenn es um viele Daten geht, ist ein ordentlicher Query schneller und sicherer aber man kriegt nicht immer was man will...

 

 

PS: hat der DAX Migraene?

Share this post


Link to post
€-man
Posted

Servus an alle Experten,

 

ich hantiere gerade mit dem Programm "xlquotes" rum und bekomme immer dieses lästige Fenster "Financiero", wenn ich Excel öffne und schließe.

Gibt es eine Möglichkeit, dieses dauerhaft zu beseitigen?

 

Gruß

-man

Share this post


Link to post
benny_m
Posted

Das kannst du nicht verhindern. Höchstens du deaktivierst das add-inn und aktivierst es wenn du mit xlquotes arbeitest.

Share this post


Link to post
€-man
Posted
Das kannst du nicht verhindern. Höchstens du deaktivierst das add-inn und aktivierst es wenn du mit xlquotes arbeitest.

 

Danke Dir, benny_m.

 

Ist zwar schade, aber man muss sich halt dran gewöhnen.

 

Gruß

-man

Share this post


Link to post
benny_m
Posted · Edited by benny_m

Die Software hat ja früher Geld gekostet. Nur durch die Werbung gibt es sie für umsonst :). Man könnte sicherlich im Basic was machen. Dort braucht man aber ein Kennwort.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...