1、多因子问题数据库
500、总问题,每个月要更新的数据有哪些?数组
一、各个因子数据,具体哪些? pe pb等数据结构
二、return数据,全部A股return数据 ,沪深300、中证500return数据app
三、ide
九、存储的csv格式数据结构是怎么样的呢?spa
应该是每月为一个因子或多个因子的数据,命名为0、一、二、3....,0是为2000年1月31日数据。每列为股票因子数据。3d
如何更新:每次更新一个因子数据命名为一个csv文件,保存到相应位置,每次更新与之前数据不冲突。code
八、回测时股票价格数据该如何选择?orm
20180621新修改:blog
不须要取收盘价格数据,直接取pct_chg便可。向前复权和前后复权均可以,由于不是取的收盘价。
每月度数据新建一个表,更新的数据在新建的表中,一个月数据按照月顺序命名,以2000年1月份为0开始命名。
一、周期:日、周、月、季(报告期)、年
二、时间设置:固定日期---->,起始日期,截止日期;相对日期---->前推周期(日历日、交易日、周、月、季、年),截止日期
三、日期类型:交易日、日历日、工做日
四、无交易数据处理:沿用以前数据、空值、自设数值(本身输入数值)
五、货币:原始货币、人民币、美圆、港币
六、价格修正:(!)、复权方式(适用于股票基金):不复权、前复权、后复权、定点复权 (2)、价格类型(适用债券):净价、全价、市价、收益率
设置汇总:一、周/月 二、相对日期-->周/月 三、日历日 四、空值 五、原始货币 六、复权方式-->前复权
注意:(1)、复权能够选择向后复权,这样收益率数据库能够(周/月)度更新,若是向前复权,每次向前时点不一致,致使数据不一致。
(2)、频繁交易会加大交易成本,通常选取月度数据进行回测。全部数据在一张表中,须要数据时来表中取数据,可每个月更新一次收盘数据。
七、A股比较基准是什么?
沪深300指数 代码 000300.SH 中证500指数 代码 000905.SH
注意:沪深300指数数据是从2002年1月开始,中证500指数数据是从2005年1月开始。
六、在作多因子研究时,若是回测结果较好,把y换成随机数序列y1,用y1回归来看模型预测能力差,是否是说明模型预测能力较好?
五、在因子去极值处理后,因子数据所有变为0,是什么缘由?
解答:dividendyield2因子在2008年5月31日数据全为0,由于中位数数据为0,极大值和极小值均为0,最后结果都为0,影响应该不大,这样数据少,之后随着分成变得广泛,就不会有这种状况发生了。
四、数组标准化(变为均值为0,方差为1)后的数据惟一吗?
解答:是惟一的,两个标准化的差异是一个对每列标准化,一个对所有数据标准化。
data=pd.DataFrame(np.array([[0, 0], [0, 0], [1, 1], [1, 1]])) data Out[53]: 0 1 0 0 0 1 0 0 2 1 1 3 1 1 scale_fun = lambda x: (x - x.mean()) / x.std() data1=data.apply(scale_fun) data1 Out[56]: 0 1 0 -0.866025 -0.866025 1 -0.866025 -0.866025 2 0.866025 0.866025 3 0.866025 0.866025 data1.mean() Out[79]: 0 0.0 1 0.0 dtype: float64 data1.std() Out[80]: 0 1.0 1 1.0 dtype: float64 from sklearn import preprocessing scaler=preprocessing.StandardScaler() scaler.fit(data) Out[84]: StandardScaler(copy=True, with_mean=True, with_std=True) data2=scaler.transform(data) data2 Out[87]: array([[-1., -1.], [-1., -1.], [ 1., 1.], [ 1., 1.]]) data2.mean() Out[88]: 0.0 data2.std() Out[89]: 1.0 data3=DataFrame(data2) data3 Out[91]: 0 1 0 -1.0 -1.0 1 -1.0 -1.0 2 1.0 1.0 3 1.0 1.0 data3.mean() Out[92]: 0 0.0 1 0.0 dtype: float64 data3.std() Out[93]: 0 1.154701 1 1.154701 dtype: float64
三、选取回报数据的时候,是否须要复权处理?价格修正方式(股票基金)有4种:不复权、前复权、后复权、定点复权(仅用于支持定点复权指标)
解答:选择前复权,若是不复权,价格不真实
二、有些股票当期不在交易标的中,好比ST、停牌、上市不满三个月等。在作因子数据预处理时是该先丢掉这些数据再作预处理,仍是所有因子数据数据预处理完,再丢掉?
解答:先所有预处理完,再丢,这样包含的信息更多。
一、若是当天股票停牌,不考虑后续是否停牌状况下,单个回测周期因子回测时该如何处理?实际交易时如何处理?
回测时:该股票不在投资标的中,全部因子值设置为nan,设置时间分为因子预处理前和预处理后两种状况。
实盘时:若是按照回测时状况来处理,该停牌股票必然会被调出股票持仓中,可能实际上该股票不该该调出,产生无效交易,加大交易成本。
这是一个问题。。。
一、RV选股策略:
二、3+2量化选股策略