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