Python+Empyrical實現(xiàn)計算風(fēng)險指標(biāo)
Empyrical 是一個知名的金融風(fēng)險指標(biāo)庫。它能夠用于計算年平均回報、最大回撤、Alpha值、Beta值、卡爾馬率、Omega率、夏普率等。它還被用于zipline和pyfolio,是Quantopian開發(fā)的三件套之一。
下面就教你如何使用 Empyrical 這個風(fēng)險指標(biāo)計算神器。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
(可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda,它內(nèi)置了Python和pip.
(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點
為了實現(xiàn)識別貓的功能,我們需要安裝 paddlepaddle, 進(jìn)入他們的官方網(wǎng)站就有詳細(xì)的指引
請選擇以下任一種方式輸入命令安裝依賴:
1. Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install empyrical
2. Empyrical 基本使用
計算最大回撤,你只需要從 empyrical
庫中引入 max_drawdown
,將數(shù)據(jù)作為參數(shù)傳入計算,一行代碼就能實現(xiàn):
import?numpy?as?np from?empyrical?import?max_drawdown returns = np.array([.01,?.02,?.03,?-.4,?-.06,?-.02]) # 計算最大回撤 max_drawdown(returns) # 結(jié)果:-0.4472800000000001
同樣地,如果你需要計算alpha和beta指標(biāo):
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) # 結(jié)果:-0.7960672549836803 1.1243025418474892
如果你想要計算夏普率,同樣也是一行代碼就能解決,只不過你需要注意這幾個參數(shù)的意義:
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) # 結(jié)果:-6.7377339531573535
各個參數(shù)的意義如下:
參數(shù) | 數(shù)據(jù)類型 | 意義 |
---|---|---|
returns | pandas.Series | 策略的日回報,非累積。 |
risk_free | float | 本周期內(nèi)的無風(fēng)險利率 |
period | str, optional | 確定回報數(shù)據(jù)的周期,默認(rèn)為天。 |
annualization | int, optional | 交易日總數(shù)(用于計算年化) 如果是daily,則默認(rèn)為252個交易日。 |
3.更多的指標(biāo)
Empyrical 能提供使用的指標(biāo)非常多,這里就不一一介紹了,基本上用法都和夏普率的計算方法差不多,這里介紹他們的方法和參數(shù)。
3.1 omega_ratio
empyrical.omega_ratio(returns, risk_free=0.0, required_return=0.0, annualization=252)
參數(shù) | 數(shù)據(jù)類型 | 意義 |
---|---|---|
returns | pandas.Series | 策略的日回報,非累積。 |
risk_free | float | 本周期內(nèi)的無風(fēng)險利率 |
required_return | float, optional | 投資者可接受的最低回報。 |
annualization | int, optional | 交易日總數(shù)(用于計算年化) 如果是daily,則默認(rèn)為252個交易日。 |
3.2 calmar_ratio
empyrical.calmar_ratio(returns, period='daily', annualization=None)
參數(shù) | 數(shù)據(jù)類型 | 意義 |
---|---|---|
returns | pandas.Series | 策略的日回報,非累積。 |
period | str, optional | 確定回報數(shù)據(jù)的周期,默認(rèn)為天。 |
annualization | int, optional | 交易日總數(shù)(用于計算年化)。如果是daily,則默認(rèn)為252個交易日。 |
3.3 sortino_ratio
empyrical.sortino_ratio(returns, required_return=0, period='daily', annualization=None, _downside_risk=None)
參數(shù) | 數(shù)據(jù)類型 | 意義 |
---|---|---|
returns | pandas.Series | 策略的日回報,非累積。 |
required_return | float | 最小投資回報 |
period | str, optional | 確定回報數(shù)據(jù)的周期,默認(rèn)為天。 |
annualization | int, optional | 交易日總數(shù)(用于計算年化)。如果是daily,則默認(rèn)為252個交易日。 |
_downside_risk | float, optional | 給定輸入的下跌風(fēng)險。如果沒有提供則自動計算 |
更多的指標(biāo)及其說明,請查看empyrical源代碼的stats.py文件,里面還包含了所有指標(biāo)的計算邏輯,如果你想了解每個指標(biāo)的計算方法,可以查看這個文件進(jìn)行學(xué)習(xí)
到此這篇關(guān)于Python+Empyrical實現(xiàn)計算風(fēng)險指標(biāo)的文章就介紹到這了,更多相關(guān)Python Empyrical計算風(fēng)險指標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Logging 日志記錄入門學(xué)習(xí)
這篇文章主要介紹了Python Logging 日志記錄入門學(xué)習(xí),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06virtualenv隔離Python環(huán)境的問題解析
virtualenv為應(yīng)用提供了隔離的Python運(yùn)行環(huán)境,解決了不同應(yīng)用間多版本的沖突問題,這篇文章主要介紹了virtualenv隔離Python環(huán)境,需要的朋友可以參考下2022-06-06音頻處理 windows10下python三方庫librosa安裝教程
這篇文章主要介紹了音頻處理 windows10下python三方庫librosa安裝方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Keras 中Leaky ReLU等高級激活函數(shù)的用法
這篇文章主要介紹了Keras 中Leaky ReLU等高級激活函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07pandas DataFrame創(chuàng)建方法的方式
這篇文章主要介紹了pandas DataFrame創(chuàng)建方法的方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08python代碼實現(xiàn)小程序登錄流程時序總結(jié)
這篇文章主要為大家介紹了python代碼實現(xiàn)小程序的登錄案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04