У меня есть ежедневный запас, который оптимизируется, скажем, алгоритмом минимальной дисперсии.Это дает мне вывод ежедневных оптимальных весов.Если я каждый день перебалансирую портфель с новыми оптимальными весами, я просто отстаю от доходности на один период и умножаю оптимальные веса * доходности.
Однако я не совсем понимаю, как проверить ежемесячную перебалансировку.В основном я хочу сохранить оптимизацию с ежедневными доходами, но использовать только оптимальные веса, рассчитанные в конце месяца на следующие 30 дней.
Как это обычно делается?Если я установлю следующие 30-дневные веса, равные оптимальному весу из последнего дня предыдущего месяца, и умножим их на доходность, разве это не какой-то вид ежедневного перебалансирования, но только со старыми весами?
Iя совсем запутался, как это сделать.Ниже приведен пример того, как могут выглядеть данные для 1-го временного ряда запасов. Оптимальные дневные веса.
import numpy as np
import numpy.random as nrand
import pandas as pd
date = pd.date_range(start='12/31/2017', periods=60)
returns = pd.DataFrame(nrand.uniform(-0.1, 0.1, 60))
weights = pd.DataFrame(nrand.uniform(0, 1, 60))
weights_returns = pd.concat([returns,weights],axis=1)
weights_returns["date"] = date
weights_returns = weights_returns.set_index("date")
weights_returns.columns.values[0] = "weights"
weights_returns.columns.values[1] = "returns"
print(weights_returns)