通过重新平衡进行回测 - 自动化

时间:2016-09-06 20:13:17

标签: psql finance quantitative-finance back-testing

我目前正在尝试为投资组合回溯测试设置PSQL数据库,并且想知道是否有人为未来的更改提供了更加自动化的解决方案。

假设我有一个股票A,B和C的投资组合。我每个月都会改变投资组合的权重。让我们说2015年1月我的体重是A-25%,B-25%,C-40%。为了计算1000美元投资组合所需的股票数量,我只需要A * 1000的股票价格/ A的股票价格,依此类推B和C.每天,我检查A,B和C的价格并乘以通过股票数量来获得总投资组合的价值。

2月份,如果我将投资组合的价值改为A-25%,B-35%,C-40%,那么我需要通过在1月的最后一天取得投资组合的价值来再平衡并乘以2月权重,除以股票的股价。

问题在于我想测试如果我在一个月中加入重新平衡会发生什么。我不想只存储投资组合的总价值,因为如果我加入重新平衡,它可能会改变。

我目前拥有输入数据库的每个月投资组合的百分比。在调整额外的再平衡时,最简单的计算投资组合每日价值的方法是什么?

在月份中每天插入的行数是否比上次重新平衡的份额数更好?例如,我应该只拥有每个重新平衡的股票数量,因此2015年1月 - 每个股票的数量,2015年2月 - 每股的股票数量。或者我应该在2015年1月1日 - 每个2015年1月2日的股票数量 - 与之前相同,2015年1月3日 - 与之前相同... 2015年2月 - 新的每股股票数量。 如果在第一个示例中执行此操作,我将如何在SQL中设置条件以便使用最后一次重新平衡,但在下一次重新平衡时停止?我是否只需要获得重新平衡的日期列表,然后一次循环两个,其中一个作为开始,一个作为结束日期?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

有像这样的回溯工具 即使使用先进的回测工具,Quantconnect / Lean或Quantopian / Zipline也很难信任,并且无需建模市场影响/滑点/佣金就可能浪费时间,因此在数据库上进行可靠测试并获得可靠的测试。

重新平衡我的经验会对算法产生很大影响。特别是如果你模拟滑点和佣金。