私はこのローリング累積製品は
DATE TICKER RETURN_DATA
2010-01-01 xxx 0.05
2010-01-01 yyy 0.01
2010-01-02 xxx 0.02
2010-01-02 yyy 0.08
.....
2010-01-29 xxx 0.11
2010-01-29 yyy 0.01
のように見えるデータ(データフレームと呼ばれるリターンが)私は何をしようとすると、4(N)-weeksローリングリターンを計算することである必要があります。
私はwindow_len = 28日、この作品が、私はちょうど私はむしろwindow_len =整数を持つよりも、時間デルタ上で、これをロールバックする必要が発見されたこの
def rolling_fct(returns, window_len):
return returns.groupby('TICKER')['RETURN_DATA'].rolling(window=window_len).apply(lambda x: np.prod(1+x)-1)
を実施しました。問題は私が祝日などを扱っていることです、私の窓の長さは固定されていません。
私は長さではなく時間デルタで同じローリングロジックを探しています。
'window_len = some_integer'を指定する代わりに、 'window_len =' 28D''のようなものが必要でしょうか? – Uvar
はい、データポイントの数で実行するのではなく、その期間にデータポイントの数に関係なく、時間ウィンドウをロールオーバーしたいと思います。例4週は28日、20営業日に相当するはずですが、私が祝祭日を持っていれば、私は19のエントリで終わるかもしれません。私は堅牢なソリューションを探しています。 – ThatQuantDude
私はあなたが何を意味しているのか知っていますが、あなたは '28D 'でそれを実行しようとしましたか?インデックスに4週間分の時間を基準にしたローリングウィンドウが表示されます。これには、休暇のために不足しているエントリに対する堅牢性も含まれます。日付情報に関しては、最初から存在していましたが、日付を保持するために明示的に "as_index = False"を指定する必要があります。 – Uvar