3
我正在計算股票系列的下跌時間和恢復時間。我可以計算跌幅,但我正在努力達到每個跌幅的持續時間和恢復時間。到目前爲止,我有這樣的代碼:大熊貓的持續時間縮短
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次最高提款,但我也希望縮編和恢復時間的持續時間。
我不知道你的代碼是如何計算消落 - 也許我們有不同的定義。對於任何系列「ser」,我的最大回撤(實際價格點)爲(ser-ser.expanding().max())。min() – alex314159
dd以百分比計算。 – pdoak
看到這個問題和鏈接的問題http://stackoverflow.com/a/36848867/2336654。這個帖子是關於主動下降的,但是可以通過假設基準收益爲零來應用於絕對下降。 – piRSquared