请教一下各位大佬,我想缓存近100个bar的macd信息,一开始看到了时间序列容器Arraymanager,想把macd直接写到Arraymanager里,后来发现,得先有Arraymanager,才能开始计算指标。似乎直接写在Arraymanager里不成立。
如何才能让近100个bar除了高开低收以外,多一列MACD的信息呢?
请教一下各位大佬,我想缓存近100个bar的macd信息,一开始看到了时间序列容器Arraymanager,想把macd直接写到Arraymanager里,后来发现,得先有Arraymanager,才能开始计算指标。似乎直接写在Arraymanager里不成立。
如何才能让近100个bar除了高开低收以外,多一列MACD的信息呢?
自己写一个list缓存
am.macd传array=True返回的第一项就是macd的array
xiaohe wrote:
am.macd传array=True返回的第一项就是macd的array
非常感谢!再请教一下,macd的周期会影响到array的长度吗?如果会的话,为了保证array长度,是不是要相应修改arraymannager的size?如果不会的话,满足它周期计算的bar是在哪传入的
顺带问一下,有没有可能在jupyter里把arraymanager的内容打印出来呢
woodlandnight wrote:
xiaohe wrote:
am.macd传array=True返回的第一项就是macd的array
非常感谢!再请教一下,macd的周期会影响到array的长度吗?如果会的话,为了保证array长度,是不是要相应修改arraymannager的size?如果不会的话,满足它周期计算的bar是在哪传入的
不能超过am的size长度
woodlandnight wrote:
顺带问一下,有没有可能在jupyter里把arraymanager的内容打印出来呢
可以
xiaohe wrote:
woodlandnight wrote:
顺带问一下,有没有可能在jupyter里把arraymanager的内容打印出来呢
可以
我试着在jupyter里写了一下,但是提示报错AttributeError: 'NoneType' object has no attribute 'on_init',请问该如何修改代码呢
from datetime import datetime
from vnpy_ctastrategy.backtesting import BacktestingEngine
from vnpy.trader.utility import ArrayManager
engine = BacktestingEngine()
engine.set_parameters(
vt_symbol = "IF888.CFFEX",
interval = "1m",
start = datetime(2020,8,3),
end = datetime(2020,8,4),
rate = 0.3/10000,
slippage = 0.2,
size = 300,
pricetick = 0.2,
capital = 1_000_000
)
engine.load_data()
engine.run_backtesting()
am = ArrayManager()
print(am.macd)
我只需要回放一天的数据
要在策略里打印,你这里是单独创了个am,K线也没传进去