22.01.2020, 12:53
(22.01.2020, 11:44)cubanpete schrieb: [ -> ]Ich verstehe das nicht.Ob die abgebildete Equity Kurve so passt, kann ich dir im Detail nicht verraten.
Auf der algo-investor Seite gibt es eine Graphik in der unten 6 Strategien betitelt sind. Die Monatsultimo Strategie hat tatsächlich die schlechteste Performance. Dann kommt eine Graphic die betitelt ist mit "Gesamtperformance" und die deutlich, ein vielfaches, höher ist als jede der einzelnen Strategien. Was soll das heissen? Dass man mit einer Kombination von durchschnittlich performenden Strategien eine extrem gute Performance erreichen kann? Irgendwie begreife ich das nicht, kannst Du das mit einfachen Worten erklären?
Was aber passt ist eben der Fakt, das Diversifikation in Strategien die Rendite erhöhen kann!!! Da schreibe ich mir im Forum im diversen Diversifikations-Threads die Finger Wund.
In einfachen Worten:
=> durch Diversifikation sinkt das Risiko (Standardabweichung -> sigma)!
=> durch das Sinken von sigma, steigt der Geometrische Durchschnitt
Erwartungswert Geometrisch = Erwartungswert - sigma*sigma/2
AKA volatility drag oder volatility tax
Kurz zusammengezimmert (mögen kleine Fehler drin sein):
Nehmen wir an wir haben 4 Strategien, alle erzuegen zufällige Returns. Ale haben einen positiven Erwartungswert (10%) und eine Standardabweichung von 0.3
Das Portfolio ist einfach ein gleichgewichteter Mix der Strategien
Lass uns 200 Zeitschritte gehen....und dies in 2000 Universen durchführen...und dann über diese Universen einen Durchschnitt bilden (Ensemble mean)
Im Durchschnitt (über 2000 Universen gemittelt) sehen die Equity Kurven so aus:
Code
Code:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
n_steps = 200
m_universes = 2000
start = 100
np.random.seed(100)
strategy1 = np.random.normal(0.1,0.3, (n_steps,m_universes))
strategy2 = np.random.normal(0.1,0.3, ((n_steps,m_universes)))
strategy3 = np.random.normal(0.1,0.3, ((n_steps,m_universes)))
strategy4 = np.random.normal(0.1,0.3, ((n_steps,m_universes)))
portfolio = 0.25 * strategy1 + 0.25 * strategy2 + 0.25 * strategy3 + 0.25 * strategy4
df = pd.DataFrame(start* np.average(np.cumprod(1 + portfolio,axis = 0),axis=1),columns =["portfolio"])
df["startegy1"] = start * np.average(np.cumprod(1 + strategy1,axis = 0),axis=1)
df["startegy2"] = start * np.average(np.cumprod(1 + strategy2,axis = 0),axis=1)
df["startegy3"] = start * np.average(np.cumprod(1 + strategy3,axis = 0),axis=1)
df["startegy4"] = start * np.average(np.cumprod(1 + strategy4,axis = 0),axis=1)
df.plot()
plt.show()