• 计算收益最大回撤的思想和代码


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

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

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

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

    例子:

    初始资金是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))

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

    本文禁止任何网站转载,严厉谴责那些蛀虫们。
    本文首发于,博客园,请搜索:博客园 - 寻自己,查看原版文章
  • 相关阅读:
    php中防止SQL注入的方法
    谈谈asp,php,jsp的优缺点
    SSH原理与运用(一):远程登录
    优化MYSQL数据库的方法
    json_encode和json_decode区别
    静态方法与非静态方法的区别
    Java 异常的Exception e中的egetMessage()和toString()方法的区别
    $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别
    HTML5开发,背后的事情你知道吗?
    使用C语言来实现模块化
  • 原文地址:https://www.cnblogs.com/xunziji/p/6760019.html
Copyright © 2020-2023  润新知