我试图计算一个股票系列的资金减少的持续时间和恢复的时间。我可以计算出提款额,但我很难计算每次提款的持续时间和恢复时间。到目前为止,我有这个代码:
import pandas as pd
import pickle
import xlrd
import numpy as np
np.random.seed(0)
df = pd.Series(np.random.randn(2500)*0.7+0.05, index=pd.date_range('1/1/2000', periods=2500, freq='D'))
df= 100*(1+df/100).cumprod()
df=pd.DataFrame(df)
df.columns = ['close']
df['ret'] = df.close/df.close[0]
df['modMax'] = df.ret.cummax()
df['modDD'] = 1-df.ret.div(df['modMax'])
groups = df.groupby(df['modMax'])
dd = groups['modMax','modDD'].apply(lambda g: g[g['modDD'] == g['modDD'].max()])
top10dd = dd.sort_values('modDD', ascending=False).head(10)
top10dd
这是系列赛中最高的10支球队,但我也希望能有一支球队的持续时间和恢复的时间。在
我解决问题的方法如下:
生成此表:
相关问题 更多 >
编程相关推荐