WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Portfolio - Optimierung - Algorithmus

 

psigh
Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2010, 14:12     Titel: Portfolio - Optimierung - Algorithmus
  Antworten mit Zitat      
Hallo Leute,


ich schreibe gerade meine Diplomarbeit und habe einige Probleme mit der
Programmierung. Bin Matlab-Anfänger

Da ich viele Fragen habe aber irgendwie nicht weiß, wie ich Fragen soll, beschreibe ich erstmal kurz, worum es geht.

Ein Teil der Arbeit wird sein, das Herdenverhalten bei Aktieninvestitionsentscheidungen zu Testen.

Zu diesem Zweck habe ich verschiedene Kennzahlen, genauer Oszillatoren, programmiert. Z.B. den Relative Stärke Index, Bollenger-Bänder usw. Vielleicht kommen irgendwann noch welche dazu.

Mein Programm zieht sich von Yahoofinance die täglichen Schlusskurse der Aktien, die ich angebe und für den Zeitraum, den ich angebe. Danach wird eine Tabelle erstellt, in der Angezeigt wird, ob die Indikatoren anschlagen, oder nicht (ich hbeachte die Indikatoren nur, wenn sie GLECIHZEITIG anschlagen).

Hier mal ein Beispiel mit der Aktienwerten. 1 steht für Kaufssignal, 2 steht für Verkaufssignal.


0 0 0
0 0 0
1 0 0
0 0 2
0 0 0
0 0 1
2 1 0
0 0 0

In Zeile drei sieht man, das es für Aktie eins ein Kaufsignal gibt.
In Zeile vier gibt es ein Verkaufssignal für Aktie drei.

usw...


Das habe ich soweit Programmiert.

Mein Problem ist jetzt, dass ich das Portfolio bei jedem Ereignis (Kauf oder Verkauf) neu optimieren muss. Das mache ich mit der Markovitz optimierung. Haben wahrscheinlich schon viele von Euch mal gehört.

Ich möchte das so machen (ich beziehe das jetzt mal auf das Beispiel):


In Zeile drei wird Kauf von Aktie eins Angezeigt

-> Berechnung der Kovarianz MAtix der Aktie (der letzten 40 tage z.B.). In diesem Fall ist das gleich der Varianz, denn es ist ja bislang nur eine Aktie vorhanden

-> Monte Carlo Simulation (hab ich schon Programmiert) des Verlaufs der Aktie für die nächsten drei Monate, damit ich einen Wert für die erwartete Rendite bekomme (Ob das eine gute lösung oder nicht, sei mal dahin gestellt)

-> Jetzt habe ich alle Werte, die ich brauche und kann die Optimierung durchführen. Da das Portfolio aber noch leer ist und es nur um eine Aktie geht, wird eh 100% rauskommen.




In Zeile vier wird verkauf von Aktie drei Angezeigt.
-> Aktie drei ist bislang noch nicht gekauft worden. Deshalb passiert nichts. Ich beachte keine Leerverkäufe.



In Zeile sechs wird Kauf von Aktie drei Angezeigt.

-> Berechnung der Kovarianzmatrix der Aktien eins und drei (der letzten 40 Tage)

-> Monate Carlo Simulation des verlaufs der Aktien eins und drei für die nächsten drei Monate.

-> Optimierung des Portfolios mit diesen beiden Werten.



In Zeile sieben wird Kauf von Aktie zwei und Verkauf von Aktie eins angezeigt.


->Berechnung der Kovarianzmatrix der Aktien zwei und drei (der letzten 40 Tage)

-> Monate Carlo Simulation des verlaufs der Aktien zwei und drei für die nächsten drei Monate.


-> Optimierung des Portfolios mit diesen beiden Werten.


Ich habe auch die Optimierungsfunktion schon sowei geschrieben. Leider muss sie sich aber dauernd verändern. Wnen ich 5 Aktien habe, ist die Funktion viel größer, als wenn es nur 2 sind. Man hat dann auch mehr Nebenbedingungen usw.



