2016-09-06 8 views
0

В настоящее время я пытаюсь настроить базу данных PSQL для backtest портфеля и задавался вопросом, было ли у кого-то более автоматическое решение для будущих изменений.Backtest with rebalancing - automation

Скажем, у меня есть портфель с запасами A, B и C. Я меняю весы на портфель каждый месяц. Предположим, что в январе 2015 года мои весы составляют А-25%, В-25%, С-40%. Чтобы рассчитать количество акций, которые мне нужны для портфеля в 1000 долларов, я просто делаю вес A * 1000/цена акций A и т. Д. Для B и C. Каждый день я проверяю цены A, B и C и умножаю по количеству акций, чтобы получить стоимость всего портфеля.

В феврале, если я изменю стоимость портфеля до A-25%, B-35%, C-40%, то мне нужно перебалансировать, взяв стоимость портфеля в последний день января и умножить по февральским весам и делению на котировки акций.

Проблема в том, что я хотел бы проверить, что произойдет, если я добавлю в ребалансировку в середине месяца. Я не хочу просто хранить общую стоимость портфеля, так как это может измениться, если я добавлю баланс.

В настоящее время у меня есть процент портфеля за каждый месяц, введенный в базу данных. Каким будет самый простой способ рассчитать суточную стоимость портфеля, при этом корректируя дополнительные перебалансировки?

Лучше ли вставлять строки для каждого дня в месяц, равного количеству акций из последнего перебалансирования? Например, должен ли я иметь только количество акций для каждого перебалансирования, так что в январе 2015 года - по количеству акций каждого, февраль 2015 года - по количеству акций каждого из них. Или должен ли я иметь янв. 1 015 - количество акций каждого, 2 января 2015 года - то же, что и раньше, 3 января 2015 года - то же, что и раньше ... февраль 2015 года - новое количество акций каждого из них. Если вы сделаете это в первом примере, как бы установить условия в SQL, чтобы использовать последнее перебалансирование, но остановитесь при следующем балансировании? Должен ли я просто получить список дат для перебалансировки, а затем цикл через два за один раз с одним в начале и один как дата окончания?

Любая помощь будет принята с благодарностью

+0

Каков ваш точный вопрос? Вы спрашиваете о том, что ** - лучший график для балансировки? Вы спрашиваете о ** как ** рассчитать новое распределение каждого запаса? –

ответ

0

Там будут backtrading инструменты там, такие как Quantconnect/Lean или Quantopian/Zipline даже с использованием современных инструментов Backtesting, это действительно трудно доверять и получить надежное тестирование делать это на DB без моделирования влияния рынка/проскальзывания/комиссии, вероятно, тратит время.

Ребалансировка моего опыта может оказать большое влияние на алгоритм. Специально, если вы моделируете проскальзывание и комиссию.