我想把symbol用在主力上,用了TB_ROLLOVER来的读取换月的合约代码,因为用RelativeSymbol函数的时候,不能返回当前bar的对应合约,这里不知道为什么。GetDicValue("TB_MEMBER_positions_long",symbol,time,rvalue);现在用这个函数读取,rvalue读不到基础数据,不知道应该怎么用。整体的需求就是想在主连上读取到对应具体合约的会员持仓的基础数据,请问怎么做?
这个可能您没有仔细看函数说明,刘老师特别备注了一下。
Params
//此处添加参数
Vars
//此处添加变量
Dic<Array<Array<String>>> member_long("TB_MEMBER_positions_long");
Dic<Array<String>>fedata("TB_ROLLOVER");
String Nsymbol;
Array<Array<String>> rvalue;
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
SetDicFlag(member_long, Enum_DicFlag_BackTime);
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
Nsymbol=fedata[0][0];//=RelativeSymbol();
//Commentary("持买增减:"+text(member_long[0][0][1]));
//Plotnumeric("持买单量",Value(member_long[0][0][1]));
Commentary("合约:"+Nsymbol);
GetDicValue("TB_MEMBER_positions_long",symbol,time,rvalue);
Plotnumeric("持买单量:",Value(rvalue[0][1]));
//Commentary("合约:"+rvalue[0][0][1]);
}
所以,把这句改成下面这样,就能看到结果了
GetDicValue("TB_MEMBER_positions_long",symbol,date+time,rvalue);
可以了,多谢多谢,不过这个持仓的历史数据是不是回测时间很短,我看IF只有2020年4月份到现在的,以前的都没有。