我有一个csv文件/pandasdataframe
,看起来像这样。它包含一个投资组合的各种投资组合组成,根据我自己的计算,该投资组合每天都会重新平衡
date asset percentage
4-Jan-21 AAPL 12.00%
4-Jan-21 TSM 1.00%
4-Jan-21 IBM 31.00%
4-Jan-21 KO 15.00%
4-Jan-21 AMD 41.00%
5-Jan-21 DELL 23.00%
5-Jan-21 TSM 12.20%
5-Jan-21 IBM 15.24%
5-Jan-21 KO 1.50%
5-Jan-21 NKE 7.50%
5-Jan-21 TSLA 9.50%
5-Jan-21 CSCO 3.30%
5-Jan-21 JPM 27.76%
6-Jan-21 AMD 45%
6-Jan-21 BA 0.50%
6-Jan-21 ORCL 54.50%
7-Jan-21 AAPL 50.00%
7-Jan-21 KO 50.00%
...
我想用12种资产组合测试一个策略
AAPL,TSM,IBM,KO,AMD,DELL,NKE,TSLA,CSCO,JPM,BA,ORCL
比如说在2021年1月4日,苹果的投资组合构成为12%,TSM的投资组合构成为1%。。等,我想能够检查的价格,并知道有多少我应该持有
第二天,即2021年1月5日,戴尔的构成将变为23%。。等等,如果该股票不在该列表中,则表示当天该股票为0%
我一直将backtrader视为一个回溯测试平台,然而,我在回购协议中看到的代码主要展示了如何处理指标,如SMA交叉、RSI
我的问题是:是否有可能根据我拥有的这些组合创建和测试一个投资组合,以便检查该策略的回报?它将检查这个框架,并知道在特定的一天,在一个股票行情器中有多少股票可以买卖
所以我买卖的股票的范围是AAPL,TSM,IBM,KO,AMD,DELL,NKE,TSLA,CSCO,JPM,BA,ORCL
所以在21年1月4日看起来
dictionary['4Jan2021'] = {'AAPL':0.12,
'TSM':0.01,
'IBM':0.31,
'KO':0.15,
'AMD':0.41,}
在21年1月5日,看起来
dictionary['5Jan2021'] = {'DELL':0.23,
'TSM':0.122,
'IBM':0.1524,
'KO':0.015,
'NKE':0.075,
'TSLA':0.095,
'CSCO':0.033,
'JPM':0.2776,}
如果没有股票代码,则表示其为0%。 投资组合的构成每天都需要改变
首先要做的是用数据加载目标。我喜欢 当我将目标添加到backtrader时,我会亲自将其附加到数据线
在下一步中,您将要查看每个数据,并确定当前的分配。如果当前分配距离所需分配(阈值)太远,则需要交换所有数据
请注意,这里有一个缓冲区变量。这将减少用于计算交易单位的账户总价值。这有助于避免保证金
您将使用字典跟踪此信息
检查所有阈值以确定是否进行交易。如果任何数据需要交易,那么所有数据都需要交易
最后,执行你的交易。始终先卖出,以在账户中产生现金并避免利润
以下是所有代码的示例,供您参考
############################### #############编辑 ####################################
还有一个额外的要求是每天为每个证券添加可变分配。下面的代码实现了这一点
相关问题 更多 >
编程相关推荐