INNER CODE UNIT · Python
tracking_error
dmarienko/QuantTradingResearch · models/helpers.py:13
def tracking_error(benchmark, tracker, mode='returns'):
"""
Tracking error in percents
"""
# we want to compare only common date intervals so bit filtering here
if mode.startswith('price'):
# converting to returns
f = pd.concat((benchmark.pct_change(), tracker.pct_change()), axis=1, keys=['X', 'Y']).dropna()
else:
# data already contains returns so not need to convert it
f = pd.concat((benchmark, tracker), axis=1, keys=['X', 'Y']).dropna()
return 100 * np.std(f.X - f.Y, ddof=1)
def prices_to_returns(prices):
return prices.pct_change()[1:] # drop first inf