请问一下。看一下评论
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); } } } }