以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- bug,update_universe,跟新合约池,不是更新而是添加 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=173730) |
-- 作者:期货大圣 -- 发布时间:2019/12/26 0:13:29 -- bug,update_universe,跟新合约池,不是更新而是添加 另外,要在那个函数内实现呢?init、before_trading, handle_bar都不能实现更新。 只能在外部,才能得到运行。还是添加,而不是更新。
|
-- 作者:yukizzc -- 发布时间:2019/12/26 9:29:04 -- def init(context): # 在context中保存全局变量 update_universe ([\'sh600000\',\'sh600007\']) # print("策略启动") #调试打印输出 # before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现) def before_trading(context): pass # 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现) def handle_bar(context): print(context.universe)
|
-- 作者:yukizzc -- 发布时间:2019/12/26 9:29:37 -- 么有问题,上面代码你输出看下就是在init理添加的品种 另外,看api文档说明里说了,这里的update是覆盖而不仅仅是添加
|
-- 作者:期货大圣 -- 发布时间:2019/12/26 12:34:56 -- 现在没有开盘,是不是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\'] 添加,而没有覆盖 |
-- 作者:yukizzc -- 发布时间:2019/12/26 13:18:41 -- 你在handle_bar里面去输出就能看到区别了,可能更新股票池这个动作有一个时间差,你刚添加马上输出的时候导致池还没更新用的,下一次更新时候那个池子再会更新过来 |
-- 作者:期货大圣 -- 发布时间:2019/12/26 13:43:05 -- 感谢版主,成功了 13:42:01 > [\'SQFU05\', \'SQNI03\', \'SQHC05\', \'SQFU05\']
|