Python金融量化将之前涵盖量化入门、金融数据、量化分析、策略回测的内容进行整合和系统化,打造更便于个人量化投研分析的框架——qstock。qstock目前处于测试阶段,只面向知识星球会员开放,数据源主要来自tushare pro,之后将会不断增加各种免费的数据源api(包括akshare、efinance、baostock等等)以及数据爬虫,等功能完善后再向所有读者进行开源。
qstock致力于打造个人量化投研分析框架,侧重点在于量化分析、可视化、量化选股和策略回测,其中数据获取部分download_data:整合tushare、akshare、efinance统一接口获取数据,将数据规整化和本地数据库操作。目前实现指数和个股分析(技术指标、量价形态、动量排名、资金流、涨停板、龙虎榜、股东、公司基本面),计划添加包括宏观环境分析(GDP、利率、通货膨胀、失业率、流动性)和市场分析(大盘指数、国债指数、企业债指数、中期票据价格、商品期货、美元人民币、美元指数)、、多因子分析、投资组合与套利、机器学习、深度学习模型、策略回测(pandas向量化回测、backtrader)。
如果tushare pro上有超过5000积分,可以使用qstock的TushareData类获取数据。TushareData类专门用来获取tushare pro上的数据并进行规整处理,需要先设置token,如果需要将数据保存本地数据库(系统自带的sqlite3),还需要设置参数my_path(数据库存放路径),无此名称会自动创建文件夹。
如果tushare pro上没有足够的积分token,则使用其他免费的在线数据包获取数据,如akshare,efinance,baostock等,在qstock上使用online_data进行封装。
获取指数数据
获取全球主要指数价格数据
包含了25个特征值
获取全部个股行情面板数据(回测+选股)
整合pyecharts1.x版本的常用画图功能,包括K线图、折线、饼图、热力图、地图、词云图等等。
北向资金流向
个股资金流向可视化
通过PYTHON给个人发送提醒信息,该功能在qstock.common.send_wechat中实现,包括后面的量化选股的提醒。
选股涉及两个方面,一是公司分析,包括财务状况、发展潜力和成长性等,这方面是俗称的基本面分析,可以参考的资料已经汗牛充栋;二是股票分析(包括股价技术形态分析)。 多角度保证在市场大方向上看对的正确率尽可能增加,多层次可以和多角度相互验证,获取超额收益。通过自上而下的分析框架确定投资方向,选择符合投资方向的最优标的。
获取2017年以来所有涨停板数据(跌停板只需将参数tp设置为'D')
RPS选股
RPS(欧奈尔中文书是RS),即股票股价走势横截面(与市场其他个股对比)相对强弱,本质是动量策略。一般建议将RPS价格动量结合公司基本面进行选股。
股价相对强度RPS评级:衡量某一股票在过去n日内(如120、250)内相对股市中其他股票的表现(收益率)。市场上的每一只股票都被指定了1-99范围内的某一数值,99代表相对强度最高,RS值为99,说明该股票在收益率表现方面比其他99%的公司更为优秀。寻找真正的领军股,避免上涨滞后和跟风股。欧奈尔建议选择RPS值80或90以上(二八法则),价格形态合适的股票。一旦大盘下跌彻底结束,最先反弹到价格新高的股票基本上就是要寻找的真正领军股。普通股票的突破行为会持续约13周,而最优秀的股票通常在前3周或前4周就突破出来。注意,根据价格形态选股有失败的可能,一旦股价低于买入价的10%,立即卖出止损。
执行选股
股票价格高于150天均线和200天均线
150日均线高于200日均线
200日均线上升至少1个月
50日均线高于150日均线和200日均线
股票价格高于50日均线
股票价格比52周低点高30%
股票价格在52周高点的25%以内
相对强弱指数(RS)大于等于70,这里的相对强弱指的是股票与大盘对比,RS = 股票1年收益率 / 基准指数1年收益率 将最后一条去掉,改成结合RPS的相对强弱选股,选择rps_120大于90的个股。
此处设置时间周期为3、5、10、20、60日,参数可根据市场情况和自身经验不断调整。
财务指标打分系统
各项指标原来和计算见推文:https://mp.weixin.qq.com/s/3QWoNBOLh-cRyB1YPVtCZA
参考资料
1、tushare pro、efinance、akshare使用文档
2、https://blog.csdn.net/m0_63171455/article/details/122252272