另外,要在那个函数内实现呢?init、before_trading, handle_bar都不能实现更新。
只能在外部,才能得到运行。还是添加,而不是更新。
def init(context):
# 在context中保存全局变量
update_universe (['sh600000','sh600007'])
# print("策略启动") #调试打印输出
# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
pass
# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
print(context.universe)
么有问题,上面代码你输出看下就是在init理添加的品种
另外,看api文档说明里说了,这里的update是覆盖而不仅仅是添加
现在没有开盘,是不是handle_bar不会被触发,所以在init里测试了下,如下:
def init(context):
# 在context中保存全局变量
update_universe (longpool)
print(longpool)
print(context.universe)
输出:
12:27:09 > ['SQFU05', 'SQNI03', 'SQHC05', 'SQFU05']
12:27:09 > ['DQAX05']
豆一05是我手动添加的,没有变化
把update_universe放在外边,测试了下,如下:
update_universe (longpool)
def init(context):
# 在context中保存全局变量
print(longpool)
print(context.universe)
输出:
12:33:17 > ['SQFU05', 'SQNI03', 'SQHC05', 'SQFU05']
12:33:17 > ['SQFU05', 'SQNI03', 'SQHC05', 'SQFU05', 'DQAX05']
添加,而没有覆盖
你在handle_bar里面去输出就能看到区别了,可能更新股票池这个动作有一个时间差,你刚添加马上输出的时候导致池还没更新用的,下一次更新时候那个池子再会更新过来
感谢版主,成功了13:42:01 > ['SQFU05', 'SQNI03', 'SQHC05', 'SQFU05']