python计算最大回撤_Python进阶量化交易场外篇3——最大回撤评价策略风险
新年伊始,很榮幸筆者的《教你用 Python 進(jìn)階量化交易》專欄在慕課專欄板塊上線了,歡迎大家訂閱!為了能夠提供給大家更輕松的學(xué)習(xí)過程,筆者在專欄內(nèi)容之外會(huì)陸續(xù)推出一些手記來輔助同學(xué)們學(xué)習(xí)本專欄內(nèi)容,因此同學(xué)們無需擔(dān)心專欄內(nèi)容在學(xué)習(xí)上的困難,更多的是明確自己學(xué)習(xí)的目的即可。當(dāng)然筆者也歡迎同學(xué)們踴躍留言,說出自己想擴(kuò)展的知識(shí)點(diǎn),筆者會(huì)根據(jù)同學(xué)們的意愿選擇性的推出一些內(nèi)容。
本次場外篇筆者在專欄《18、股票交易數(shù)據(jù)可視化:買賣區(qū)間下策略收益繪制》的基礎(chǔ)上對(duì)策略的最大回撤指標(biāo)做一定的擴(kuò)展介紹。最大回撤屬于判斷策略風(fēng)險(xiǎn)高低的指標(biāo),用來描述買入股票后,在策略出現(xiàn)最糟糕的情況下會(huì)損失多少錢,這也直接關(guān)系到《21、股票交易策略開發(fā):ATR止盈止損風(fēng)險(xiǎn)策略》小節(jié)中對(duì)于風(fēng)險(xiǎn)策略中止盈止損因子的設(shè)定。
我們知道投資是有風(fēng)險(xiǎn)的,那么如何去衡量這個(gè)風(fēng)險(xiǎn)呢?最大回撤率就是一種直觀的將風(fēng)險(xiǎn)切實(shí)量化的指標(biāo)。最大回撤率計(jì)算公式:max(1-當(dāng)日收盤價(jià)/當(dāng)日之前最高價(jià))*100%【(最高價(jià)-最低價(jià))/最高價(jià)】。舉個(gè)例子,在股票最高價(jià)2元買入,近半年內(nèi),股價(jià)下跌到最低點(diǎn)1.6元,最大虧損0.4元,那么這近半年最大回撤率=1-1.6/2×100%,結(jié)果是20%。顯而易見,最大回撤率越小越好,因?yàn)榛爻放c風(fēng)險(xiǎn)成正比,回撤越大,風(fēng)險(xiǎn)也就越高。最大回撤的概念雖然直觀,但在程序中到底應(yīng)該怎么實(shí)現(xiàn)計(jì)算呢?
我們延續(xù)專欄《18、股票交易數(shù)據(jù)可視化:買賣區(qū)間下策略收益繪制》的內(nèi)容,計(jì)算浙大網(wǎng)新股價(jià)的最大回撤率和應(yīng)用策略后資金曲線的最大回撤率。以計(jì)算資金曲線最大回撤率為例,首先使用expanding()?計(jì)算資金曲線的滾動(dòng)最大值,也就是截至當(dāng)前時(shí)間,資金曲線的最大值,圖中的橙色曲線所示。
接著,將資金曲線與資金曲線滾動(dòng)最大值矢量相除,即得到回撤后資金剩余的百分比,也就是資金曲線在滾動(dòng)最大值之后剩余資金的百分比,對(duì)剩余資金百分比從小到大排序,那么第一行就包含了回撤后資金剩余百分比的最小值,1-資金剩余百分比最小值即為資金曲線最大回撤率。
以下為計(jì)算資金曲線最大回撤率實(shí)現(xiàn)代碼,同理計(jì)算股價(jià)曲線最大回撤率與此類同:
#expanding()計(jì)算資金曲線當(dāng)前的滾動(dòng)最高值
stock_df['max_total'] = stock_df['total'].expanding().max()
#計(jì)算資金曲線在滾動(dòng)最高值之后所回撤的百分比
stock_df['per_total'] = stock_df['total']/stock_df['max_total']
min_point_total = stock_df.sort_values(by=['per_total']).iloc[[0], stock_df.columns.get_loc('per_total')]
max_point_total = stock_df[stock_df.index <= min_point_total.index[0]].sort_values\
(by=['total'],ascending=False).iloc[[0],stock_df.columns.get_loc('total')]
print("最大資金回撤%5.2f%%從%s開始至%s結(jié)束"%((1-min_point_total.values),\
max_point_total.index[0],min_point_total.index[0]))
最后分別打印出浙大網(wǎng)新股價(jià)和資金曲線最大回撤率,以及時(shí)間點(diǎn),并且在圖形上標(biāo)注。更多的量化交易內(nèi)容歡迎大家訂閱專欄閱讀!!
最大股價(jià)回撤 0.53%從2018-04-24 00:00:00開始至2018-10-16 00:00:00結(jié)束
最大資金回撤 0.15%從2018-05-23 00:00:00開始至2018-10-08 00:00:00結(jié)束
更多python量化交易內(nèi)容互動(dòng)請(qǐng)加微信公眾號(hào):PythonQT-YuanXiao
歡迎訂閱量化交易課程:[鏈接地址]
總結(jié)
以上是生活随笔為你收集整理的python计算最大回撤_Python进阶量化交易场外篇3——最大回撤评价策略风险的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python读取文件r_python 文
- 下一篇: 根据测试路径自动生成测试用例_自拍教程7