Commit 81538ae6 authored by Dr.李's avatar Dr.李

added long short strategy example

parent a084ab6f
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"datetime.datetime(2018, 4, 16, 9, 33, 24, 663186)"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%matplotlib inline\n",
"import datetime as dt\n",
"import numpy as np\n",
"import pandas as pd\n",
"from PyFin.api import *\n",
"from alphamind.api import *\n",
"from matplotlib import pyplot as plt\n",
"\n",
"plt.style.use('ggplot')\n",
"dt.datetime.now()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"start_date = '2017-04-10'\n",
"end_date = '2018-04-09'\n",
"\n",
"freq = '5b'\n",
"horizon = map_freq(freq)\n",
"neutralized_risk = risk_styles + industry_styles\n",
"universe = Universe(\"custom\", ['zz500'])\n",
"data_source = None\n",
"offset = 1\n",
"method = 'ls'\n",
"industry_name = 'sw_adj'\n",
"industry_level = 1\n",
"\n",
"risk_model = 'short'\n",
"executor = NaiveExecutor()\n",
"ref_dates = makeSchedule(start_date, end_date, freq, 'china.sse')\n",
"engine = SqlEngine(data_source)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"alpha_factors = {\n",
" 'f01': LAST('ep_q'),\n",
" 'f02': LAST('roe_q'),\n",
" 'f03': LAST('GREV'),\n",
" 'f04': LAST('SGRO'),\n",
" 'f05': LAST('ILLIQUIDITY'),\n",
" }\n",
"\n",
"weights = dict(f01=0.5,\n",
" f02=0.5,\n",
" f03=0.5,\n",
" f04=0.5,\n",
" f05=0.5,\n",
" )\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=0,\n",
" neutralized_risk=neutralized_risk,\n",
" risk_model='short',\n",
" pre_process=[winsorize_normal, standardize],\n",
" post_process=[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": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 18.6 s\n"
]
}
],
"source": [
"%%time\n",
"predicts = [predict_worker((d.strftime('%Y-%m-%d'), alpha_model)) for d in ref_dates]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"2018-04-16 09:33:44,891 - ALPHA_MIND - INFO - 2017-04-10 full re-balance: 500\n",
"2018-04-16 09:33:45,185 - ALPHA_MIND - INFO - 2017-04-10 is finished\n",
"2018-04-16 09:33:45,190 - ALPHA_MIND - INFO - 2017-04-17 full re-balance: 500\n",
"2018-04-16 09:33:45,616 - ALPHA_MIND - INFO - 2017-04-17 is finished\n",
"2018-04-16 09:33:45,621 - ALPHA_MIND - INFO - 2017-04-24 full re-balance: 500\n",
"2018-04-16 09:33:45,748 - ALPHA_MIND - INFO - 2017-04-24 is finished\n",
"2018-04-16 09:33:45,753 - ALPHA_MIND - INFO - 2017-05-02 full re-balance: 500\n",
"2018-04-16 09:33:45,877 - ALPHA_MIND - INFO - 2017-05-02 is finished\n",
"2018-04-16 09:33:45,882 - ALPHA_MIND - INFO - 2017-05-09 full re-balance: 500\n",
"2018-04-16 09:33:46,010 - ALPHA_MIND - INFO - 2017-05-09 is finished\n",
"2018-04-16 09:33:46,015 - ALPHA_MIND - INFO - 2017-05-16 full re-balance: 500\n",
"2018-04-16 09:33:46,229 - ALPHA_MIND - INFO - 2017-05-16 is finished\n",
"2018-04-16 09:33:46,234 - ALPHA_MIND - INFO - 2017-05-23 full re-balance: 500\n",
"2018-04-16 09:33:46,363 - ALPHA_MIND - INFO - 2017-05-23 is finished\n",
"2018-04-16 09:33:46,368 - ALPHA_MIND - INFO - 2017-06-01 full re-balance: 500\n",
"2018-04-16 09:33:46,499 - ALPHA_MIND - INFO - 2017-06-01 is finished\n",
"2018-04-16 09:33:46,504 - ALPHA_MIND - INFO - 2017-06-08 full re-balance: 500\n",
"2018-04-16 09:33:46,635 - ALPHA_MIND - INFO - 2017-06-08 is finished\n",
"2018-04-16 09:33:46,641 - ALPHA_MIND - INFO - 2017-06-15 full re-balance: 500\n",
"2018-04-16 09:33:46,772 - ALPHA_MIND - INFO - 2017-06-15 is finished\n",
"2018-04-16 09:33:46,777 - ALPHA_MIND - INFO - 2017-06-22 full re-balance: 500\n",
"2018-04-16 09:33:46,908 - ALPHA_MIND - INFO - 2017-06-22 is finished\n",
"2018-04-16 09:33:46,913 - ALPHA_MIND - INFO - 2017-06-29 full re-balance: 500\n",
"2018-04-16 09:33:47,043 - ALPHA_MIND - INFO - 2017-06-29 is finished\n",
"2018-04-16 09:33:47,048 - ALPHA_MIND - INFO - 2017-07-06 full re-balance: 500\n",
"2018-04-16 09:33:47,177 - ALPHA_MIND - INFO - 2017-07-06 is finished\n",
"2018-04-16 09:33:47,183 - ALPHA_MIND - INFO - 2017-07-13 full re-balance: 500\n",
"2018-04-16 09:33:47,313 - ALPHA_MIND - INFO - 2017-07-13 is finished\n",
"2018-04-16 09:33:47,318 - ALPHA_MIND - INFO - 2017-07-20 full re-balance: 500\n",
"2018-04-16 09:33:47,450 - ALPHA_MIND - INFO - 2017-07-20 is finished\n",
"2018-04-16 09:33:47,455 - ALPHA_MIND - INFO - 2017-07-27 full re-balance: 500\n",
"2018-04-16 09:33:47,585 - ALPHA_MIND - INFO - 2017-07-27 is finished\n",
"2018-04-16 09:33:47,590 - ALPHA_MIND - INFO - 2017-08-03 full re-balance: 500\n",
"2018-04-16 09:33:47,719 - ALPHA_MIND - INFO - 2017-08-03 is finished\n",
"2018-04-16 09:33:47,725 - ALPHA_MIND - INFO - 2017-08-10 full re-balance: 500\n",
"2018-04-16 09:33:47,853 - ALPHA_MIND - INFO - 2017-08-10 is finished\n",
"2018-04-16 09:33:47,857 - ALPHA_MIND - INFO - 2017-08-17 full re-balance: 500\n",
"2018-04-16 09:33:47,989 - ALPHA_MIND - INFO - 2017-08-17 is finished\n",
"2018-04-16 09:33:47,994 - ALPHA_MIND - INFO - 2017-08-24 full re-balance: 500\n",
"2018-04-16 09:33:48,129 - ALPHA_MIND - INFO - 2017-08-24 is finished\n",
"2018-04-16 09:33:48,135 - ALPHA_MIND - INFO - 2017-08-31 full re-balance: 500\n",
"2018-04-16 09:33:48,266 - ALPHA_MIND - INFO - 2017-08-31 is finished\n",
"2018-04-16 09:33:48,271 - ALPHA_MIND - INFO - 2017-09-07 full re-balance: 500\n",
"2018-04-16 09:33:48,402 - ALPHA_MIND - INFO - 2017-09-07 is finished\n",
"2018-04-16 09:33:48,408 - ALPHA_MIND - INFO - 2017-09-14 full re-balance: 500\n",
"2018-04-16 09:33:48,536 - ALPHA_MIND - INFO - 2017-09-14 is finished\n",
"2018-04-16 09:33:48,541 - ALPHA_MIND - INFO - 2017-09-21 full re-balance: 500\n",
"2018-04-16 09:33:48,673 - ALPHA_MIND - INFO - 2017-09-21 is finished\n",
"2018-04-16 09:33:48,678 - ALPHA_MIND - INFO - 2017-09-28 full re-balance: 500\n",
"2018-04-16 09:33:48,812 - ALPHA_MIND - INFO - 2017-09-28 is finished\n",
"2018-04-16 09:33:48,817 - ALPHA_MIND - INFO - 2017-10-12 full re-balance: 500\n",
"2018-04-16 09:33:48,948 - ALPHA_MIND - INFO - 2017-10-12 is finished\n",
"2018-04-16 09:33:48,953 - ALPHA_MIND - INFO - 2017-10-19 full re-balance: 500\n",
"2018-04-16 09:33:49,086 - ALPHA_MIND - INFO - 2017-10-19 is finished\n",
"2018-04-16 09:33:49,091 - ALPHA_MIND - INFO - 2017-10-26 full re-balance: 500\n",
"2018-04-16 09:33:49,228 - ALPHA_MIND - INFO - 2017-10-26 is finished\n",
"2018-04-16 09:33:49,233 - ALPHA_MIND - INFO - 2017-11-02 full re-balance: 500\n",
"2018-04-16 09:33:49,362 - ALPHA_MIND - INFO - 2017-11-02 is finished\n",
"2018-04-16 09:33:49,367 - ALPHA_MIND - INFO - 2017-11-09 full re-balance: 500\n",
"2018-04-16 09:33:49,503 - ALPHA_MIND - INFO - 2017-11-09 is finished\n",
"2018-04-16 09:33:49,509 - ALPHA_MIND - INFO - 2017-11-16 full re-balance: 500\n",
"2018-04-16 09:33:49,643 - ALPHA_MIND - INFO - 2017-11-16 is finished\n",
"2018-04-16 09:33:49,648 - ALPHA_MIND - INFO - 2017-11-23 full re-balance: 500\n",
"2018-04-16 09:33:49,782 - ALPHA_MIND - INFO - 2017-11-23 is finished\n",
"2018-04-16 09:33:49,787 - ALPHA_MIND - INFO - 2017-11-30 full re-balance: 500\n",
"2018-04-16 09:33:49,920 - ALPHA_MIND - INFO - 2017-11-30 is finished\n",
"2018-04-16 09:33:49,925 - ALPHA_MIND - INFO - 2017-12-07 full re-balance: 500\n",
"2018-04-16 09:33:50,064 - ALPHA_MIND - INFO - 2017-12-07 is finished\n",
"2018-04-16 09:33:50,069 - ALPHA_MIND - INFO - 2017-12-14 full re-balance: 500\n",
"2018-04-16 09:33:50,201 - ALPHA_MIND - INFO - 2017-12-14 is finished\n",
"2018-04-16 09:33:50,205 - ALPHA_MIND - INFO - 2017-12-21 full re-balance: 500\n",
"2018-04-16 09:33:50,340 - ALPHA_MIND - INFO - 2017-12-21 is finished\n",
"2018-04-16 09:33:50,346 - ALPHA_MIND - INFO - 2017-12-28 full re-balance: 500\n",
"2018-04-16 09:33:50,490 - ALPHA_MIND - INFO - 2017-12-28 is finished\n",
"2018-04-16 09:33:50,496 - ALPHA_MIND - INFO - 2018-01-05 full re-balance: 500\n",
"2018-04-16 09:33:50,634 - ALPHA_MIND - INFO - 2018-01-05 is finished\n",
"2018-04-16 09:33:50,639 - ALPHA_MIND - INFO - 2018-01-12 full re-balance: 500\n",
"2018-04-16 09:33:50,855 - ALPHA_MIND - INFO - 2018-01-12 is finished\n",
"2018-04-16 09:33:50,859 - ALPHA_MIND - INFO - 2018-01-19 full re-balance: 500\n",
"2018-04-16 09:33:50,991 - ALPHA_MIND - INFO - 2018-01-19 is finished\n",
"2018-04-16 09:33:50,996 - ALPHA_MIND - INFO - 2018-01-26 full re-balance: 500\n",
"2018-04-16 09:33:51,133 - ALPHA_MIND - INFO - 2018-01-26 is finished\n",
"2018-04-16 09:33:51,138 - ALPHA_MIND - INFO - 2018-02-02 full re-balance: 500\n",
"2018-04-16 09:33:51,274 - ALPHA_MIND - INFO - 2018-02-02 is finished\n",
"2018-04-16 09:33:51,279 - ALPHA_MIND - INFO - 2018-02-09 full re-balance: 500\n",
"2018-04-16 09:33:51,417 - ALPHA_MIND - INFO - 2018-02-09 is finished\n",
"2018-04-16 09:33:51,422 - ALPHA_MIND - INFO - 2018-02-23 full re-balance: 500\n",
"2018-04-16 09:33:51,565 - ALPHA_MIND - INFO - 2018-02-23 is finished\n",
"2018-04-16 09:33:51,570 - ALPHA_MIND - INFO - 2018-03-02 full re-balance: 500\n",
"2018-04-16 09:33:51,707 - ALPHA_MIND - INFO - 2018-03-02 is finished\n",
"2018-04-16 09:33:51,713 - ALPHA_MIND - INFO - 2018-03-09 full re-balance: 500\n",
"2018-04-16 09:33:51,850 - ALPHA_MIND - INFO - 2018-03-09 is finished\n",
"2018-04-16 09:33:51,854 - ALPHA_MIND - INFO - 2018-03-16 full re-balance: 500\n",
"2018-04-16 09:33:51,992 - ALPHA_MIND - INFO - 2018-03-16 is finished\n",
"2018-04-16 09:33:51,997 - ALPHA_MIND - INFO - 2018-03-23 full re-balance: 500\n",
"2018-04-16 09:33:52,133 - ALPHA_MIND - INFO - 2018-03-23 is finished\n",
"2018-04-16 09:33:52,139 - ALPHA_MIND - INFO - 2018-03-30 full re-balance: 500\n",
"2018-04-16 09:33:52,274 - ALPHA_MIND - INFO - 2018-03-30 is finished\n"
]
}
],
"source": [
"industry_names = industry_list(industry_name, industry_level)\n",
"industry_total = engine.fetch_industry_matrix_range(universe, dates=ref_dates, category=industry_name, level=industry_level)\n",
"\n",
"previous_pos = pd.DataFrame()\n",
"rets = []\n",
"turn_overs = []\n",
"leverags = []\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",
" \n",
" res = industry_matrix.dropna()\n",
" codes = res.code.values.tolist()\n",
" \n",
" er = predicts[i].loc[codes].values\n",
" \n",
" alpha_logger.info('{0} full re-balance: {1}'.format(ref_date, len(er)))\n",
" target_pos, _ = er_portfolio_analysis(er,\n",
" industry_matrix.industry_name.values,\n",
" None,\n",
" None,\n",
" False,\n",
" None,\n",
" method=method)\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=offset)\n",
" result = pd.merge(executed_pos, dx_returns, on=['code'])\n",
"\n",
" leverage = result.weight.abs().sum()\n",
"\n",
" ret = result.weight.values @ (np.exp(result.dx.values) - 1.)\n",
" rets.append(np.log(1. + ret))\n",
" executor.set_current(executed_pos)\n",
" turn_overs.append(turn_over)\n",
" leverags.append(leverage)\n",
"\n",
" previous_pos = executed_pos\n",
" alpha_logger.info('{0} is finished'.format(ref_date))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x157bcc7a4a8>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ret_df = pd.DataFrame({'returns': rets, 'turn_over': turn_overs, 'leverage': leverags}, index=ref_dates)\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",
"\n",
"ret_df[['returns', 'tc_cost']].cumsum().plot(figsize=(12, 6),\n",
" title='Fixed freq rebalanced: {0}'.format(freq),\n",
" secondary_y='tc_cost')"
]
},
{
"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.5"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment