本系列帖子“量化小讲堂”,通过实际案例教初学者使用python、pandas进行金融数据处理,希望能对大家有帮助。
【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》
【所有系列文章汇总】:https://bbs.pinggu.org/thread-3950124-1-1.html
【python量化课程】想要快速、系统的学习量化知识,可以参与我与论坛合作开设的课程:《python量化投资入门》,我会亲自授课,随问随答。参与课程还可以免费加入我的小密圈,我每天会在圈中分享量化的所见所思,圈子介绍点击此处。
微信:xbx_laoshi,量化交流Q群(快满):438143420,有问题欢迎交流。
文中用到的A股数据可在www.yucezhe.com下载,这里可以下载到所有股票、从上市日起的交易数据、财务数据、分钟数据、分笔数据、逐笔数据等。
【量化小讲堂 - Python、Pandas系列】如何判断一个策略的好坏?
对于一个交易策略,初学者往往认为收益越高越好。收益确实是一个重要的评价指标,但是除了收益之外,还有很多其他重要的角度来衡量一个策略的好坏。例如这个策略的风险性、胜率、交易频率等。
本篇文章以几个常见的交易策略评价指标为案例,向大家介绍pandas的以下几个功能的运用:
- dataframe的合并操作:append()、concat()函数的用法
- 按某一列的值排序操作:sort_values()函数的用法
- 常见统计指标的方法:mean(), std()等
- pandas画图操作:plot方法
我将介绍如下几个经典指标
- 年化收益
- 最大回撤
我一般认为,年华收益/最大回撤,是个最简单有效的策略判断指标。
- 平均涨幅
- 上涨概率
- 最大连续上涨天数
- 最大连续下跌天数
- 最大单周期涨幅
- 最大单周期跌幅
(【python量化课程】想要快速、系统的学习量化知识,可以参与我与论坛合作开设的课程:《python量化投资入门》,我会亲自授课,随问随答。参与课程还可以免费加入我的小密圈,我每天会在圈中分享量化的所见所思,圈子介绍点击此处。)
- 收益波动率
- 贝塔(beta)值
- 阿尔法(alpha)值
- 夏普比率
- 信息比率
任何策略的结果都是一个收益序列,根据这个收益序列可以得到一条资金曲线。为了简单起见,我们就任选一只股票每天的收益率作为原始数据,来计算上文提到的各种策略评价指标。在http://yucezhe.com/product?name=trading-data可以下载到所有股票的历史日线数据,可以作为我们计算的原始数据。
数据下载下来解压缩打开后,里面有所有股票和几个常见指数的数据。打开其中一个股票文件之后是下图这个样子,每一行是每一天的数据:
数据有以下的字段:
【code】股票的代码,上证股票以sh开头,深证股票以sz开头
【date】交易日期
【open】开盘价
【high】最高价
【low】最低价
【close】收盘价
【change】涨跌幅,复权之后的真实涨跌幅,保证准确
【volume】成交量
【money】成交额
【traded_market_value】流通市值
【market_value】总市值
【turnover】换手率,成交量/流通股本
【adjust_price】后复权价,复权开始时间为股票上市日,精确到小数点后10位
【report_date】最近一期财务报告实际发布的日期
【report_type】最近一期财务报告的类型,3-31对应一季报,6-30对应半年报,9-30对应三季报,12-31对应年报
【PE_TTM】最近12个月市盈率,股价 / 最近12个月归属母公司的每股收益TTM
【PS_TTM】最近12个月市销率, 股价 / 最近12个月每股营业收入
【PC_TTM】最近12个月市现率, 股价 / 最近12个月每股经营现金流
【PB】市净率,股价 / 最近期财报每股净资产
对于我们来说,只要取【date】以及【change】就行了。下面是代码的截图,这段代码截取指定的股票在指定时间段内的收益率,计算相关指标。代码里面有详细的注释,有问题可以留言,附件中有程序的源码,回复即可下载。
获取数据函数:
计算年化收益率函数:
计算最大回撤函数:
计算平均涨幅:
(【python量化课程】想要快速、系统的学习量化知识,可以参与我与论坛合作开设的课程:《python量化投资入门》,我会亲自授课,随问随答。参与课程还可以免费加入我的小密圈,我每天会在圈中分享量化的所见所思,圈子介绍点击此处。)
计算上涨概率:
计算最大连续上涨天数和最大连续下跌天数:
计算最大单周期涨幅和最大单周期跌幅:
计算收益波动率的函数、计算贝塔的函数:
计算alpha的函数:
计算夏普比函数:
计算信息比率函数、计算股票和基准在回测期间的累计收益率并画图:
导入数据运行以上函数:
把数据和代码下载下来后,修改代码中原始数据的地址(也就是选择一个股票),并选定时间段,运行代码,就可以看到输出结果了。假设我们选择万科A,并设定时间段为1991年1月1日到2015年12月31日这25年,得到如下的输出结果:
万科A二十几年年年化回报是15%,已经相当不错了,最大回撤为78.9756%,也就是将近跌了80%,发生在08年的股灾。最大连续下跌50天,也是有点猛...
之后会讲的内容:
- 万得实盘交易接口
- 马克维茨资产组合理论在中国市场实际运用的效果
- 以均线为例,完整的讲述一个交易策略应该如何编写
关于《量化小讲堂》之后想看的内容,或者相关问题,可以加我微信xbx_laoshi、Q群(快满):438143420沟通。
附件中是Python程序文件,免费,回复可见,觉得文章内容有帮助的话,顶贴是最好的鼓励!
本帖隐藏的内容
量化小讲堂:指标计算函数.zip
(172.97 KB)


雷达卡






京公网安备 11010802022788号







