zoukankan      html  css  js  c++  java
  • 计算收益最大回撤的思想和代码

    在财务风险指标中,最大回撤是一个很重要的指标。

    自己在计算最大回撤时,最开始是网上想找一些成熟的解决方案。

    但是最后发现,要不是代码不通用,要不就是性能不好,还有一些本来就是错误的。

    所以最后只能理解最大回撤的算法思路,再写出代码,最后再优化性能了!

    例子:

    初始资金是1块钱的话,资金连续一周的变化如下:

    周一:1.01

    周二:1.02

    周三:0.98

    周四:1.0

    周五:0.97

    那么我们要计算的样本为:[1, 1.01, 1.02, 0.98, 1.0, 0.97]

    如果计算截至到周二的最大回撤,那么我们要拿到周二的值:1.02,再拿周二之前最大的值,即,周一的1.01,再计算回撤:(1.02/1.01-1)*100=0.99%,这时间 0.99% >0 ,所以是不存在回撤的。

    如果计算截至到周三的最大回撤,那么我们要拿到周三的值:0.98,再拿周三之前最大的值,即,周二的1.02,再计算回撤:(0.98/1.02-1)*100=-3.9215%,这时间 -3.9215% < 0 ,所以是存在回撤的。

    如果计算截至到周五的最大回撤,那么我们要拿到周五的值:0.97,再拿周五之前最大的值,即,周二的1.02,再计算回撤:(0.97/1.02-1)*100=-4.9019%,这时间 -4.9019% < 0 ,所以是存在回撤的。

    这时间再比较 Min(-4.9019%, -3.9215%),得出最大回撤为 -4.9019%。

    用Python 代码来实现:

    returns = [1.0, 1.01, 1.05, 1.1, 1.11, 1.07, 1.03, 1.03, 1.01, 1.02, 1.04, 1.05, 1.07, 1.06, 1.05, 1.06, 1.07, 1.09, 1.12, 1.18, 1.15, 1.15, 1.18, 1.16, 1.19, 1.17, 1.17, 1.18, 1.19, 1.23, 1.24, 1.25, 1.24, 1.25, 1.24, 1.25, 1.24, 1.25, 1.24, 1.27, 1.23, 1.22, 1.18, 1.2, 1.22, 1.25, 1.25, 1.27, 1.26, 1.31, 1.32, 1.31, 1.33, 1.33, 1.36, 1.33, 1.35, 1.38, 1.4, 1.42, 1.45, 1.43, 1.46, 1.48, 1.52, 1.53, 1.52, 1.55, 1.54, 1.53, 1.55, 1.54, 1.52, 1.53, 1.53, 1.5, 1.45, 1.43, 1.42, 1.41, 1.43, 1.42, 1.45, 1.45, 1.49, 1.49, 1.51, 1.54, 1.53, 1.56, 1.52, 1.53, 1.58, 1.58, 1.58, 1.61, 1.63, 1.61, 1.59]
    max_draw_down = 0 temp_max_value = 0 for i in range(1, len(returns)): temp_max_value = max(temp_max_value, returns[i-1]) max_draw_down = min(max_draw_down, returns[i]/temp_max_value-1) print(str(max_draw_down))

    同时,如果你拿到到的是每日的涨跌幅,而不是资金总量变化,计算思想和上面类似,但是要考虑回撤的复利情况,不能直接套用, 但是思想相同!

    本文禁止任何网站转载,严厉谴责那些蛀虫们。
    本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
  • 相关阅读:
    爬虫之爬取网贷之家在档P2P平台基本数据并存入数据库
    Python抓取第一网贷中国网贷理财每日收益率指数
    div左右布局
    IIS7.0+SqlServer2012,进行.net网站发布的安装全过程
    SpringMVC+Mybatis+Mysql实战项目学习环境搭建
    文本框字符长度动态统计
    html里面自定义弹出窗口
    windows下取linux系统里面的文件
    网页中的电话号码实现一键直呼
    测试
  • 原文地址:https://www.cnblogs.com/xunziji/p/6760019.html
Copyright © 2011-2022 走看看