I try do the following:
class Volatility(CustomFactor):
inputs = [USEquityPricing.close]
window_length = 20
def compute(self, today, assets, data, out, close):
price_history = data.history(assets, "price", window_length, "1d")[0:-1]
# Compute daily returns
daily_returns = price_history.pct_change().dropna().values
# Compute daily volatility
historical_vol_daily = np.std(daily_returns,axis=0)
# Convert daily volatility to annual volatility, assuming 252 trading days
historical_vol_annually = historical_vol_daily*math.sqrt(252)
# Return estimate of annual volatility
out[:] = 100*historical_vol_annually
But seems it doesn't work. Any idea?
Cheers
Thomas