发布于2021-03-02 15:59 阅读(55) 评论(0) 点赞(6) 收藏(5)
0
1
2
3
4
5
6
7
8
9
我正在尝试对Markowitz投资组合进行回测。到目前为止,我已经尝试了zipline,backtrader和QSTrader(尽管QSTrader可以工作,但是没有文档,所以非常困难)。我并没有像我想要的那样进行回溯测试。
我的数据结构是一个包含200种不同股票调整后的收盘价的csv。我想每季度或每年对投资组合进行重新平衡。我已经有了用于实际投资组合优化的代码及其返回的权重。我只需要一个实际的框架来将这些权重插入,然后每季度重新进行一次计算。到目前为止,我已经进行了大约5个小时,而我只是无法进行任何回溯测试。Zipline在如何处理数据方面非常令人困惑,甚至在导入具有我所描述的结构的本地csv时更是如此。Backtrader也遇到了同样的问题。QSTrader似乎对我不起作用,并且在加载数据后抛出以下错误:
Traceback (most recent call last):
File "d:\Finansiering. Modern Portfolio Theory Projekt\Finansiering_Backtrader.py", line 53, in <module>
strategy_backtest.run()
File "D:\Anaconda\envs\zipline\lib\site-packages\qstrader\trading\backtest.py", line 398, in run
self.qts(dt, stats=stats)
File "D:\Anaconda\envs\zipline\lib\site-packages\qstrader\system\qts.py", line 172, in __call__
rebalance_orders = self.portfolio_construction_model(dt, stats=stats)
File "D:\Anaconda\envs\zipline\lib\site-packages\qstrader\portcon\pcm.py", line 289, in __call__
target_portfolio = self._generate_target_portfolio(dt, full_weights)
File "D:\Anaconda\envs\zipline\lib\site-packages\qstrader\portcon\pcm.py", line 139, in _generate_target_portfolio
return self.order_sizer(dt, weights)
File "D:\Anaconda\envs\zipline\lib\site-packages\qstrader\portcon\order_sizer\dollar_weighted.py", line 168, in __call__
'modifying the backtest start date and re-running.' % (asset, dt)
ValueError: Asset price for "A" at timestamp "2006-01-31 21:00:00+00:00" is Not-a-Number (NaN). This can occur if the chosen backtest start date is earlier than the first available price for a particular asset. Try modifying the backtest start date and re-running.
回测的开始日期是正确的,基本上是在该月需要重新平衡时才开始。我也无法解决此问题。
我希望有人对此有一个即插即用的解决方案。
0
1
2
3
4
5
6
作者:黑洞官方问答小能手
链接: https://www.pythonheidong.com/blog/article/869962/83dcc4922f627b0c06dd/
来源: python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!