所用到的数据:
1、上市公司信息数据
可用tushare的 stock_basic接口获取
2、股票每日信息(开、收、最高、最低价,换手率,成交量等)
可用tushare的pro_bar接口获取
3、大盘指数每日信息
可用tushare的 index_daily 接口获取
4、每日涨跌停统计
可用tushare的 limit_list接口获取
5、个股每日资金流向(超大、大、中、小单流入流出)
可用tushare的moneyflow接口获取
完整数据获取代码可以见github,github链接在末尾。
将大盘的日期提取出来生成一个dict,这么做的目的是为了给交易日编一个码,后期方便处理,因为有些股票会有停牌日导致信息丢失。
读取上市公司每日的涨跌的基本信息:
获取星期:似乎在短期交易中,星期几也是一个重要的指标
获取每日涨跌停统计,如果某天涨停数远远多于跌停数,则说明市场赚钱效应显著。
将每日成交量做一些处理,利用5天成交量均线换算成比例,开盘价等也是如此。
将大盘近三日相对于当天大盘情况换算成比例。
获取资金流向
这里将未来3天股价相对于今天收盘价涨超6%,并且最低价大于3%的股票标记为1,否则为0.
训练时间:20190101->20190101
测试时间:20190101->20191218
这里不选用测试集,原因是当前所用的测试机不能代表未来的情况。
使用的特征:
星期;当日涨停数-当日跌停数;转换后的开盘、收盘等价;近三日的收盘价、成交量(换成比例的);资金中、大、超大单流入及净流入(换算成比例的)。一共有32个特征。
观察特征重要性:
从特征重要性可以发现,近几天上证指数、涨跌停情况、还有换手率是比较重要的特征。看上证指数和涨跌停情况说明还是需要看大盘的,大盘好赚钱效应才高。
**买入策略:**当日收盘价买入,持股周期3天,止盈5个点,止损3个点。
先剔除一部分涨停无法买入的股票(利用最高价是否等于收盘价判断,暂且这么判断)
**回测结果:**初始资金为10w,Account为自己定义的一个类,可见github看源代码
盈利情况:
虽然账户跑输了上证指数,但是短期的交易胜率还是挺高的,回撤也很小。
与上证对比图:
1、低频交易想在短期获得利润很难,市场不确定性比较大
2、机器学习特别依赖训练集,训练集选取不好,未来将很难盈利
3、机器学习也特别依赖特征,特征太多,模型容易很难学到有效信息,容易过拟合
4、在股市问题上,验证集选取也不好选取,你当前所选取的验证集很难代表未来的情况。
1、中期股票选股策略
2、单支股票的操作策略
3、股价预测等
代码 github: https://github.com/wbbhcb/stock_market
对量化、数据挖掘、深度学习感兴趣的可以关注公众号,本人不定期分享有关这些方面的研究。
个人知乎: https://www.zhihu.com/people/e-zhe-shi-wo/activities