一般而言,当市场中资金流动强度平缓时,风格投资者保持原有的风格方向;当资金流动强度强烈时,风格投资者转换原有的风格方向,例如:小市值投资者在资金流动强烈时,会转向大市值风格。本篇文章将从规模因子(大小盘风格)入手,研究关于资金流动强度与风格投资的话题。
1 导入库包
In [2]:
import pandas as pd
import numpy as np
import datetime
import math
import matplotlib.pyplot as plt
plt.style.use('seaborn')
2.资金流入净值取数和计算
In [3]:
#取数平安银行主动买入量
data_buy=get_money_flow_step(security_list='000001.SZ',start_date=None,end_date='20190103',fre_step='1d',\
fields=['act_buy_xl','act_buy_l','act_buy_m'],count=250,is_panel=0)['000001.SZ']
#取数平安银行主动卖出量
data_sell=get_money_flow_step(security_list='000001.SZ',start_date=None,end_date='20190103',fre_step='1d',\
fields=['act_sell_xl','act_sell_l','act_sell_m'],count=250,is_panel=0)['000001.SZ']
#横向加总
data_buyall=pd.DataFrame(data_buy.apply(lambda x:x.sum(),axis=1),columns=['buy_all'])
data_sellall=pd.DataFrame(data_sell.apply(lambda x:x.sum(),axis=1),columns=['sell_all'])
data_all=pd.concat([data_buyall,data_sellall],axis=1)
#得出平安银行流入净值
data_all['data_net']=data_all['buy_all']-data_all['sell_all']
data_all.tail()
Out[3]:
buy_all | sell_all | data_net | |
---|---|---|---|
2018-12-26 | 108688097.0 | 176514956.0 | -67826859.0 |
2018-12-27 | 191021237.0 | 258350579.0 | -67329342.0 |
2018-12-28 | 249609737.0 | 161550282.0 | 88059455.0 |
2019-01-02 | 115789628.0 | 270478617.0 | -154688989.0 |
2019-01-03 | 173588438.0 | 115469752.0 | 58118686.0 |
3. 资金流入强度与风格下股票组合涨跌幅相关性
In [32]:
for days in range(1,6):
data_return_stdflow_copy['std_flow_pre%dd'%days]=data_return_stdflow_copy['std_flow'].shift(days)
data_return_stdflow_copy.dropna(inplace=True)
data_return_stdflow_copy.head()
Out[32]:
std_flow | return_daily_top | return_daily_bottom | std_flow_pre1d | std_flow_pre2d | std_flow_pre3d | std_flow_pre4d | std_flow_pre5d | |
---|---|---|---|---|---|---|---|---|
2018-01-31 | 1.239100 | -2.833323 | 1.281957 | 1.258554 | 2.440805 | 0.348983 | -0.077692 | 2.120032 |
2018-02-01 | -0.324186 | -4.429560 | 0.954830 | 1.239100 | 1.258554 | 2.440805 | 0.348983 | -0.077692 |
2018-02-02 | -0.785630 | -0.661970 | 0.658227 | -0.324186 | 1.239100 | 1.258554 | 2.440805 | 0.348983 |
2018-02-05 | 0.438010 | -0.280377 | 1.333043 | -0.785630 | -0.324186 | 1.239100 | 1.258554 | 2.440805 |
2018-02-06 | 4.561510 | -5.433270 | -2.090997 | 0.438010 | -0.785630 | -0.324186 | 1.239100 | 1.258554 |
3.1 选取标准化后资金流入强度 >1.96
In [33]:
data_return_stdflow_select=data_return_stdflow_copy[data_return_stdflow_copy['std_flow_pre1d']>1.96]
data_return_stdflow_select.head()
Out[33]:
std_flow | return_daily_top | return_daily_bottom | std_flow_pre1d | std_flow_pre2d | std_flow_pre3d | std_flow_pre4d | std_flow_pre5d | |
---|---|---|---|---|---|---|---|---|
2018-02-07 | 4.418203 | -0.236470 | -3.370983 | 4.561510 | 0.438010 | -0.785630 | -0.324186 | 1.239100 |
2018-02-08 | 4.364126 | 1.742569 | -2.693657 | 4.418203 | 4.561510 | 0.438010 | -0.785630 | -0.324186 |
2018-02-09 | 3.445064 | -4.361552 | -3.945407 | 4.364126 | 4.418203 | 4.561510 | 0.438010 | -0.785630 |
2018-02-12 | -0.228793 | 1.627772 | -0.072117 | 3.445064 | 4.364126 | 4.418203 | 4.561510 | 0.438010 |
2018-02-28 | 1.443578 | 0.639150 | -1.548810 | 3.406240 | 0.607778 | -0.752558 | -0.724143 | -0.505014 |
3.2 风格下资金流入强度与风格组合后一日涨跌幅的相关性
1. 前一日资金流入强度
In [34]:
corr_1=data_return_stdflow_select[['return_daily_top','return_daily_bottom','std_flow_pre1d','std_flow']].corr()
corr_1
Out[34]:
return_daily_top | return_daily_bottom | std_flow_pre1d | std_flow | |
---|---|---|---|---|
return_daily_top | 1.000000 | 0.518051 | -0.085800 | -0.166893 |
return_daily_bottom | 0.518051 | 1.000000 | -0.769177 | -0.884400 |
std_flow_pre1d | -0.085800 | -0.769177 | 1.000000 | 0.852448 |
std_flow | -0.166893 | -0.884400 | 0.852448 | 1.000000 |
In [35]:
import seaborn
plt.figure(figsize=(10,8))
plt.title('Pearson Correlation of pre1',y=1.05,size=20)
seaborn.heatmap(data_return_stdflow_select[['return_daily_top','return_daily_bottom','std_flow_pre1d','std_flow']].astype(float).corr(),linewidths=0.1,vmax=1.0,
square=True,linecolor='white',annot=True)
plt.show()
2. 前第二日资金流入强度
In [36]:
data_return_stdflow_select2=data_return_stdflow_copy[data_return_stdflow_copy['std_flow_pre2d']>1.96]
plt.figure(figsize=(10,8))
plt.title('Pearson Correlation of pre2',y=1.05,size=20)
seaborn.heatmap(data_return_stdflow_select2[['return_daily_top','return_daily_bottom','std_flow_pre2d','std_flow']].astype(float).corr(),linewidths=0.1,vmax=1.0,
square=True,linecolor='white',annot=True)
plt.show()
3. 前第三日资金流入强度
In [37]:
data_return_stdflow_select3=data_return_stdflow_copy[data_return_stdflow_copy['std_flow_pre3d']>1.96]
plt.figure(figsize=(10,8))
plt.title('Pearson Correlation of pre3',y=1.05,size=20)
seaborn.heatmap(data_return_stdflow_select3[['return_daily_top','return_daily_bottom','std_flow_pre3d','std_flow']].astype(float).corr(),linewidths=0.1,vmax=1.0,
square=True,linecolor='white',annot=True)
plt.show()
4. 前第四日资金流入强度
In [38]:
data_return_stdflow_select4=data_return_stdflow_copy[data_return_stdflow_copy['std_flow_pre4d']>1.96]
plt.figure(figsize=(10,8))
plt.title('Pearson Correlation of pre4',y=1.05,size=20)
seaborn.heatmap(data_return_stdflow_select4[['return_daily_top','return_daily_bottom','std_flow_pre4d','std_flow']].astype(float).corr(),linewidths=0.1,vmax=1.0,
square=True,linecolor='white',annot=True)
plt.show()
5. 前第五日资金流入强度
In [39]:
data_return_stdflow_select5=data_return_stdflow_copy[data_return_stdflow_copy['std_flow_pre5d']>1.96]
plt.figure(figsize=(10,8))
plt.title('Pearson Correlation of pre5',y=1.05,size=20)
seaborn.heatmap(data_return_stdflow_select5[['return_daily_top','return_daily_bottom','std_flow_pre5d','std_flow']].astype(float).corr(),linewidths=0.1,vmax=1.0,
square=True,linecolor='white',annot=True)
plt.show()
In [ ]:
查看以上策略详细请 到 supermind量化交易官网查看:资金面专题2-资金流动强度与风格下股票组合涨跌相关性