Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:bug,update_universe,跟新合约池,不是更新而是添加

1楼
期货大圣 发表于:2019/12/26 0:13:29
另外,要在那个函数内实现呢?init、before_trading, handle_bar都不能实现更新。
只能在外部,才能得到运行。还是添加,而不是更新。
2楼
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)
3楼
yukizzc 发表于:2019/12/26 9:29:37
么有问题,上面代码你输出看下就是在init理添加的品种

另外,看api文档说明里说了,这里的update是覆盖而不仅仅是添加
4楼
期货大圣 发表于: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']

添加,而没有覆盖

5楼
yukizzc 发表于:2019/12/26 13:18:41
你在handle_bar里面去输出就能看到区别了,可能更新股票池这个动作有一个时间差,你刚添加马上输出的时候导致池还没更新用的,下一次更新时候那个池子再会更新过来
6楼
期货大圣 发表于:2019/12/26 13:43:05
感谢版主,成功了
13:42:01 > ['SQFU05', 'SQNI03', 'SQHC05', 'SQFU05']
共6 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.05078 s, 2 queries.