いくつかのテクニカル指標を作成しようとしている財務データを含む python DataFrame があります。要素ごとに移動するのではなく、移動ウィンドウ関数を使用してプロセスを高速化する方法を見つけようとしています。各インデックスについて、過去 30 日間の最大インデックスを返したいと思います。要素ごとのソリューションを実装しましたが、ご想像のとおり、非常に遅いです。
for s_sym in ls_symbols:
for i in range(refresh, len(ldt_timestamps)):
#Aroon-Up = ((period - Days Since High)/period) x 100 Aroon-Down = ((period - Days Since Low)/peiod) x 100'''
whrmax = df_close[s_sym].ix[ldt_timestamps[i-uplen:i]].idxmax()
maxaway = (df_close[s_sym].ix[whrmax : ldt_timestamps[i-1]]).count()
aroonup = ((uplen - maxaway) / uplen ) * 100
whrmin = df_close[s_sym].ix[ldt_timestamps[i-dnlen:i]].idxmin()
minaway = df_close[s_sym].ix[whrmin : ldt_timestamps[i-1]].count()
aroondn = ((dnlen - minaway) / dnlen ) * 100
カスタム ローリング ウィンドウ関数を作成するにはどうすればよいですか?