Commit 0725efec authored by Dr.李's avatar Dr.李

added one more example

parent d1bdb3fb
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from matplotlib import pyplot as plt\n",
"import uqer\n",
"import numpy as np\n",
"import pandas as pd\n",
"from uqer import DataAPI as api\n",
"from alphamind.api import *\n",
"from alphamind.data.neutralize import neutralize\n",
"\n",
"plt.style.use('ggplot')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"16937@wmcloud.com 账号登录成功\n"
]
}
],
"source": [
"_ = uqer.Client(token='')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"ref_date = '2017-06-23'\n",
"factor = 'EPS'\n",
"\n",
"engine = SqlEngine()\n",
"universe = Universe('custom', ['zz800'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Algorithm Description\n",
"--------------------------"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"猜测的 ``neutralize`` 残差$\\bar Res$计算公式:\n",
"\n",
"$$\\bar Res_{i,k} = \\bar f_{i,k} - \\sum_j \\beta_{j,k} \\times \\bar Ex_{i, j, k}$$\n",
"\n",
"其中:$k$为行业分类,$i$为该行业中第$i$只股票,$j$为第$j$个风险因子。$\\bar f$为因子序列,$\\bar Ex$为风险暴露矩阵。系数$\\beta_{j,k}$由OLS确定。\n",
"\n",
"下面的章节,我们分别比较三种``neutralize``的方法差别:\n",
"\n",
"* **UQER Neutralize**\n",
"\n",
" 使用优矿的SDK计算因子残差。\n",
"\n",
"\n",
"* **Alpha-Mind Neutralize**\n",
"\n",
" 使用alpha-mind计算因子残差,alpha-mind可以由以下地址安装:\n",
" \n",
" ```\n",
" https://github.com/wegamekinglc/alpha-mind\n",
" ```\n",
"\n",
"* **Direct Weighted Least Square Fit Implementation**\n",
"\n",
" 直接使用scikit-learn的线性回归功能来计算因子残差。\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Raw Data\n",
"---------------------------"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"codes = engine.fetch_codes(ref_date, universe)\n",
"factor_data = engine.fetch_factor(ref_date, factor, codes)\n",
"risk_cov, risk_expousre = engine.fetch_risk_model(ref_date, codes)\n",
"total_data = pd.merge(factor_data, risk_expousre, on=['code']).dropna()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"total_data['ticker'] = total_data.code.apply(lambda x: '{0:06}'.format(x))\n",
"total_data.set_index('ticker', inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"800"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(total_data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# UQER Neutralize\n",
"-----------------------"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 6.95 ms, sys: 3.42 ms, total: 10.4 ms\n",
"Wall time: 122 ms\n"
]
}
],
"source": [
"%%time\n",
"neutralized_factor_uqer = uqer.neutralize(total_data[factor],\n",
" target_date=ref_date.replace('-', ''),\n",
" industry_type='short')"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>uqer</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>000001</th>\n",
" <td>-0.065580</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000002</th>\n",
" <td>-0.279003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000006</th>\n",
" <td>-0.044765</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000008</th>\n",
" <td>-0.049037</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000009</th>\n",
" <td>0.011354</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000012</th>\n",
" <td>0.084542</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000021</th>\n",
" <td>0.047019</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000025</th>\n",
" <td>-0.045585</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000027</th>\n",
" <td>-0.014162</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000028</th>\n",
" <td>0.352680</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" uqer\n",
"000001 -0.065580\n",
"000002 -0.279003\n",
"000006 -0.044765\n",
"000008 -0.049037\n",
"000009 0.011354\n",
"000012 0.084542\n",
"000021 0.047019\n",
"000025 -0.045585\n",
"000027 -0.014162\n",
"000028 0.352680"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame(neutralized_factor_uqer, columns=['uqer'])\n",
"df.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"800"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(neutralized_factor_uqer)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"BETA -7.079814e-01\n",
"MOMENTUM 5.939448e-01\n",
"SIZE -6.938956e-01\n",
"EARNYILD 1.338850e+00\n",
"RESVOL 2.322437e-01\n",
"GROWTH -2.983247e+00\n",
"BTOP 1.012006e-01\n",
"LEVERAGE 3.958701e-02\n",
"LIQUIDTY -6.292967e-01\n",
"SIZENL 4.881117e-04\n",
"Bank -1.998401e-14\n",
"RealEstate -1.243450e-14\n",
"Health 1.454392e-14\n",
"Transportation -6.106227e-16\n",
"Mining -1.282308e-14\n",
"NonFerMetal -2.775558e-17\n",
"HouseApp 2.886580e-15\n",
"LeiService -4.996004e-16\n",
"MachiEquip 9.547918e-15\n",
"BuildDeco -5.329071e-15\n",
"CommeTrade 7.216450e-15\n",
"CONMAT -6.772360e-15\n",
"Auto -3.594347e-15\n",
"Textile 5.412337e-15\n",
"FoodBever 4.329870e-15\n",
"Electronics 1.998401e-15\n",
"Computer 3.719247e-15\n",
"LightIndus 6.133982e-15\n",
"Utilities 3.053113e-16\n",
"Telecom -4.163336e-15\n",
"AgriForest 1.845746e-15\n",
"CHEM 4.579670e-15\n",
"Media 2.586820e-14\n",
"IronSteel -7.223389e-15\n",
"NonBankFinan 2.442491e-15\n",
"ELECEQP 2.942091e-15\n",
"AERODEF -7.494005e-16\n",
"Conglomerates 1.679212e-15\n",
"dtype: float64"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"risk_exposure_uqer = uqer.DataAPI.RMExposureDayGet(tradeDate=ref_date.replace('-', '')).set_index('ticker')\n",
"targeted_secs = risk_exposure_uqer.loc[neutralized_factor_uqer.index]\n",
"\n",
"style_exposure = neutralized_factor_uqer.values @ targeted_secs[risk_styles].values\n",
"industry_exposure = neutralized_factor_uqer.values @ targeted_secs[industry_styles].values\n",
"\n",
"exposure = pd.Series(np.concatenate([style_exposure, industry_exposure]), index=risk_styles+industry_styles)\n",
"exposure"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Alpha-Mind Neutralize\n",
"--------------------------"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"x = total_data[risk_styles + industry_styles].values\n",
"y = total_data[factor].values"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1.59 s, sys: 8.02 ms, total: 1.6 s\n",
"Wall time: 152 ms\n"
]
}
],
"source": [
"%%time\n",
"neutralized_factor_alphamind = neutralize(x, y, weights=np.ones(len(y)))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>uqer</th>\n",
" <th>alpha-mind</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>000001</th>\n",
" <td>-0.065580</td>\n",
" <td>-0.076975</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000002</th>\n",
" <td>-0.279003</td>\n",
" <td>-0.288382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000006</th>\n",
" <td>-0.044765</td>\n",
" <td>-0.054668</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000008</th>\n",
" <td>-0.049037</td>\n",
" <td>-0.034123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000009</th>\n",
" <td>0.011354</td>\n",
" <td>0.029815</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" uqer alpha-mind\n",
"000001 -0.065580 -0.076975\n",
"000002 -0.279003 -0.288382\n",
"000006 -0.044765 -0.054668\n",
"000008 -0.049037 -0.034123\n",
"000009 0.011354 0.029815"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alphamind_series = pd.Series(neutralized_factor_alphamind.flatten(), index=total_data.index)\n",
"df['alpha-mind'] = alphamind_series\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"800"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(alphamind_series)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The Ticker Missing in UQER but Still in Alpha-Mind\n",
"-----------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"missed_codes = [c for c in alphamind_series.index if c not in neutralized_factor_uqer.index]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>code</th>\n",
" <th>isOpen</th>\n",
" <th>EPS</th>\n",
" <th>s_srisk</th>\n",
" <th>BETA</th>\n",
" <th>MOMENTUM</th>\n",
" <th>SIZE</th>\n",
" <th>EARNYILD</th>\n",
" <th>RESVOL</th>\n",
" <th>GROWTH</th>\n",
" <th>...</th>\n",
" <th>Telecom</th>\n",
" <th>AgriForest</th>\n",
" <th>CHEM</th>\n",
" <th>Media</th>\n",
" <th>IronSteel</th>\n",
" <th>NonBankFinan</th>\n",
" <th>ELECEQP</th>\n",
" <th>AERODEF</th>\n",
" <th>Conglomerates</th>\n",
" <th>COUNTRY</th>\n",
" </tr>\n",
" <tr>\n",
" <th>ticker</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"<p>0 rows × 43 columns</p>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [code, isOpen, EPS, s_srisk, BETA, MOMENTUM, SIZE, EARNYILD, RESVOL, GROWTH, BTOP, LEVERAGE, LIQUIDTY, SIZENL, Bank, RealEstate, Health, Transportation, Mining, NonFerMetal, HouseApp, LeiService, MachiEquip, BuildDeco, CommeTrade, CONMAT, Auto, Textile, FoodBever, Electronics, Computer, LightIndus, Utilities, Telecom, AgriForest, CHEM, Media, IronSteel, NonBankFinan, ELECEQP, AERODEF, Conglomerates, COUNTRY]\n",
"Index: []\n",
"\n",
"[0 rows x 43 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total_data.loc[missed_codes]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Direct Weighted Least Square Fit Implementation\n",
"------------------------"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/python/anaconda3/envs/py36/lib/python3.6/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n",
" from pandas.core import datetools\n"
]
}
],
"source": [
"import statsmodels.api as sm"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"mod = sm.WLS(y, x, weights=np.ones(len(y))).fit()\n",
"lg_series = pd.Series(mod.resid, index=total_data.index)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"df['ols'] = lg_series"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Comparison\n",
"------------------"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"df['uqer - ols'] = df['uqer'] - df['ols']\n",
"df['alphamind - ols'] = df['alpha-mind'] - df['ols']"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f5cb9dd7be0>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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9bTjpsNW2I+22WMaSbmHJjOCettVn9incu1jkkfuD7E/3G61U/4PZH57WBvuctlh2ylPDzPPFz2f7JMd+8lO21/ENge+/lHoR3sYjyMbq0c2sQNjRXuoXM/zVnzfn8u8X/Z9f75vnV8Dir7vv9m8//dAHfgscJvv+882y38UeK3v+//zTul6nvcfgPXk8ULP814A3Oj7/kvN+18gvrP2H4DP+77/GLP8KuDjvu9fN6Q8txLfecP3/SdfdMWIiIiIiMhJsePv8O/4nS7P8z4FXD7go9fvIRPRNssvxr7sw/f9O4A7LjIPI+N53hd933/KYedjnKmOR091PHqq49FTHY+e6nj0VMejpzoereNYvzsGXcmdqEE8z3vQ87xTvu+fN48LXhiw2jngTOb9lcR3uc6Z19nl3zGvd5Nu/z6uGpDWIjDneZ7r+36nbx8iIiIiIiIjt9fvdN0F3GJe3wJ8eMA6dwM3eJ43b35A4wbgbt/3zwM1z/OuN9+9elFm+92km/UF4BrP8x7peV4eeCFwl/mu2GeAFzyMtERERERERPbNXoOu24DneJ53D/Ac8x7P857ied7bAXzfrwK/RRwYfQF4k1kG8HLg7cC9wH3Ax3dI93LP884BrwHe4HneOc/zZsxdrF8hDvC+Fu/W/4pJ67XAazzPuxdYAP5oj2U+DEfukccxpDoePdXx6KmOR091PHqq49FTHY+e6ni0jl397umHNERERESimWNxAAAAT0lEQVRERGR7e73TJSIiIiIiIttQ0CUiIiIiIjJCCrpERERERERGSEGXiIiIiIjICCnoEhERERERGSEFXSIiIiIiIiOkoEtERERERGSE/n958DdMa3gZVwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 1008x504 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df[['uqer - ols', 'alphamind - ols']].plot(figsize=(14, 7), ylim=(-1e-4, 1e-4))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>uqer</th>\n",
" <th>alpha-mind</th>\n",
" <th>ols</th>\n",
" <th>uqer - ols</th>\n",
" <th>alphamind - ols</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>000001</th>\n",
" <td>-0.065580</td>\n",
" <td>-0.076975</td>\n",
" <td>-0.076975</td>\n",
" <td>0.011395</td>\n",
" <td>5.551115e-17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000002</th>\n",
" <td>-0.279003</td>\n",
" <td>-0.288382</td>\n",
" <td>-0.288382</td>\n",
" <td>0.009378</td>\n",
" <td>0.000000e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000006</th>\n",
" <td>-0.044765</td>\n",
" <td>-0.054668</td>\n",
" <td>-0.054668</td>\n",
" <td>0.009904</td>\n",
" <td>7.494005e-16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000008</th>\n",
" <td>-0.049037</td>\n",
" <td>-0.034123</td>\n",
" <td>-0.034123</td>\n",
" <td>-0.014914</td>\n",
" <td>-6.106227e-16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>000009</th>\n",
" <td>0.011354</td>\n",
" <td>0.029815</td>\n",
" <td>0.029815</td>\n",
" <td>-0.018461</td>\n",
" <td>2.498002e-16</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" uqer alpha-mind ols uqer - ols alphamind - ols\n",
"000001 -0.065580 -0.076975 -0.076975 0.011395 5.551115e-17\n",
"000002 -0.279003 -0.288382 -0.288382 0.009378 0.000000e+00\n",
"000006 -0.044765 -0.054668 -0.054668 0.009904 7.494005e-16\n",
"000008 -0.049037 -0.034123 -0.034123 -0.014914 -6.106227e-16\n",
"000009 0.011354 0.029815 0.029815 -0.018461 2.498002e-16"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head()"
]
},
{
"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
}
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