Pandas和Numpy的一些金融相关的操作(一)

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Pandas和Numpy的一些金融相关的操作(一)

Aokigahara   2020-04-01 我要评论
# Pandas和Numpy的一些金融相关的操作 ## 给定一个净值序列,求出最大回撤 ```python # arr是一个净值的np.ndarray i = np.argmax( (np.maximum.acumulate(arr) - arr) / np.maximum.acculate(arr)) if i == 0: max_draw_dowm = 0 else: j = np.maximum(arr[:i]) # 开始位置 max_draw_down = (arr[j] - arr[i]) / arr[j] # i为回撤结束位置 j为回撤开始位置 # 可以用动态规划解决最小子列和的思路求出最大回撤 时间复杂度为O(n) ``` ## 已知净值求日收益率 ```python # net_value是一个净值的pd.Series 按照时间排序 较早的时间在前面 daily_return = net_value.pct_change() ``` ## 已知日收益率求净值 ```python # daily_return是一个日收益率的pd.Series 按照时间排序 较早的时间在前面 _net_value = (daily_return + 1).cumprod() # 这时候第一个值还不是1 net_value = _net_value / _net_value.iloc[0] ``` ## 已知净值求累计收益率 ```python # net_value是一个净值的pd.Series 按照时间排序 较早的时间在前面 cum_return = net_value / net_value.iloc[0] - 1 ```

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们