夏普比率和最大回撤到底怎麼計算?
我知道公式是怎麼回事。。。
如題,我給一個極端例子,三個交易日。我九月一日一大早進場,帶了100萬,九月1號虧了99萬9千9百9十9。九月二號一大早我就剩1塊錢了,二號賺了一塊錢,變成了兩塊。九月三號我又賺了一塊錢,變成了三塊。九月三號收盤時決定退市。
上面一個極端情況,最大回撤和夏普比率怎麼算?感謝各位高手指導我這個入門者。。。
這個問題問的非常好,這是是夏普值計算中最容易出現的誤區之一。
一句話解釋就是:
同一個資產,不同周期頻率收益率,算出來的夏普值,根本就不是一回事!
比如用每日的收益率算夏普值,和用每年的收益率算夏普,就不是一回事。而且在計算的時候,收益率和波動率周期是要一致的,你不能用日線數據算收益率,然後用周線算波動率。
在題主的問題裡面,其實是把周期弄混了,如果你要按三天一個樣本來算收益,那麼必須也要按三天一個樣本的頻率來算波動率,然而,這裡按三天周期的話,就只有一個樣本,是無法計算波動率的。所以只能按每日的收益來進行計算。
下面是最近寫的一篇詳細解釋文,用了一個實際例子來說明(Python語言)。
---------------------------------------------------------我是分割線---------------------------------------------------------
衡量基金收益的一個有名的標準就是夏普比率(Sharpe ratio)。有投資常識的人都明白,投資光看收益是不夠的,還要看承受的風險,也就是收益風險比。夏普比率描述的正是這個概念,即每承受一單位的總風險,會產生多少超額的報酬。用數學公式描述就是:
其中,
:投資組合預期收益率
:無風險利率
:投資組合的波動率(亦即投資組合的風險)
上面三個值一般是指年化後的值,比如預期收益率是指預期年化收益率。
需要注意的是,雖然公式看起來很簡單,計算起來其實並不容易。原因就是預期收益率和波動率其實是無法準確得知的。我們只能用統計方法去估計這兩個值。估計的方法有很多種,最簡單的方法就是計算歷史年化收益率和其標準差。
然而,即使是同一種方法,針對不同周期算出來的結果也可能差別很大,從而產生誤導。這裡舉個例子來說明一下。我們先生成一組收益率數據:
import pandas as pd
import numpy as np
year_list=[]
month_list=[]
rtn_list=[]
# 生成對數收益率,以半年為周期
for year in range(2006,2017):
for month in [6,12]:
year_list.append(year)
month_list.append(month)
rtn=round((-1)**(month/6)*(month/6/10),3)+(np.random.random()-0.5)*0.1
rtn_list.append(rtn)
# 生成半年為周期的收益率df
df=pd.DataFrame()
df["year"]=year_list
df["month"]=month_list
df["rtn"]=rtn_list
這組收益率是對數收益率,。從2006年到2016年,以半年為頻率,總共22個數據點。
計算其夏普比率:
round(df["rtn"].mean()/df["rtn"].std()*np.sqrt(2),3)
結果是:0.495
由於我們要計算的是年化的值,所以收益率要乘以2,波動率要乘以(一年是半年的2倍)。
現在我們把數據變換成以年為頻率的收益率。使用groupby方法:
# 生成每年的收益數據df_year(對數收益率可以直接相加)
df_year=df.groupby(["year"]).sum()
del df_year["month"]
計算其夏普比率:
round(df_year["rtn"].mean()/df_year["rtn"].std(),3)
得到的結果是:2.205
可以看到,同樣的收益率數據,使用不同周期,計算出來的結果差距非常大。一般來說,周期頻率越小,越難以保持收益穩定,每天都盈利比每年都盈利困難太多了。我們可以想像一個極端情況,10年中,每年的收益都是10%,夏普值就是無窮大,因為收益完全穩定,沒有任何波動,然而每月的收益又不完全相同,所以從每月的收益率來看,夏普值並不是無窮大。
所以在看Sharpe值的時候,一定要留意這個Sharpe值的計算方式,否則很容易產生誤判。
自己計算的話,並沒有強行的標準,只是有兩點要注意。
一是要結合自己的實際,比如高頻策略當然得用日收益率,每周調倉的策略可以用周收益率。二是對比策略優劣的時候,周期要一致,比如對比每日調倉的策略和每月調倉的策略,一定要換算到同一個周期上,才有可比性。
微信公眾號:小牛八卦
關注小牛八卦,學習智能工具。
回答的朋友很多,但都沒有回答指標詳細的計算過程,尤其是將公式列舉出來。
夏普比率的計算公式如下:
最大回撤的計算公式如下:
詳細說明請參考:[量化學堂-策略開發]策略回測結果指標詳解
sharpe就每天受益平均下除以std啊最大回撤就是最低點除以之前的最高減去1啊
詳細可見https://app.wmcloud.com/mercury/help/faq/
- Annualized Returns: 策略年化收益率。表示投資期限為一年的預期收益率。具體計算方式為 (策略最終價值 / 策略初始價值 - 1) / 回測交易日數量 × 250
- Benchmark Returns:參考標準年化收益率。具體計算方式為 (參考標準最終指數 / 參考標準初始指數 - 1) / 回測交易日數量 × 250 。
- Alpha:阿爾法。具體計算方式為 (策略年化收益 - 無風險收益) - beta × (參考標準年化收益 - 無風險收益),這裡的無風險收益指的是中國固定利率國債收益率曲線上10年期國債的年化到期收益率。
- Beta:貝塔。具體計算方法為 策略每日收益與參考標準每日收益的協方差 / 參考標準每日收益的方差 。
- Sharpe Ratio:夏普比率。表示每承受一單位總風險,會產生多少的超額報酬。具體計算方法為 (策略年化收益率 - 回測起始交易日的無風險利率) / 策略收益波動率 。
- Volatility:策略收益波動率。用來測量資產的風險性。具體計算方法為 策略每日收益的年化標準差 。
- Information Ratio:信息比率。衡量超額風險帶來的超額收益。具體計算方法為 (策略每日收益 - 參考標準每日收益)的年化均值 / 年化標準差 。
- Max Drawdown:最大回撤。描述策略可能出現的最糟糕的情況。具體計算方法為 max(1 - 策略當日價值 / 當日之前虛擬賬戶最高價值)
你的迷惑主要來自於收益率怎麼算吧。
如果按投資期兩端相減再年化,結果是-1。如果日收益年化,那就是(-1+1+0.5)/3的年化,這樣是正的。依我看應該按後者來,前者的計算方法平滑掉了波動率偏差。和Ito積分裡面的情況有點像。要看什麼類型的策略,假如買期權,一天虧完是有可能的,但是一天賺翻倍也是有的。要是你的信號虧完第一次,賺翻倍10次,還是好信號。(當然虧完是資金分配和止損不對,不過信號是好信號)如有問題,歡迎私信騷擾!
-----------------------------------------------------------------------------------------------------------------------
一、夏普比率的計算
夏普比例(The
Sharpe ratio)=(預期收益率 - 無風險利率)/投資組合標準差 ,也叫報酬與波動性比率,可能是最常用的投資組合管理度量標準。它採用的方法是,組合中超過無風險利率的那部分收益要用投資組合的標準差來衡量。假設,投資者應該能夠投資於政府債券並獲得無風險收益率,那麼夏普比率要決定的是超
過這個最小無風險收益的那一部分的風險成分。在投資組合的風險回報理論框架中,其假設是承擔越高的風險意味著應該產生更高的收益。
舉例而言,假如國債的回報是3%,而您的投資組合預期回報是15%,您的投資組合的標準差是6%,那麼用15%-3%,可以得出12%(代表您超出無風險投資的回報),再用12%/6%=2,代表投資者風險每增長1%,換來的是2%的多餘收益。需要注意的是:夏普比率沒有基準點,因此其大小本身沒有意義,只有在與其他組合的比較中才有價值。
-----------------------------------------------------------------------------------------------------------------------
二、阿爾法與夏普指數、波動性、信息係數和投資廣度的關係
投資學管理理論中的一個公式:
其中,以上參數依次為信息係數, 為波動性,為投資廣度。
上面公式表明,如果要想獲得市場回報需要做到三件事:第一,判斷股票的升跌標準,但是判斷的准不一定能賺到錢,因為雖然判斷準確,但是升跌的幅度還不足以覆蓋交易成本,還是無法獲取收益。第二,需要市場的波動性,只有市場不斷地存在波動性,才能賺取高額利潤。第三,市場上必須有不同的品種,不同的策略,同時投資於不同的是時段才能賺到錢,不然可能造成無法規避的風險。
夏普指數非常重要,能夠由不同的方法來得到。夏普指數是對於你本身投資策略公平的判斷,所以夏普指數對於阿爾法來說更公平。
投資廣度有很多種不同的測量方式,如果投資換手的頻率相同,那麼投資的標的的數目就是指能覆蓋多少只股票、多少品種,這實際上跟投資的廣度有關。如果投資的標的是相同的,比如你投資的是滬深300指數,那麼量化投資組合變化的次數就代表了投資的廣度,頻率越高投資的廣度越大。投資的深度不容易簡單測量,可以用一個近似的方法來測量,很多時候都用「命中率」來表示,也就是說,買了100隻股票,到底有多少只在漲。
要想得到一個比較高的夏普指數,可以用較低的投資深度和比較大的投資廣度。也就是說,股票命中率比較高,但投資的股票比較少,即投資的股票少而精,當然也可以投資的股票非常多,但股票的命中率不是很高。對量化投資而言,基本面投資是一個高投資深度,低投資廣度的投資方式,做股票投資的時候可以做得非常精緻非常好,選股票時可以一隻一隻做縱深分析,分析的非常准,但是由於深度的股票分析消耗人力物力,需要很多的信息,因此很難投資較多的股票。像蓋摩天大樓一樣,可以蓋的很漂亮,蓋很多這樣的大廈需要非常高的代價,有限的資金是不能做到的。量化投資就像建築平房區一樣,本身它是低投資深度、高投資廣度的的投資方式,也就是說投資的時候股票覆蓋的很廣,但是選取的股票不一定很准,需要通過大量投資的方式來獲取利潤。
表一
國際上幾個著名投資家的投資深度和廣度的實例
在表一中,第一個是基本面的代表人物—巴菲特,他在1980-2003年實現了將近30%的年化回報,波動率是20%左右,夏普指數是1.5,但是他並沒有採取量化投資策略。可以看到,他投資的廣度很小,只有20,也就是說他的投資組合里最多只有20隻左右的股票。但他的投資深度非常大,IC值達到了34%,換算成命中率為67%,也就是平均而言巴菲特買3隻股票會有兩隻在漲,所以他是靠非常精準的投資深度進行投資,他是基本面投資的一個代表人物。
第二個是索羅斯,索羅斯的投資策略實際上是基於量化和基本面之間,他的投資回報也是相當不錯的,大約30%。但是他本身投資的廣度也相對較廣,將近會投資100隻左右的股票或品種,投資深度趕不上巴菲特,只有20%左右,命中率是60%左右,但是他憑藉中等的投資廣度和投資深度實現了30%的回報。
第三個是林奇,也是非常著名的基金經理,他投資的回報率不如巴菲特和索羅斯,雖然他策略的命中率和索羅斯差不多,但是他投資廣度比較窄。
最後,值得一提的是,量化投資策略的代表人物,西蒙斯,他的投資深度只有2.6%,命中率51%左右,也就是平均而言,買100隻股票只有51隻會漲,剛超過半數。但是他的投資廣度非常廣,他的組合可以覆蓋全球12000隻股票,而且策略也是高頻的策略,他的投資回報也達到30%,夏普比率2.8,遠遠超過其他投資人。所以他的經驗告訴我們:量化投資是一個高投資廣度、低投資深度的方式,通過大量進行廣泛的投資獲得利潤。
-----------------------------------------------------------------------------------------------------------------------
三、最大回撤率
最大回撤率:在選定周期內任一歷史時點往後推,產品凈值走到最低點時的收益率回撤幅度的最大值。最大回撤用來描述描述任一投資者可能面臨的的最大虧損。最大回撤是一個重要的風險指標,對於對沖基金和數量化策略交易,該指標比波動率還重要。
公式可以這樣表達:D為某一天的凈值,i為某一天,j為i後的某一天,Di為第i天的產品凈值,Dj則是Di後面某一天的凈值。drawdown=max(Di-Dj)/Di,其實就是對每一個凈值進行回撤率求值,然後找出最大的。可以使用程序實現。
需要注意的是:一個基金產品用歷史絕對收益衡量,它的初始認購者一直持有或許是賺錢的,但是在該私募基金表現最優異時候認購的投資者卻不一定賺錢,還甚至有可能巨虧。我們可以舉個例來說。以公募基金的標杆——王亞偉執掌時期的華夏大盤為例。
從理性的數據來說,這個基金是目前為止中國公募基金給投資人回報最高的、累計凈值最高的。但是,它的最大回撤達到了45%,它在08年、2011年的回撤分別是45%(累計凈值從8塊到4塊5)、25%(累計凈值從14塊到10塊5)。
更多詳情見漫談「最大回撤」
前面給大家講了夏普比率和最大回撤的概念及計算,下面附上我在雪球上跑的組合收益曲線。
圖2智能理財【Alpha策略歷史收益曲線】
大家也可以看出,組合的收益在一定程度上是優於大盤的,同時夏普指數超過了大盤,最大回撤也遠小於大盤。如果從長期來看,日積月累的效用會很明顯。
-----------------------------------------------------------------------------------------------------------------
如有疑問,歡迎私信騷擾!
最大回撤
最大回撤就是從一個高點到一個低點最大的下跌幅度,用來描述我們的策略可能出現的最糟糕的情況,衡量了最極端可能的虧損。例如一個策略的最大回撤是50%,那麼你使用這個策略之前就要掂量掂量,自己是否能經受得起50%的下跌。計算公式為:min(賬戶當日價值 / 當日之前賬戶最高價值-1)。夏普比率
理性的投資者將選擇並持有有效的投資組合,即那些在給定的風險水平下使期望回報最大的投資組合,夏普比率就是一個可以同時對收益與風險加以綜合考慮的經典指標,表示每承受一單位風險,會產生多少的超額回報。計算公式為:(賬戶年化收益率-無風險利率)/ 收益波動率。貝塔(beta)值
根據經典的資本資產定價理論(CAPM模型),β係數衡量了資產的回報率對市場變動的敏感程度,代表了該資產的系統性風險,表示策略對大盤的敏感性。計算公式為:賬戶日收益與參考基準日收益的協方差 / 基準日收益的方差。阿爾法(alpha)值
雖然我們的策略會受到大盤的影響,但是每個策略都會有自己市場因素之外的收益,alpha值表示實際風險回報和平均預期風險回報的差額,衡量了投資的非系統性風險。計算公式為:(賬戶年化收益-無風險收益)-beta*(參考基準年化收益-無風險收益)。年化收益(按照複利計算)任何收益都應該轉換成年化收益,以進行比較。股神巴菲特投資幾十年以來的年化收益是20%左右。美國股市百年來年化收益大概是10%左右。計算公式為:(賬戶最終價值/賬戶初始價值)^(250/回測期間總天數)-1其實你的問題並不難回答,關鍵是很多人沒有搞明白一些核心概念。一、最大回撤MDD1、最大回撤MDD等於回撤的最大值,也就是max(DD)2、回撤等於每個觀測點距離前期最大值的距離你的問題中,就是,1bw-1,1bw-2,1bw-3其中的最大值就是MDD,其實就是第一天的那個值,1bw-1二、夏普比率夏普比率是個統計值,千萬不能用總收益率的年化處理做分子,而是用統計概念。如果忽略利率,就是 平均收益/收益波動率,注意這裡有時間區間概念,如果分子是日收益率均值,分母就是日收益率標準差,如果是月收益率均值,分母就是月收益率標準差,這個夏普值也就是對應區間的夏普值。如果要在不同區間之間轉化,比如日夏普到年夏普,轉化方法是日夏普乘以根號下255,為什麼呢?因為幾何布朗運動按照時間累積期望值和Variation,或者variance,對於標準差就需要開根號。你的日收益率是1/1bw-1, 100%,50%,然後三個值求均值,求波動率,得到日夏普率,要計算年夏普,就乘以根號下255
我覺得這個帖子不錯,可以收藏,所以我也來豐富一下各種產品分析的風險收益比類型的指標。
基金評價指標
基金收益指標:總回報率
基金風險指標:標準差,夏普比率,索提諾比率
基金的相對表現:阿爾法係數(α),貝塔係數(β),R平方(R-squared)
u 總回報率
可計算一周,一個月,三個月,六個月,最近一年,最近兩年,最近五年,最近十年,今年以來,設立以來的回報率。
如果計算周期大於一年的總彙報率進行年度化處理,計算公式為:
(參考「晨星」晨星網--照亮投資人生 國際權威基金評級機構基金摘要)
u 索提諾比率(Sortino Ratio)
索提諾比率與夏普比率類似,所不同的是它區分了波動的好壞,因此在計算波動率時它所採用的不是標準差,而是下行標準差。這其中的隱含條件是投資組合的上漲(正回報率)符合投資人的需求,不應計入風險調整。和夏普比率類似,這一比率越高,表明基金承擔相同單位下行風險能獲得更高的超額回報率(Excess Returns)。索提諾比率可以看做是夏普比率在衡量對沖基金/私募基金時的一種修正方式。
和夏普比率相比,索提諾比率這一衡量標準更符合那些對資產價值下跌較為敏感的投資者。
u 夏普比率晨星平台上的無風險收益率為國內一年期銀行定期存款利率。
標準差
主要根據股價或基金凈值在一段時間波動情況計算得來,廣泛用於股票,基金投資風險的衡量。標準差反映的是基金總回報率的波動幅度,其數值越大,表明波動越厲害,風險程度也越大。
其中,周期頻率為月度。
注意
sharp ratio里一定要注意分子分母周期的一致性。比如基金產品很多凈值是一周進行一次更新,所以很多無風險利率,收益率的要使用周的。收益率的計算比較簡單為: 周盈利/周初始資金 。 一般國內無風年利率普遍習採用一年期存款利率,約為3%,一年有52周,則周化無風險利率為 (1+3%)^(1/52)-1 為0.0569%。標準差也用當周收益率跟歷史周收益均值進行計算。
u 貝塔係數(β)
貝塔係數衡量基金收益相對於業績評價基準收益的總體波動性,是一個相對指標。β越高,意味著基金相對於業績評價基準的波動性越大。β大於1 ,則基金的波動性大於業績評價基準的波動性。反之亦然。如果β為1 ,則市場上漲10%,基金上漲10%;市場下滑10%,基金相應下滑10%。如果β為 1.1,市場上漲10%時,基金上漲11%, ;市場下滑10%時,基金下滑11% 。如果β為 0.9, 市場上漲10%時,基金上漲9% ;市場下滑10%時,基金下滑9% 。
u 阿爾法係數(α)
阿爾法係數是基金的實際收益和按照β係數計算的期望收益之間的差額。
其計算方法如下:超額收益是基金的收益減去無風險投資收益(在中國為1年期銀行定期存款收益);
期望收益是貝塔係數β和市場收益的乘積,反映基金由於市場整體變動而獲得的收益;
α係數=超額收益—期望收益
高貝塔係數基金的收益,往往是大盤上漲帶來的,不能體現基金經理的能力。所以引進了阿爾法係數。阿爾法係數越高,基金經理的操盤能力也就越強。
u R平方(R-squared)
是反映業績基準的變動對基金表現的影響,影響程度以0至100計。如果R平方值等於100 ,表示基金回報的變動完全由業績基準的變動所致;若R平方值等於35,即35%的基金回報可歸因於業績基準的變動。簡言之,R平方值愈低,由業績基準變動導致的基金業績的變動便愈少。此外,R平方也可用來確定貝塔係數(β)或阿爾法係數(α)的準確性。一般而言,基金的R平方值愈高,其兩個係數的準確性便愈高。
按照日度計算收益和凈值,結果如下:
所以,
夏普比率 = avg(-0.999999, 1, 0.5) / std(-0.999999, 1, 0.5) = 0.16;
最大回撤 = -0.999999,即當前最低點與以前最高點差的百分比。
基金較高的凈值增長率可能是在承受較高風險的情況下取得的,因此僅僅根據凈值增長率來評價基金的業績表現並不全面,衡量基金表現必須兼顧收益和風險兩個方面,而夏普比率就是一個可以同時對收益與風險加以綜合考慮的指標。
事實上,早在1950年代,有人提出用回報期望和波動性的比例作為衡量投資機會的指標。而到1966年,學者夏普(William Sharpe)在此基礎上提出了著名的夏普比率(Sharpe Ratio):S=(R–r)/σ。
其中:
R = 投資的回報期望值(平均回報率)
r = 無風險投資的回報率(可理解為投資國債的回報率)
σ= 回報率的標準方差(衡量波動性的最常用統計指標)
夏普比率的計算非常簡單,用基金凈值增長率的平均值減無風險利率再除以基金凈值增長率的標準差就可以得到基金的夏普比率。它反映了單位風險基金凈值增長率超過無風險收益率的程度。如果夏普比率為正值,說明在衡量期內基金的平均凈值增長率超過了無風險利率,在以同期銀行存款利率作為無風險利率的情況下,說明投資基金比銀行存款要好。夏普比率越大,說明基金單位風險所獲得的風險回報越高。
通常我們將無風險利率用國債利率來替代,所以夏普比率 = (平均收益-國債利率)/波動率。通俗來講就是,平均凈收益與平均波動率的比值。(資料來自於博道投資官微)能否貼出最大回撤、sharp ratio、sortino ratio的excel 公式呀
推薦閱讀:
※聯合國的工作經驗是否值得去?
※經營現金流量凈額多年持續大額為正,同時投資現金流量進而多年持續大額為負,很大可能是財務造假嗎?
※財務管理課上為什麼老師說沒有負債的公司是危險的?
※催收貨款如何有效?
※資本支出為什麼包括折舊攤銷?