Die Ergebnisse der einzelnen Optimierungen müsssten in Arrays gespeichert werden, damit ich hinterher überhaupt noch nachvollziehen kann, was alles passiert ist.




Ich weiß auch mittlerweile nicht mehr, ob das im Prinzip ganz einfach ist oder viel zu kompliziert (-:

Vielleicht hab ja jemand von Euch eine Idee.


Vielen Dank,


Dominik
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.08.2010, 15:20     Titel:
  Antworten mit Zitat      
Hallo,

... und wo genau ist nun die Frage / das Problem?
Ich sehe da in erster Linie das Problem, in den erdachten Algorithmus eine Struktur zu bringen. Dir dabei zu helfen wird schwierig.
Anders sieht es aus, wenn du irgendwo konkrete Probleme hast, aber soweit bist du glaube ich noch nicht?
Denke auch daran, dass in diversen Toolboxen tonnenweise Funktionalität für Optimierung allgemein, aber auch für Portfolios vorhanden ist. Davon solltest du möglichst viel nutzen, um dich nicht zu sehr in Detailaufgaben zu verrennen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2010, 16:40     Titel:
  Antworten mit Zitat      
Ich habe die Finance Toolbox leider nicht.

Das Problem ist, dass ich im Prinzip relativ weit bin und es jetzt, am Ende, echt schwierig wird für mich.

Die Sache ist, dass ich nicht weiß, wie ich richtig fragen soll. Also so, dass mir jemand helfen kann.

Ich habe aber ganz konkret im Kopf, wie die Sache ablaufen soll (-:
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.08.2010, 17:00     Titel:
  Antworten mit Zitat      
Hallo,

wenn in der Financial Toolbox für dich hilfreiche Funktionen drin sind, sollte eine Anschaffung durchaus eine Überlegung wert sein. Gerade für Studenten ist das ja nun nicht sooo teuer.

Fragen, bei denen man helfen kann:
- wieso bekomme ich diesen oder jenen Fehler? (mit Code)
- wie bekomme ich aus A, B die Größe C?
- wie implementiere ich [...]?
- wie kann man einen bestimmten Code effizienter gestalten?

Sprich, möglichst etwas konkretere Fragen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
psigh
Themenstarter

Forum-Century

Forum-Century


Beiträge: 118
Anmeldedatum: 16.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2010, 17:28     Titel:
  Antworten mit Zitat      
Meine erste Frage wäre:


wenn ich so einen Vektor habe [0,1,0,1,2,5,6,7,1,1,0,2]
so einen Vektor [0,1,0,0,2,0,0,0,1,0,0,2]

Zwischen einer 1 und einer 2 soll also alles weg. Egal, was es ist.
Ich habe ja, wie beschrieben eine Matrix mit Auslösesignalen. Manchmal kommen aber z.B. zwei Kaufsignale hintereinander. Das möchte ich gern ändern.


Das würde mir im Moment schon helfen. Man muss das sicher mit find machen, aber ich weiß im Moment nicht wie.



Ich würde am liebsten versuchen, all meine Sachen selbst zu Programmieren. Dann bin ich, wie ich glaube, variabler. Außerdem würde ich dann ne Menge lernen.



Vielen Dank,



Dominik
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.08.2010, 18:04     Titel:
  Antworten mit Zitat      
Hallo,

ich würde es so angehen:
>0: kaufen
=0: halten
<0: verkaufen
Dann kann mit diff(sign(x)) leichter herausgefunden werden, wann ein Strategiewechsel erfolgen soll (und in welche Richtung).

Ansonsten die Empfehlung, vom bisherigen Thema recht unabhängige Fragen in einen neuen Thread zu stellen, da sie dort mehr Aufmerksamkeit bekommen.

Der Vorteil am Nutzen fertiger Funktionen ist, dass man sich auf den Kern des Problems konzentrieren kann und nicht jede Kleinigkeit selbst implementieren muss.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.