def future_log_returns_l2(data, window, do_raise=True): if 'log_returns' not in data.columns: add_log_returns(data) l2 = lambda x: np.sign(x) * x**2 ssqrt = lambda x: np.sign(x) * np.sqrt(np.abs(x)) data['log_returns_l2_{}w+'.format(window)] = ssqrt(np.concatenate([pd.rolling_mean(l2(data['log_returns'].values[::-1]), window=window, min_periods=0)[:0:-1], [0]])) return ['log_returns_l2_{}w+'.format(window)]
def future_log_returns(data, window, do_raise=True): if 'log_returns' not in data.columns: add_log_returns(data) data['log_returns_{}w+'.format(window)] = np.concatenate([ (pd.rolling_mean(data['log_returns'].values[::-1], window=window, min_periods=0))[:0:-1], [0] ]) return ['log_returns_{}w+'.format(window)]
def log_returns_ma(data, window, do_raise=True): if 'log_returns' not in data.columns: add_log_returns(data) data['log_returns_{}w-'.format(window)] = pd.rolling_mean(data['log_returns'], window=window, min_periods=0) return ['log_returns_{}w-'.format(window)]