Python+Empyrical实现计算风险指标

目录
  • 1.准备
  • 2. Empyrical 基本使用
  • 3.更多的指标
    • 3.1 omega_ratio
    • 3.2 calmar_ratio
    • 3.3 sortino_ratio

Empyrical 是一个知名的金融风险指标库。它能够用于计算年平均回报、最大回撤、Alpha值、Beta值、卡尔马率、Omega率、夏普率等。它还被用于zipline和pyfolio,是Quantopian开发的三件套之一。

下面就教你如何使用 Empyrical 这个风险指标计算神器。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点

为了实现识别猫的功能,我们需要安装 paddlepaddle, 进入他们的官方网站就有详细的指引

请选择以下任一种方式输入命令安装依赖

1. Windows 环境 打开 Cmd (开始-运行-CMD)。

2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。

3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install empyrical

2. Empyrical 基本使用

计算最大回撤,你只需要从 empyrical 库中引入 max_drawdown ,将数据作为参数传入计算,一行代码就能实现:

import numpy as np
from empyrical import max_drawdown

returns = np.array([.01, .02, .03, -.4, -.06, -.02])

# 计算最大回撤
max_drawdown(returns)
# 结果:-0.4472800000000001

同样地,如果你需要计算alpha和beta指标:

import numpy as np
from empyrical import alpha_beta

returns = np.array([.01, .02, .03, -.4, -.06, -.02])
benchmark_returns = np.array([.02, .02, .03, -.35, -.05, -.01])

# 计算alpha和Beta值
alpha, beta = alpha_beta(returns, benchmark_returns)
print(alpha, beta)
# 结果:-0.7960672549836803 1.1243025418474892

如果你想要计算夏普率,同样也是一行代码就能解决,只不过你需要注意这几个参数的意义:

import numpy as np
from empyrical import sharpe_ratio

returns = np.array([.01, .02, .03, -.4, -.06, -.02])

# 计算夏普率
sr = sharpe_ratio(returns, risk_free=0, period='daily', annualization=None)
print(sr)
# 结果:-6.7377339531573535

各个参数的意义如下:

参数 数据类型 意义
returns pandas.Series 策略的日回报,非累积。
risk_free float 本周期内的无风险利率
period str, optional 确定回报数据的周期,默认为天。
annualization int, optional 交易日总数(用于计算年化)
如果是daily,则默认为252个交易日。

3.更多的指标

Empyrical 能提供使用的指标非常多,这里就不一一介绍了,基本上用法都和夏普率的计算方法差不多,这里介绍他们的方法和参数。

3.1 omega_ratio

empyrical.omega_ratio(returns, risk_free=0.0, required_return=0.0, annualization=252)
参数 数据类型 意义
returns pandas.Series 策略的日回报,非累积。
risk_free float 本周期内的无风险利率
required_return float, optional 投资者可接受的最低回报。
annualization int, optional 交易日总数(用于计算年化)
如果是daily,则默认为252个交易日。

3.2 calmar_ratio

empyrical.calmar_ratio(returns, period='daily', annualization=None)
参数 数据类型 意义
returns pandas.Series 策略的日回报,非累积。
period str, optional 确定回报数据的周期,默认为天。
annualization int, optional 交易日总数(用于计算年化)。如果是daily,则默认为252个交易日。

3.3 sortino_ratio

empyrical.sortino_ratio(returns, required_return=0, period='daily', annualization=None, _downside_risk=None)
参数 数据类型 意义
returns pandas.Series 策略的日回报,非累积。
required_return float 最小投资回报
period str, optional 确定回报数据的周期,默认为天。
annualization int, optional 交易日总数(用于计算年化)。如果是daily,则默认为252个交易日。
_downside_risk float, optional 给定输入的下跌风险。如果没有提供则自动计算

更多的指标及其说明,请查看empyrical源代码的stats.py文件,里面还包含了所有指标的计算逻辑,如果你想了解每个指标的计算方法,可以查看这个文件进行学习

