遍历期权图层,引用symbol时仍是0号图层的品种代码,要如何解决?
0,1号图层分别是hs300的日K线和5分钟K线,代码如下:
SubscribeBar("000300.SSE","1d",s_time,e_time);//订阅沪深300指数(000300.SSE)日K线行情
SubscribeBar("000300.SSE","5m",s_time,e_time);//订阅沪深300指数1分钟K线行情
之后订阅了一批相应的期权合约,在onbar中对他们进行买卖,但在onbar遍历期权图层执行代码时,调用的symbol竟然还显示000300.SSE,请问该如何解决?
OnBar(ArrayRef<Integer> indexs)
{If(data1.close[1]>U //当向上突破时
AND data1.time>=(cover_time*0.001) AND data1.Time<=jysjz) //当天9:45之后,14:45分之前(是否需要修改成>=0.0945,<=0.1400?)
{
Range[2:datacount-1]
{
If(OptionType == Enum_PutOption and currentcontracts > 0) //如果持有看跌仓位,则平仓
{
Data1.Commentary("向上突破上轨时持有看跌期权"+ symbol + text(currentcontracts)+"手,全部平仓");
If(Sell(CurrentContracts,Max(close[1],open[0]) - 0.4))
{
Data1.Commentary("平仓看跌期权成功");
}
Else
Data1.Commentary("平仓看跌期权失败");
}
上面加红的symbol,在data1中调用仍显示为"000300.sse",是因为前面有data1的原因吗?如何要显示成对应的期权合约该如何编写?
函数内部的所有对象包括参数,都默认跟随函数的图层。所以你commentary是data1 那填写参数时不加图层编号,默认都是data1
明白了,谢谢