资讯专栏INFORMATION COLUMN

Python进阶量化交易场外篇3——最大回撤评价策略风险

lcodecorex / 514人阅读

摘要:我们知道投资是有风险的,那么如何去衡量这个风险呢最大回撤率就是一种直观的将风险切实量化的指标。最大回撤率计算公式当日收盘价当日之前最高价最高价最低价最高价。显而易见,最大回撤率越小越好,因为回撤与风险成正比,回撤越大,风险也就越高。

新年伊始,很荣幸笔者的《教你用 Python 进阶量化交易》专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习本专栏内容,因此同学们无需担心专栏内容在学习上的困难,更多的是明确自己学习的目的即可。当然笔者也欢迎同学们踊跃留言,说出自己想扩展的知识点,笔者会根据同学们的意愿选择性的推出一些内容。

本次场外篇笔者在专栏《18、股票交易数据可视化:买卖区间下策略收益绘制》的基础上对策略的最大回撤指标做一定的扩展介绍。最大回撤属于判断策略风险高低的指标,用来描述买入股票后,在策略出现最糟糕的情况下会损失多少钱,这也直接关系到《21、股票交易策略开发:ATR止盈止损风险策略》小节中对于风险策略中止盈止损因子的设定。

我们知道投资是有风险的,那么如何去衡量这个风险呢?最大回撤率就是一种直观的将风险切实量化的指标。最大回撤率计算公式:max(1-当日收盘价/当日之前最高价)*100%【(最高价-最低价)/最高价】。举个例子,在股票最高价2元买入,近半年内,股价下跌到最低点1.6元,最大亏损0.4元,那么这近半年最大回撤率=1-1.6/2×100%,结果是20%。显而易见,最大回撤率越小越好,因为回撤与风险成正比,回撤越大,风险也就越高。最大回撤的概念虽然直观,但在程序中到底应该怎么实现计算呢?

我们延续专栏《18、股票交易数据可视化:买卖区间下策略收益绘制》的内容,计算浙大网新股价的最大回撤率和应用策略后资金曲线的最大回撤率。以计算资金曲线最大回撤率为例,首先使用expanding() 计算资金曲线的滚动最大值,也就是截至当前时间,资金曲线的最大值,图中的橙色曲线所示。

接着,将资金曲线与资金曲线滚动最大值矢量相除,即得到回撤后资金剩余的百分比,也就是资金曲线在滚动最大值之后剩余资金的百分比,对剩余资金百分比从小到大排序,那么第一行就包含了回撤后资金剩余百分比的最小值,1-资金剩余百分比最小值即为资金曲线最大回撤率。

以下为计算资金曲线最大回撤率实现代码,同理计算股价曲线最大回撤率与此类同:

#expanding()计算资金曲线当前的滚动最高值
stock_df["max_total"] = stock_df["total"].expanding().max()
#计算资金曲线在滚动最高值之后所回撤的百分比
stock_df["per_total"] = stock_df["total"]/stock_df["max_total"]
min_point_total = stock_df.sort_values(by=["per_total"]).iloc[[0], stock_df.columns.get_loc("per_total")]
max_point_total = stock_df[stock_df.index <= min_point_total.index[0]].sort_values
                    (by=["total"],ascending=False).iloc[[0],stock_df.columns.get_loc("total")]
print("最大资金回撤%5.2f%%从%s开始至%s结束"%((1-min_point_total.values),
                              max_point_total.index[0],min_point_total.index[0]))

最后分别打印出浙大网新股价和资金曲线最大回撤率,以及时间点,并且在图形上标注。更多的量化交易内容欢迎大家订阅专栏阅读!!

最大股价回撤 0.53%从2018-04-24 00:00:00开始至2018-10-16 00:00:00结束
最大资金回撤 0.15%从2018-05-23 00:00:00开始至2018-10-08 00:00:00结束

更多python量化交易内容互动请加微信公众号:PythonQT-YuanXiao
欢迎订阅量化交易课程:[链接地址]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43152.html

相关文章

  • Python进阶量化易场外篇2——线性回归拟合股价沉浮

    摘要:由于线性回归作用于股票收盘价的整个周期,因此选择合适的时间段非常重要。在制定量化交易策略时有一种方式是寻找现象中的特征,根据特征去生成交易条件。 新年伊始,很荣幸笔者的《教你用 Python 进阶量化交易》专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习本专栏内容,因此同学们无需担心专栏内容在学习上的困难,...

    loonggg 评论0 收藏0
  • python做投资--多因子策略

    摘要:如果我们把这三个因子都加进去会怎样呢收益率为倍,没有刚才那么好了,还是刚才的和净利润环比增长率这两个因子比较好,那就保留两个吧。因此,我们可以考虑使用排名的方法,对这些因子进行排名。 导语:每一位宽客都相信,影响股票涨跌的因素不胜枚举,而这些因素就是因子!本文作为一篇合格的入门教程,提供代码当做框架,各路宽客可以自己测试,查看收益率,亦可利用聚宽python平台自行构建代码。 规范源码...

    zilu 评论0 收藏0
  • Python量化交易基础讲堂——管理概率==理性交易

    摘要:那么我们改变概率这个因子,将它放大到,我们邀请个人参与局看下效果看来结果还不错,只要增加盈利的概率,就可以在市场中获得收益,这就是量化交易的魅力管理概率理性交易。 在《Python实战-构建基于股票的量化交易系统》小册子中,我们以股票为交易标的讲解量化交易的学习,主要原因是股票的风险和收益介于期货和基金之间。期货一方面加了杠杆,另一方面走势变化非常迅速,稍有不慎有可能血本无归,这不太适...

    AWang 评论0 收藏0
  • PyAlgoTrade框架研究

    摘要:最近研究量化交易,看了几个回测的框架,最后盯上这个项目。所以对这个框架进行了一番研究。比如的设计,也是采用事件回调来计算指标或者进行交易。在的科学计算框架体系中,是核心,其核心的数据结构也被广泛使用于其他数据分析框架之中。 最近研究量化交易,看了几个回测的框架,最后盯上PyAlgoTrade这个项目。感觉很不错,支持 策略回测和实盘交易,提供全面的技术分析接口,算是python的量化交...

    gityuan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<