Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
alpha-mind
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dr.李
alpha-mind
Commits
9b102854
Commit
9b102854
authored
May 11, 2017
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update one more database
parent
d7f8463a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
414 additions
and
95 deletions
+414
-95
production_factor_analysis.ipynb
notebooks/production_factor_analysis.ipynb
+414
-95
No files found.
notebooks/production_factor_analysis.ipynb
View file @
9b102854
...
...
@@ -39,7 +39,6 @@
"benchmark = 'zz500'\n",
"\n",
"prod_factors = ['VAL', 'BDTO', 'RVOL', 'CFinc1', 'CHV']\n",
"product_weights = np.array([3., 1., 1., 0.5, 0.5])\n",
"\n",
"factor_list = ','.join([factor_table + '.' + f for f in prod_factors])\n",
"\n",
...
...
@@ -58,11 +57,10 @@
},
"outputs": [],
"source": [
"sql_template = 'select {factor_list}, factor_data.申万一级行业, {trade_table}.Return as dailyReturn, {risk_table}.*, 1 as Market ' \\\n",
" 'from {factor_table}, factor_data, trade_data, {risk_table} ' \\\n",
" 'where factor_data.Date = {factor_table}.Date and factor_data.Code = {factor_table}.Code ' \\\n",
" 'and factor_data.Date = trade_data.Date and factor_data.Code = trade_data.Code ' \\\n",
" 'and factor_data.Date = {risk_table}.Date and factor_data.Code = {risk_table}.Code;'"
"sql_template1 = 'select {factor_list},{trade_table}.Return as dailyReturn, {risk_table}.* ' \\\n",
" 'from {factor_table}, trade_data, {risk_table} ' \\\n",
" 'where {factor_table}.Date = trade_data.Date and {factor_table}.Code = trade_data.Code ' \\\n",
" 'and {factor_table}.Date = {risk_table}.Date and {factor_table}.Code = {risk_table}.Code;'"
]
},
{
...
...
@@ -72,12 +70,26 @@
"outputs": [],
"source": [
"%%time\n",
"sql
= sql_template
.format(factor_list=factor_list,\n",
" factor_table=factor_table,\n",
" risk_table=risk_table,\n",
" trade_table=trade_table)\n",
"sql
1 = sql_template1
.format(factor_list=factor_list,\n",
"
factor_table=factor_table,\n",
"
risk_table=risk_table,\n",
"
trade_table=trade_table)\n",
"\n",
"factor_df = pd.read_sql(sql, engine)"
"sql2 = 'select * from factor_data'\n",
"\n",
"# factor_df1 = pd.read_sql(sql1, engine)\n",
"# common_factor_df = pd.read_sql(sql2, engine)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"factor_df = pd.read_hdf('factor_data.hdf', 'all')"
]
},
{
...
...
@@ -123,7 +135,8 @@
"metadata": {},
"outputs": [],
"source": [
"risk_factor_cols = raw_df.columns[9:-1]\n",
"risk_factor_cols = raw_df.columns[8:35]\n",
"ob_risk_factor_cols = risk_factor_cols.copy()\n",
"risk_factor_cols"
]
},
...
...
@@ -135,7 +148,7 @@
},
"outputs": [],
"source": [
"
df = raw_df.copy()
"
"
common_factor = raw_df.columns[38:-1]
"
]
},
{
...
...
@@ -146,7 +159,7 @@
},
"outputs": [],
"source": [
"df
['d1ret'] = df.dailyReturn.groupby(df.Code).shift(-2
)"
"df
= raw_df.copy(
)"
]
},
{
...
...
@@ -156,6 +169,15 @@
"collapsed": true
},
"outputs": [],
"source": [
"df['d1ret'] = df.dailyReturn.groupby(df.Code).shift(-2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"benchmark_data = pd.read_sql('select {0}, Date from index_data'.format(benchmark), engine)"
]
...
...
@@ -193,6 +215,106 @@
"df.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calculate Market Risk\n",
"--------------------------"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"engine = sqlalchemy.create_engine('mysql+pymysql://sa:we083826@10.63.6.176/multifactor?charset=utf8')\n",
"\n",
"window = 250\n",
"return_data = pd.read_sql('select Date, Code, Price, `Return` from trade_data', engine)\n",
"return_pivot = return_data.pivot_table('Price', 'Date', 'Code')\n",
"return_pivot.fillna(method='pad', inplace=True)\n",
"return_pivot = return_pivot / return_pivot.shift(1) - 1.\n",
"index_data = benchmark_data.set_index('Date')\n",
"\n",
"full_df = pd.merge(return_pivot, index_data, left_index=True, right_index=True)\n",
"del full_df['zz500']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"corr_table = full_df.rolling(window=window).corr(full_df['ret'])\n",
"std_table = full_df.rolling(window=window).std()\n",
"\n",
"beta_table = std_table.copy()\n",
"for col in full_df.columns:\n",
" beta_table[col] = corr_table[col] * std_table[col] / std_table['ret']\n",
"beta_table = beta_table.stack().reset_index()\n",
"\n",
"beta_table.columns = ['Date', 'Code', 'market']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"beta_table.to_hdf('factor_data.hdf', 'beta')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.merge(df, beta_table, on=['Date', 'Code'], how='inner')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"analysis_factors = prod_factors + ['Size']\n",
"analysis_factors_weights = np.array([3., 1., 1., 0.5, 0.5, 3.])\n",
"\n",
"ob_risk_factor_cols = ob_risk_factor_cols.append(pd.Index(['market']))\n",
"risk_factor_cols = ob_risk_factor_cols.difference(analysis_factors)\n",
"risk_factor_cols = risk_factor_cols.unique()\n",
"ob_risk_factor_cols = ob_risk_factor_cols.unique()\n",
"risk_factor_cols"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ob_risk_factor_cols"
]
},
{
"cell_type": "code",
"execution_count": null,
...
...
@@ -252,16 +374,10 @@
},
"outputs": [],
"source": [
"total_data.loc[:, risk_factor_cols] = total_data[risk_factor_cols].groupby(total_data.Date).transform(lambda x: x / x.sum())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"risk_factor_cols"
"y = total_data[common_factor].values\n",
"groups = total_data.Date.values.astype(np.int)\n",
"\n",
"total_data[common_factor] = st.standardize(ws.winsorize_normal"
]
},
{
...
...
@@ -272,8 +388,7 @@
},
"outputs": [],
"source": [
"y = total_data[prod_factors].values\n",
"groups = total_data.Date.values.astype(np.int)"
"y = total_data[analysis_factors].values"
]
},
{
...
...
@@ -288,7 +403,7 @@
" groups=groups),\n",
" groups)\n",
"\n",
"total_data['res'] = neutralized_values @
product
_weights"
"total_data['res'] = neutralized_values @
analysis_factors
_weights"
]
},
{
...
...
@@ -297,7 +412,7 @@
"metadata": {},
"outputs": [],
"source": [
"total_data
[['res', 'Date', 'Code']]
.tail()"
"total_data.tail()"
]
},
{
...
...
@@ -330,27 +445,29 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"metadata": {},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_long_short, axis=0)"
"to_look_into = total_data[
ob_
risk_factor_cols].multiply(total_data.pos_long_short, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum()
.max(
)"
"to_look_into.groupby(total_data.Date).sum()
['Size'].plot(figsize=(14,7)
)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
...
...
@@ -370,7 +487,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
...
...
@@ -379,7 +498,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
...
...
@@ -388,7 +509,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data.pos_long_short.groupby(total_data.Date).apply(lambda x: x.sum()).head()"
...
...
@@ -416,7 +539,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
...
...
@@ -427,7 +552,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data[['pos_100', 'res', 'dailyReturn', 'd1ret', 'd1ret_b', 'Code', 'Date']].tail()"
...
...
@@ -441,22 +568,26 @@
},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_100 - total_data[index_components], axis=0)"
"to_look_into = total_data[
ob_
risk_factor_cols].multiply(total_data.pos_100 - total_data[index_components], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum()
.max(
)"
"to_look_into.groupby(total_data.Date).sum()
['Size'].plot(figsize=(14,7)
)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
...
...
@@ -476,7 +607,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
...
...
@@ -485,7 +618,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
...
...
@@ -494,7 +629,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data.pos_100.groupby(total_data.Date).sum().head()"
...
...
@@ -533,7 +670,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
...
...
@@ -552,7 +691,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(total_data['pos_100_uind'] > 0).groupby(total_data.Date).sum().plot(figsize=(14, 7))"
...
...
@@ -566,22 +707,26 @@
},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_100_uind - total_data[index_components], axis=0)"
"to_look_into = total_data[
ob_
risk_factor_cols].multiply(total_data.pos_100_uind - total_data[index_components], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum()
.max(
)"
"to_look_into.groupby(total_data.Date).sum()
['Size'].plot(figsize=(14,7)
)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
...
...
@@ -590,7 +735,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data[['pos_100_uind', 'res', 'dailyReturn', 'd1ret', 'd1ret_b', 'Code', 'Date']].tail()"
...
...
@@ -610,7 +757,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
...
...
@@ -619,7 +768,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
...
...
@@ -628,7 +779,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data.pos_100_uind.groupby(total_data.Date).sum().head()"
...
...
@@ -667,15 +820,15 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
"\n",
"lbound_exposure = -0.00001 * np.ones(len(risk_factor_cols))\n",
"ubound_exposure = 0.00001 * np.ones(len(risk_factor_cols))\n",
"lbound_exposure[-2] = -0.01\n",
"ubound_exposure[-2] = 0.01\n",
"lbound_exposure = -1e-3 * np.ones(len(risk_factor_cols))\n",
"ubound_exposure = 1e-3 * np.ones(len(risk_factor_cols))\n",
"\n",
"def get_benchmark_match_pos(x):\n",
" er = x.res.values\n",
...
...
@@ -705,7 +858,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(total_data['pos_bmat'] > 1e-4).groupby(total_data.Date).sum().plot(ylim=(50, 250), figsize=(14, 7))"
...
...
@@ -719,22 +874,26 @@
},
"outputs": [],
"source": [
"to_look_into = total_data[risk_factor_cols].multiply(total_data.pos_bmat - total_data[index_components], axis=0)"
"to_look_into = total_data[
ob_
risk_factor_cols].multiply(total_data.pos_bmat - total_data[index_components], axis=0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum()
.max(
)"
"to_look_into.groupby(total_data.Date).sum()
['Size'].plot(figsize=(14,7)
)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"to_look_into.groupby(total_data.Date).sum().min()"
...
...
@@ -743,7 +902,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_data[['pos_bmat', 'res', 'dailyReturn', 'd1ret', 'd1ret_b', 'Code', 'Date']].tail()"
...
...
@@ -763,7 +924,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series.cumsum().plot(figsize=(14,7))"
...
...
@@ -772,7 +935,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"ret_series[-60:].cumsum().plot(figsize=(14,7))"
...
...
@@ -824,7 +989,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"sharp_mat.plot(figsize=(14, 7))"
...
...
@@ -868,16 +1035,20 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_pos_table.loc[aggregated_pos_table['申万一级行业'] == '申万
家用电器
',['pos_long_short', 'pos_100', 'pos_100_uind', 'pos_bmat']].plot(figsize=(16,7))"
"aggregated_pos_table.loc[aggregated_pos_table['申万一级行业'] == '申万
化工
',['pos_long_short', 'pos_100', 'pos_100_uind', 'pos_bmat']].plot(figsize=(16,7))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_pos_table[['pos_long_short', 'pos_100', 'pos_100_uind', 'pos_bmat']].corr()"
...
...
@@ -886,7 +1057,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"turn_over_table = {}\n",
...
...
@@ -904,7 +1077,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"turn_over_table.plot(figsize=(14, 7))"
...
...
@@ -913,7 +1088,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(turn_over_table * 0.0015).plot(figsize=(14, 7))"
...
...
@@ -922,7 +1099,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"(turn_over_table[-60:].cumsum() * 0.0015).plot(figsize=(14, 7))"
...
...
@@ -957,7 +1136,7 @@
"source": [
"net_weight = total_data.pos_long_short\n",
"next_bar_return_series = total_data.d1ret\n",
"risk_table = total_data[risk_factor_cols]\n",
"risk_table = total_data[
ob_
risk_factor_cols]\n",
"net_weight.index = total_data.Date\n",
"next_bar_return_series.index = total_data.Date\n",
"risk_table.index = total_data.Date"
...
...
@@ -966,7 +1145,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
...
...
@@ -987,7 +1168,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
...
...
@@ -997,7 +1180,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
...
...
@@ -1006,7 +1191,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
...
...
@@ -1036,7 +1223,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
...
...
@@ -1057,7 +1246,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
...
...
@@ -1067,7 +1258,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
...
...
@@ -1076,7 +1269,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
...
...
@@ -1106,7 +1301,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
...
...
@@ -1127,7 +1324,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
...
...
@@ -1137,7 +1336,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
...
...
@@ -1146,7 +1347,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
...
...
@@ -1176,7 +1379,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%%time\n",
...
...
@@ -1197,7 +1402,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"top_sources = aggregated_bars.sum().abs().sort_values(ascending=False).index[:10]\n",
...
...
@@ -1207,7 +1414,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].cumsum().plot(figsize=(14, 7))"
...
...
@@ -1216,7 +1425,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"aggregated_bars[top_sources.difference(['idiosyncratic'])].plot(figsize=(14, 7))\n",
...
...
@@ -1241,6 +1452,114 @@
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment