Params
//此处添加参数
Numeric min_opt_interval(50);
Numeric max_strike(1000000);
Numeric min_strike(0);
Numeric FastLength(5);// 短期指数平均线参数
Numeric SlowLength(20);// 长期指数平均线参数
Vars
//此处添加变量
global Numeric g1(0);
global Numeric g2(0);
Series<Numeric> x(1);
global bar a1;
global bar a2;
Numeric aa1;
Numeric b;
Array<String> symbols;
Array<string> str2;
Global string str3;
Global string str4;
Global integer sym3;
Global integer sym4;
Global integer sym5;
Defs
//此处添加公式函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
Numeric dateTime;
print(text(dateTime));
StringSplit(MainSymbol,".",str2);
str3=Mid(text(a1.dateTime),2,4);
Print("str3:"+str3);
str4=SymbolType()+str3+"."+str2[1];
Print("str4:"+str4);
sym3=SubscribeBar(str4,"1m",Data0.BeginDateTime(),Data0.endDateTime(),Enum_Data_RolloverBackWard());
print("sym3="+text(sym3));
if(sym3 != InvalidNumeric)
{
Numeric m=Value(str3);
m=m+1;
print("m="+text(m));
str4=SymbolType()+text(m)+"."+str2[1];
Print("str4:"+str4);
UnsubscribeBar(sym3);
sym4=SubscribeBar(str4,"1m",Data0.BeginDateTime(),Data0.endDateTime(),Enum_Data_RolloverBackWard());
}Else
{
Numeric m=Value(str3);
m=m+2;
print("m="+text(m));
str4=SymbolType()+text(m)+"."+str2[1];
Print("str4:"+str4);
UnsubscribeBar(sym3);
sym4=SubscribeBar(str4,"1m",Data0.BeginDateTime(),Data0.endDateTime(),Enum_Data_RolloverBackWard());
}
/*if(g1 == 1)
{
Numeric i1;
Range[i1 = 1 : DataSourceSize - 1]
{
Print("a1.close="+text(a1.close));
}
Numeric i;
//call 平 虚
for i = 0 to 5// 可参数化
{
string str1;
Array<string> str2;
//rb2310.SHFE
StringSplit(MainSymbol,".",str2);
numeric a = round(a1.close/min_opt_interval,0)*min_opt_interval;
str1 = str2[0] + "C" +text(a+i*min_opt_interval) +"." + str2[1];
print("str1="+str1);
if(a+i*min_opt_interval <= max_strike)
{
integer sym1 =SubscribeBar(str1,"5m",Data0.BeginDateTime(),Data0.endDateTime(),Enum_Data_RolloverBackWard());
if(sym1 != InvalidNumeric)
{
print("sym1="+text(sym1));
Numeric DaysLeft;
Numeric AssetPr;
Numeric Volty;
//Print("Delta:" + Text(Delta(TradingDayLeft));
}
else
{
print("出错");//
break;
}
}
Else
{
break;
}
}
//////////put 平 虚
}*/
}
OnReady()//数据准备,获取最近K线close
{
if(BarStatus==0)
{
Numeric i;
Range[i = 0 : DataSourceSize - 0]
{
if(g1 == 0)
{
GetBar(a1,(BarCount-1)*-1);
g1 = 1;
ReStart(false);
}
}
}
}
请问一下,我在指数上面订阅了最近一个月的期货标的。我还想订阅这个月的期权平值期权,或者我应该怎么取到订阅后图表一的收盘价,应该怎么写
最主要的是怎么获取图标一的收盘价。
订阅返回的是图层编号
data[sym1].close 就是对应图层的收盘价
好的,谢谢了