到此这篇关于Python+Empyrical实现计算风险指标的文章就介绍到这了,更多相关Python Empyrical计算风险指标内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python中eval带来的潜在风险代码分析

    0x00 前言 eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行.比如下列代码: >>> eval("1+2") >>> eval("[x for x in range(10)]") [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 当内存中的内置模块含有os的话,eval同样可以做到命令执行: >>> import os >>&g

  • python 瀑布线指标编写实例

    我就废话不多说了,大家还是直接看代码吧! # -*- coding: utf-8 -*- """ Created on Tue May 23 08:57:02 2017 @author: yunjinqi E-mail:yunjinqi@qq.com Differentiate yourself in the world from anyone else. """ import pandas as pd import numpy as np im

  • Python自定义指标聚类实例代码

    目录 前言 与KMeans++比较 Yolo检测框聚类 总结 前言 最近在研究 Yolov2 论文的时候,发现作者在做先验框聚类使用的指标并非欧式距离,而是IOU.在找了很多资料之后,基本确定 Python 没有自定义指标聚类的函数,所以打算自己做一个 设训练集的 shape 是 [n_sample, n_feature],基本思路是: 簇中心初始化:第 1 个簇中心取样本的特征均值,shape = [n_feature, ]:从第 2 个簇中心开始,用距离函数 (自定义) 计算每个样本到最近中

  • python计算auc指标实例

    1.安装scikit-learn 1.1Scikit-learn 依赖 Python (>= 2.6 or >= 3.3), NumPy (>= 1.6.1), SciPy (>= 0.9). 分别查看上述三个依赖的版本, python -V 结果:Python 2.7.3 python -c 'import scipy; print scipy.version.version' scipy版本结果:0.9.0 python -c "import numpy; print

  • Python+Empyrical实现计算风险指标

    目录 1.准备 2. Empyrical 基本使用 3.更多的指标 3.1 omega_ratio 3.2 calmar_ratio 3.3 sortino_ratio Empyrical 是一个知名的金融风险指标库.它能够用于计算年平均回报.最大回撤.Alpha值.Beta值.卡尔马率.Omega率.夏普率等.它还被用于zipline和pyfolio,是Quantopian开发的三件套之一. 下面就教你如何使用 Empyrical 这个风险指标计算神器. 1.准备 开始之前,你要确保Pytho

  • python实现IOU计算案例

    计算两个矩形的交并比,通常在检测任务里面可以作为一个检测指标.你的预测bbox和groundtruth之间的差异,就可以通过IOU来体现.很简单的算法实现,我也随便写了一个,嗯,很简单. 1. 使用时,请注意bbox四个数字的顺序(y0,x0,y1,x1),顺序不太一样. #!/usr/bin/env python # encoding: utf-8 def compute_iou(rec1, rec2): """ computing IoU :param rec1: (y0

  • Python Numpy实现计算矩阵的均值和标准差详解

    目录 一.前言 二.详解计算均值和标准差 三.实践:CRITIC权重法计算变异系数 一.前言 CRITIC权重法是一种比熵权法和标准离差法更好的客观赋权法: 它是基于评价指标的对比强度和指标之间的冲突性来综合衡量指标的客观权重.考虑指标变异性大小的同时兼顾指标之间的相关性,并非数字越大就说明越重要,完全利用数据自身的客观属性进行科学评价. 对比强度是指同一个指标各个评价方案之间取值差距的大小,以标准差的形式来表现.标准差越大,说明波动越大,即各方案之间的取值差距越大,权重会越高: 指标之间的冲突

  • Python基于checksum计算文件是否相同的方法

    本文实例讲述了Python基于checksum计算文件是否相同的方法.分享给大家供大家参考.具体如下: 假设有2个二进制文件(0.bin, 1.bin),用checksum检验内容是否相同 # coding: utf8 # Python2.6.2 import md5 with open('0.bin', 'rb') as f: s = md5.new(f.read()).hexdigest() with open('1.bin', 'rb') as f: ss = md5.new(f.read

  • Python中shape计算矩阵的方法示例

    本文实例讲述了Python中shape计算矩阵的方法.分享给大家供大家参考,具体如下: 看到机器学习算法时,注意到了shape计算矩阵的方法接下来就讲讲我的理解吧 >>> from numpy import * >>> import operator >>> a =mat([[1,2,3],[5,6,9]]) >>> a matrix([[1, 2, 3], [5, 6, 9]]) >>> shape(a) (2,

  • python简单实现计算过期时间的方法

    本文实例讲述了python简单实现计算过期时间的方法.分享给大家供大家参考.具体如下: def time_passed(value): now = datetime.now() past = now - value if past.days: return u'%s天前' % past.days mins = past.seconds / 60 if mins < 60: return u'%s分钟前' % mins hours = mins / 60 return u'%s小时前' % hou

  • Python+matplotlib实现计算两个信号的交叉谱密度实例

     计算两个信号的交叉谱密度 结果展示: 完整代码: import numpy as np import matplotlib.pyplot as plt fig, (ax1, ax2) = plt.subplots(2, 1) # make a little extra space between the subplots fig.subplots_adjust(hspace=0.5) dt = 0.01 t = np.arange(0, 30, dt) # Fixing random stat

  • Python基于高斯消元法计算线性方程组示例

    本文实例讲述了Python基于高斯消元法计算线性方程组.分享给大家供大家参考,具体如下: #!/usr/bin/env python # coding=utf-8 # 以上的信息随自己的需要改动吧 def print_matrix( info, m ): # 输出矩阵 i = 0; j = 0; l = len(m) print info for i in range( 0, len( m ) ): for j in range( 0, len( m[i] ) ): if( j == l ):

  • Python实现的计算马氏距离算法示例

    本文实例讲述了Python实现的计算马氏距离算法.分享给大家供大家参考,具体如下: 我给写成函数调用了 python实现马氏距离源代码: # encoding: utf-8 from __future__ import division import sys reload(sys) sys.setdefaultencoding('utf-8') import numpy as np def mashi_distance(x,y): print x print y #马氏距离要求样本数要大于维数,

随机推荐