forked from finanzascuantitativasfc/codigos_clase_2021-2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path08_portfolios.py
65 lines (49 loc) · 1.9 KB
/
08_portfolios.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# -*- coding: utf-8 -*-
"""
Created on Wed May 12 09:12:38 2021
@author: Meva
"""
# import libraries and functions
import numpy as np
import pandas as pd
import matplotlib as mpl
import scipy
import importlib
import matplotlib.pyplot as plt
from scipy.stats import skew, kurtosis, chi2, linregress
from scipy.optimize import minimize
from numpy import linalg as LA
# import our own files and reload
import file_classes
importlib.reload(file_classes)
import file_functions
importlib.reload(file_functions)
notional = 300 # mnUSD
rics = ['BARC.L','BBVA.MC','BNP.PA','CBK.DE','CSGN.SW','DBK.DE',\
'GLE.PA','HSBA.L','SAN.MC','UBSG.SW']
# rics = ['BARC.L','BBVA.MC','BNP.PA','CBK.DE','CSGN.SW','DBK.DE',\
# 'GLE.PA','HSBA.L','SAN.MC','UBSG.SW','XLF']
# rics = ['BARC.L','BNP.PA','XLF']
# rics = ['^GSPC','^VIX']
# rics = ['BP.L','ENI.MI','RDSa.AS','RDSa.L','EQNR.OL','REP.MC','XOP',\
# 'SGRE.MC','VWS.CO','ORSTED.CO','FSLR','NEE']
# rics = ['BP.L','ENI.MI','RDSa.AS','RDSa.L','EQNR.OL','REP.MC','XOP']
# rics = ['SGRE.MC','VWS.CO','ORSTED.CO','FSLR','NEE']
port_mgr = file_classes.portfolio_manager(rics, notional)
port_mgr.compute_covariance_matrix(bool_print=True)
port_min_var = port_mgr.compute_portfolio('min-variance')
port_min_var.summary()
port_min_var_l1 = port_mgr.compute_portfolio('min-variance-l1')
port_min_var_l1.summary()
port_min_var_l2 = port_mgr.compute_portfolio('min-variance-l2')
port_min_var_l2.summary()
port_long_only = port_mgr.compute_portfolio('long-only')
port_long_only.summary()
port_pca = port_mgr.compute_portfolio('pca')
port_pca.summary()
port_equi = port_mgr.compute_portfolio('equi-weight')
port_equi.summary()
port_volatility = port_mgr.compute_portfolio('volatility-weighted')
port_volatility.summary()
port_markowitz = port_mgr.compute_portfolio('markowitz', target_return=None)
port_markowitz.summary()