# arr是乙個淨值的np.ndarray
i = np.argmax(
(np.maximum.acumulate(arr) - arr) / np.maximum.acculate(arr))
if i == 0:
max_draw_dowm = 0
else:
j = np.maximum(arr[:i]) # 開始位置
max_draw_down = (arr[j] - arr[i]) / arr[j]
# i為回撤結束位置 j為回撤開始位置
# 可以用動態規劃解決最小子列和的思路求出最大回撤 時間複雜度為o(n)
# net_value是乙個淨值的pd.series 按照時間排序 較早的時間在前面
daily_return = net_value.pct_change()
# daily_return是乙個日收益率的pd.series 按照時間排序 較早的時間在前面
_net_value = (daily_return + 1).cumprod() # 這時候第乙個值還不是1
net_value = _net_value / _net_value.iloc[0]
# net_value是乙個淨值的pd.series 按照時間排序 較早的時間在前面
cum_return = net_value / net_value.iloc[0] - 1
numpy的一些用法
安裝numpy windows安裝pip即可,具體方法參考pip官網 安裝方法 pip install numpy 1.14.3 cp27 none win amd64.whl 功能介紹 ndarray ndarray具有多維性。ndarray的元素可以通過索引的方式進行訪問。在numpy中,nda...
pandas的一些用法
讀取以 t為分隔符的不帶volume的資料names a b c d e f g df pd.read table filename sep t names names 刪除df中某一行df.drop labels none axis 0,index none columns none level ...
pandas的一些誤區
data frame pd.dataframe data in 13 frame.iloc 6 1,asf 201 這一行會報錯indexerror single positional indexer is out of bounds in 14 frame.loc 6 1,hh 612 正確新增一...