请看评论

//------------------------------------------------------------------------// 简称: A2025_6_4// 名称: 期权基础数据读写// 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------Params Vars Dic<String> dic_string("TB_CP_Options"); Array<String> str; Array<String> str1; String str2; String str3; String str4; Array<Integer> id1; Array<String> symbols; Array<String> symbols1; Array<String> symbols2;Events OnInit() { StringSplit(MainSymbol,".",str1);//获取交易所后面代码 str2=SymbolType()+"."+str1[1]; GetDicSymbols(dic_string,symbols); GetSymbols(str2,Enum_CategoryOptions,symbols); //获取该品种所有的期权合约 GetSymbols(str2,Enum_CategoryFutures,symbols1); //获取该品种所有的期货合约 ArraySort(symbols,True); //一维数组排序,升序。 ArraySort(symbols1,True); str3=symbols[1]; //取出第一个期权合约 str4=Mid(str3,0,6)+"."+str1[1]; //取出最近可交易期权的期货月份 GetSymbols(str4,Enum_CategoryOptions,symbols); SubscribeBar(str4,"1m",Data0.BeginDateTime(),Data0.endDateTime(),Enum_Data_RolloverBackWard()); //订阅最近一个月的期货标的 Print("str4"+str4); //Print("GetSymbols:"+TextArray(symbols1)); //在控制台输出期货合约品种 Print("GetSymbols:"+TextArray(symbols)); //在控制台输出期权合约品种 } OnBar(ArrayRef<Integer> indexs) { }

请问一下,我已经把这些筛选出来了,有下面三个问题:1.要怎么才能订阅最近一个月的平值期权的附件几档呢,2.或者是否可以把所有的都订阅了,然后在oninit里面赛选,如果不合格的删除,3.或者怎么才能在oninit里面知道订阅过后图层的数据(比如图中我想知道rb2507的收盘价应该怎么获取)。

回复:每天ATM甚至日内ATM都是动态的所以你的逻辑再思考一下

回复:1.你说你筛选出来了?那你直接对应订阅合约,订阅平值也需要自己计算2.oninit中没有数据,onready域才开始有数据3.非订阅的情况获取数据,可以有gettick

回复:谢谢,已经弄好了