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
5546d340
Commit
5546d340
authored
Feb 27, 2018
by
Dr.李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update example
parent
574f2fd4
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
304 additions
and
1 deletion
+304
-1
Example 3 - Multi Weight Gap Comparison.ipynb
notebooks/Example 3 - Multi Weight Gap Comparison.ipynb
+1
-1
Example 4 - Single Factor Analysis.ipynb
notebooks/Example 4 - Single Factor Analysis.ipynb
+303
-0
No files found.
notebooks/Example 3 - Multi Weight Gap Comparison.ipynb
View file @
5546d340
...
@@ -294,7 +294,7 @@
...
@@ -294,7 +294,7 @@
" ret_df = ret_df.shift(1)\n",
" ret_df = ret_df.shift(1)\n",
" ret_df.iloc[0] = 0.\n",
" ret_df.iloc[0] = 0.\n",
" ret_df['tc_cost'] = ret_df.turn_over * 0.002\n",
" ret_df['tc_cost'] = ret_df.turn_over * 0.002\n",
" ret_df['ret_after_tc'] = ret_df['returns'] - ret_df['index'] * ret_df['leverage']\n",
" ret_df['ret_after_tc'] = ret_df['returns'] - ret_df['
tc_cost'] - ret_df['
index'] * ret_df['leverage']\n",
" return ret_df"
" return ret_df"
]
]
},
},
...
...
notebooks/Example 4 - Single Factor Analysis.ipynb
0 → 100644
View file @
5546d340
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import pandas as pd\n",
"from matplotlib import pyplot as plt\n",
"from alphamind.api import *\n",
"from PyFin.api import *\n",
"\n",
"plt.style.use('ggplot')"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"\n",
"Back test parameter settings\n",
"\"\"\"\n",
"\n",
"start_date = '2010-01-01'\n",
"end_date = '2018-02-14'\n",
"\n",
"freq = '10b'\n",
"industry_lower = 1.0\n",
"industry_upper = 1.0\n",
"neutralized_risk = industry_styles\n",
"industry_name = 'sw_adj'\n",
"industry_level = 1\n",
"turn_over_target_base = 0.3\n",
"benchmark_total_lower = 0.8\n",
"benchmark_total_upper = 1.0\n",
"batch = 0\n",
"horizon = map_freq(freq)\n",
"universe = Universe(\"custom\", ['zz800'])\n",
"data_source = 'postgres+psycopg2://postgres:A12345678!@10.63.6.220/alpha'\n",
"benchmark_code = 905\n",
"weight_gap = 0.01\n",
"\n",
"executor = NaiveExecutor()\n",
"ref_dates = makeSchedule(start_date, end_date, freq, 'china.sse')\n",
"engine = SqlEngine(data_source)"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"\n",
"Factor Model\n",
"\"\"\"\n",
"\n",
"alpha_factors = {'f01': LAST('con_pe_rolling_order')}\n",
"\n",
"weights = dict(f01=-1.)\n",
"\n",
"alpha_model = ConstLinearModel(features=alpha_factors, weights=weights)\n",
"\n",
"def predict_worker(params):\n",
" data_meta = DataMeta(freq=freq,\n",
" universe=universe,\n",
" batch=batch,\n",
" neutralized_risk=neutralized_risk,\n",
" risk_model='short',\n",
" pre_process=[winsorize_normal, standardize],\n",
" post_process=[winsorize_normal, standardize],\n",
" warm_start=0,\n",
" data_source=data_source)\n",
" ref_date, model = params\n",
" er = predict_by_model(ref_date, model, data_meta)\n",
" return er"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 4.22 s\n"
]
}
],
"source": [
"%%time\n",
"\n",
"\"\"\"\n",
"Predicting Phase\n",
"\"\"\"\n",
"\n",
"from dask.distributed import Client\n",
"client = Client('10.63.6.13:8786')\n",
"\n",
"tasks = client.map(predict_worker, [(d.strftime('%Y-%m-%d'), alpha_model) for d in ref_dates], pure=False)\n",
"predicts = client.gather(tasks)"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"\n",
"Shared Data\n",
"\"\"\"\n",
"\n",
"industry_names = industry_list(industry_name, industry_level)\n",
"constraint_risk = ['SIZE', 'SIZENL', 'BETA'] + industry_names\n",
"total_risk_names = constraint_risk + ['benchmark', 'total']\n",
"\n",
"b_type = []\n",
"l_val = []\n",
"u_val = []\n",
"\n",
"for name in total_risk_names:\n",
" if name == 'benchmark':\n",
" b_type.append(BoundaryType.RELATIVE)\n",
" l_val.append(benchmark_total_lower)\n",
" u_val.append(benchmark_total_upper)\n",
" elif name in {'SIZE', 'SIZENL', 'BETA'}:\n",
" b_type.append(BoundaryType.ABSOLUTE)\n",
" l_val.append(0.0)\n",
" u_val.append(0.0)\n",
" else:\n",
" b_type.append(BoundaryType.RELATIVE)\n",
" l_val.append(industry_lower)\n",
" u_val.append(industry_upper)\n",
" \n",
"bounds = create_box_bounds(total_risk_names, b_type, l_val, u_val)\n",
"industry_total = engine.fetch_industry_matrix_range(universe, dates=ref_dates, category=industry_name, level=industry_level)\n",
"benchmark_total = engine.fetch_benchmark_range(dates=ref_dates, benchmark=benchmark_code)\n",
"risk_total = engine.fetch_risk_model_range(universe, dates=ref_dates)[1]\n",
"index_return = engine.fetch_dx_return_index_range(benchmark_code, start_date, end_date, horizon=horizon, offset=1).set_index('trade_date')"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [],
"source": [
"# rebalance\n",
"\n",
"def create_scenario(weight_gap):\n",
"\n",
" previous_pos = pd.DataFrame()\n",
" rets = []\n",
" turn_overs = []\n",
" leverags = []\n",
" ics = []\n",
"\n",
" for i, ref_date in enumerate(ref_dates):\n",
" ref_date = ref_date.strftime('%Y-%m-%d')\n",
" industry_matrix = industry_total[industry_total.trade_date == ref_date]\n",
" benchmark_w = benchmark_total[benchmark_total.trade_date == ref_date]\n",
" risk_matrix = risk_total[risk_total.trade_date == ref_date]\n",
"\n",
" total_data = pd.merge(industry_matrix, benchmark_w, on=['code'], how='left').fillna(0.)\n",
" total_data = pd.merge(total_data, risk_matrix, on=['code'])\n",
" total_data = total_data.dropna()\n",
" codes = total_data.code.values.tolist()\n",
"\n",
" benchmark_w = total_data.weight.values\n",
" is_in_benchmark = (benchmark_w > 0.).astype(float).reshape((-1, 1))\n",
"\n",
" total_risk_exp = np.concatenate([total_data[constraint_risk].values.astype(float),\n",
" is_in_benchmark,\n",
" np.ones_like(is_in_benchmark)],\n",
" axis=1)\n",
" total_risk_exp = pd.DataFrame(total_risk_exp, columns=total_risk_names)\n",
" constraints = LinearConstraints(bounds, total_risk_exp, benchmark_w)\n",
"\n",
" lbound = np.maximum(0., benchmark_w - weight_gap) # np.zeros(len(total_data))\n",
" ubound = weight_gap + benchmark_w\n",
"\n",
" er = predicts[i].loc[codes].values\n",
" \n",
" target_pos, _ = er_portfolio_analysis(er,\n",
" industry_matrix.industry_name.values,\n",
" None,\n",
" constraints,\n",
" False,\n",
" benchmark_w,\n",
" method='risk_neutral',\n",
" lbound=lbound,\n",
" ubound=ubound)\n",
"\n",
" target_pos['code'] = codes\n",
" turn_over, executed_pos = executor.execute(target_pos=target_pos)\n",
"\n",
" executed_codes = executed_pos.code.tolist()\n",
" dx_returns = engine.fetch_dx_return(ref_date, executed_codes, horizon=horizon, offset=1)\n",
" result = pd.merge(executed_pos, total_data[['code', 'weight']], on=['code'], how='inner')\n",
" result = pd.merge(result, dx_returns, on=['code'])\n",
" \n",
" \n",
"\n",
" excess_return = np.exp(result.dx.values) - 1. - index_return.loc[ref_date, 'dx']\n",
" raw_weight = result.weight_x.values\n",
" activate_weight = raw_weight - result.weight_y.values\n",
" ret = raw_weight @ excess_return\n",
" risk_adjusted_ic = np.corrcoef(excess_return, activate_weight)[0, 1]\n",
" rets.append(np.log(1. + ret))\n",
" ics.append(risk_adjusted_ic)\n",
" executor.set_current(executed_pos)\n",
" turn_overs.append(turn_over)\n",
" \n",
" leverage = raw_weight.sum()\n",
" leverags.append(leverage)\n",
"\n",
" ret_df = pd.DataFrame({'returns': rets, 'turn_over': turn_overs, 'IC': ics, 'leverage': leverags}, index=ref_dates)\n",
"\n",
" ret_df.loc[advanceDateByCalendar('china.sse', ref_dates[-1], freq)] = 0.\n",
" ret_df = ret_df.shift(1)\n",
" ret_df.iloc[0] = 0.\n",
" ret_df['tc_cost'] = ret_df.turn_over * 0.002\n",
" return ret_df"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x29e27bbdd68>"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x29e115bc470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ret_df = create_scenario(weight_gap)\n",
"ret_df[['returns', 'tc_cost']].cumsum().plot(figsize=(12, 6),\n",
" title='Fixed freq rebalanced: {0} with benchmark {1}'.format(freq, 905),\n",
" secondary_y='tc_cost')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
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