全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
关于行情订阅的问题
pandasen 分享到
2023-02-10 15:13

刚学TBL两周,今天在尝试构建一个组合策略。然后从数据库取某因子进行排序,定期调仓;

我参考了陈四健老师的神奇公式那节课。

但是在他的课里面,代码并没有涉及到如何订阅行情的问题。

今天我写了一个订阅行情的demo,拿上证50指数举例,我会从数据中心里面读取他的历史成分股,然后将这50只历史成分股储存到一个字符串数组中去

然后在策略初始化里,循环这个股票池,进行订阅行情操作

但是我打开上证50K线图执行这个demo的时候,图表最多订阅4个行情。后面的行情就开始报错了

请问我如何实现我的想法呢。


  以下是我的订阅数据库行情demo,在上证50K线图打开是可以运行的 ,但是只能订阅4个行情。我想要在代码里面能够订阅50个行情甚至更多,并且,麻烦老师帮我看看代码,如何修改???

Params
    //此处添加参数
    Numeric rank_rate(0.3);        //设定上证50权重股的选股率
    
Vars
    //此处添加变量
    Dic<Array<Array<String>>> stock_pool("TB_MEMBER");        //读取成分股
    Numeric i ;                // 循环变量i
    Array<String> stock_pool_50    ;    // 储存上证50成分股列表


Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
    OnInit()
    {    
        // 【第一步,储存指数标的代码】
        for i=0 to GetArraySize(stock_pool[0])-1
        {
            //print(Text(i));
            stock_pool_50[i]=stock_pool[0][i][0];
        }
        //【第二步,批量订阅标的的日线行情】
        for i=0 to GetArraySize(stock_pool_50)
        {
            SubscribeBar(stock_pool_50[i],"1d",BeginDateTime,0,Enum_Data_RolloverBackWard());
        }    
    }


    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        
    }
 

后期依照订阅的行情去构建组合策略

wangkaiming

你应该订阅成功了,图上最多显示4个

要在设置里看

2023-02-10 15:46
您未登录,请先 登录注册 后发表评论
顶部