- 数据处理
- 对日线数据进行数据清理
- 原来的日线数据包括交易日期、股票代码、股票名称、开盘价、收盘价、最高价、最低价、前收盘价
- 首先计算涨跌幅,涨跌幅 = (收盘价 - 前一天收盘价) / 收盘价
- 然后计算当日涨跌幅,当日涨跌幅 = (收盘价 - 开盘价) / 开盘价
- 接着将股票日线数据和指数的日线数据进行数据对齐
- 删除2007年之前的数据(股市在2007年发生巨大变动)
- 新增一列 是否交易 表示当天是否交易,然后增加一列表示下日是否交易
- st
- 退市
- 开盘涨停
- 一字涨停
- 开盘跌停
- 一字跌停
- 停牌
- 实际上,只需要判断st、退市、停牌的股票
- 接着需要对那些没有交易的日期进行处理,因为后面会用到当月涨跌幅数据
- 股票开盘价:前一天收盘价
- 股票最高价:前一天收盘价
- 股票最低价:前一天收盘价
- 股票收盘价:前一天收盘价
- 股票前收盘价:前一天收盘价
- 股票涨跌幅:0
- 股票当天涨跌幅:0
- 是否退市:前一天
- ST: 前一天
- 将日线数据转化为月线数据
- 月线数据有每月最后一个交易日的信息,包括交易日期、股票代码、股票名称、下周期每天涨跌幅、下日当日涨跌幅、是否可以交易、下日是否可以交易
- 月线数据包括 交易日期 股票代码 股票名称 是否交易 下日是否交易 st 退市 下日涨停 下日跌停 交易天数 市场交易天数 下周期每天涨跌幅 长端动量因子
- 最后一行的下月涨跌幅需要处理??????????????
- 对日线数据进行数据清理
- 选择动量30股票
- 剔除当日不可交易并且下日不可交易的股票(是否可交易 = false, 下日是否可交易 = false),然后剔除下日开盘涨停和开盘跌停的股票,剔除交易日期小于市场交易日期80%的股票
- 根据长端动量因子选择前30只股票
- 计算出资金曲线
- 根据每只股票下月涨跌幅,计算出股票的下月资金曲线,计算方法为连乘(1 + 涨跌幅)
- 对这30只股票求均值就可以得到均仓买入30只股票的资金曲线
- 此时,扣除手续费和印花税,买入时需要扣除手续费和印花税,卖出时扣除印花税,得到了扣除手续费的资金曲线
- 根据资金曲线,计算涨跌幅(资金 - 前一天资金)
- 得到涨跌幅之后,将指数股票作为基准股票,下月第一天为买入股票日,当月一直持有,具体操作方法为,将月线数据转化为日线数据,计算股票的实际持有日,根据股票涨跌幅和指数涨跌幅计算资金曲线。
- 这里没有考虑T+1的交易规则
- 绘图
选股回测思路
于 2024-07-29 22:38:09 首次发布