刚学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)
{
}
后期依照订阅的行情去构建组合策略