请教多图层的判断语句

我想写一个多图层的判断,但是条件判断的结果与想法不符,在多图层遍历的时候,计划在条件符合的图层输出bool值,实际在条件不符合的图层也输出了,并且同时写入了map数组,实在找不到原因,请教大神。图片和代码如下: //------------------------------------------------------------------------ // 简称: test6 // 名称: // 类别: 公式应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params //此处添加参数 Numeric FastLength(12); Numeric SlowLength(26); Numeric MACDLength(9); Vars //此处添加变量 Numeric MACDDiff; Numeric AvgMACD; Numeric MACDValue; Global Map<String,String> my_map; Series<Numeric> x; Series<String> s1; Series<Bool> con1; Numeric i; Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { x = 0; } OnReady() { //my_map["期货代码"] = "rb888.SHFE"; } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { Range[0:DataSourceSize() - 1] { MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ; Commentary("macd="+Text(MACDDiff)); If(Time == 0.1459 And x == 0) { If(MACDDiff > 0) { s1 = symbol; Commentary("s1:"+s1); con1 = True; //PublishEvent("我的选股",my_map,"所有订阅者"); } Else { con1 = False; } x = 1; } If(Time == 0.210000) { x = 0; } //PlotBool("data[i].con1",con1,Low,Green); } If(Time == 0.1459) { For i = 0 to DataSourceSize() - 1 { If(data[i].con1 == True); { data[i].PlotBool("data[i].con1",data[i].con1,Low,Green); data[i].Commentary("Data[i].s1:"+s1); my_map["期货代码"] = my_map["期货代码"] + "," +Data[i].s1; } } } Commentary(my_map["期货代码"]); If(Day <> Day[1]) { my_map["期货代码"] = ""; } } //------------------------------------------------------------------------ // 编译版本 2022-12-21 133331 // 版权所有 bluegreat // 更改声明 TradeBlazer Software保留对TradeBlazer平台 // 每一版本的TradeBlazer公式修改和重写的权利 //------------------------------------------------------------------------

建议投稿 详细说明

回复:老师,都半个多月没有线上答疑了