你知道茴字的三种写法吗?
import pandas as pd
import numpy as np
#最大回撤
a=[1,3,6,8,9,9,13,15,20,25,24,20,24,23,26]
hcv=[]
for i in range(len(a)):
maxa=max(a[:i+1])
hc=1-a[i]/maxa
hcv.append(hc)
#print(hcv)
print('最大回撤率:%s' % max(hcv))
def maxdrawdown(arr):
#最大回撤
i = np.argmax((np.maximum.accumulate(arr) - arr)/np.maximum.accumulate(arr)) # end of the period
j = np.argmax(arr[:i]) # start of period
return (1-arr[i]/arr[j])
def mdd_dura(nav):
#最大回撤持续期
a = nav.values
duration = 0
maxd = 0
enddt = np.argmax((np.maximum.accumulate(a) - a)/np.maximum.accumulate(a)) #最大回撤结束日(回撤期最低点日期)
startdt = np.argmax(a[:enddt]) #最大回撤开始日
timedelta = enddt - startdt #回撤期最高点到最低点时间
print('最大回撤开始时间%s,最大回撤结束时间%s,'%(nav.index[startdt],nav.index[enddt]))
for i in range(len(a)):
maxa = max(a[:i+1])
if a[i]<maxa:
duration = duration + 1
if maxd<duration:
maxd = duration#回撤开始到再创新高时间
else:
duration = 0
restore = maxd - timedelta #回撤期最低点到创新高时间
print('最大回撤持续期%d,最大回撤恢复期%d,最大回撤整段%d'%(timedelta,restore,maxd))
b = mdd_dura(nav) ```