【信号闪烁】数组的处理来记录涨跌幅,买涨幅最高、卖涨幅最低。帮忙分析处理为什么出现信号闪烁(附件:策略单元、图片、源码);请告知问题所在,发送修改后的代码。谢谢

参考课程链接: TBQuant简单数组应用20190613
https://www.tbquant.net/train/150.html

 

策略单元/源码无法上传附件...(如果需要发策略单元,请告知一声,QQ或者邮件发送)

 

策略单元, 2000根日线 品种:ru000  rb000  cu000  ta000     (测试时间  2022年12月3日18:23:04)

 

【信号闪烁 信息】

时间    消息类型    消息级别    内容
2022-12-03 18:14:57.610    策略运行    警告    图表交易,图表-测试@K线@1发生信号闪烁,合约:TA000.CZCE,上次执行信号个数:2,本次执行信号个数:0,发生Bar时间:20141223.000000,发生Bar=65

 

源码:

Params
    //此处添加参数
    Numeric lots(1); 
    
Vars
    //此处添加变量
    Numeric i;
    Global Integer r;                // 图层遍历
    Global Array<Numeric> arr1;
     Global Array<Integer> id1;
    
    Global Array<Numeric> arr2; 
    Global Array<Integer> id2;
    

Events
    //此处实现事件函数 
    
    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    { 
        
        For i = 0 To DataCount() - 1
        {
            // arr1[i] = Data[i].Close[1];
            arr1[i] = (Data[i].Close[1] - Data[i].Open[1]) / Data[i].Close[1] * 100;
            id1[i] = i;
        }   
        
        Na1Sort2(arr1, id1, 0, (DataCount()-1), False);
        
        Commentary(Text(CurrentBar()));
        
        For i = 0 To DataCount() - 1
        {
            Commentary("图层[" + Text(i) + "]涨跌系数 = " + Text(Round(arr1[i], 2)));
            Commentary("下标[" + Text(i) + "] = " + Text(id1[i]));
        }
        
        If(Weekday == 1)
        {
            Range[r=0 : DataCount-1]
            {
                Commentary("range: " + Text(r));
                
                If(id1[0] == r )
                {
                    If(MarketPosition <> 1)
                    {
                        Buy(lots, Open);
                    }                    
                }
                Else If(id1[DataCount-1] == r )
                {
                    If(MarketPosition <> -1)
                    {
                        SellShort(lots, Open);
                    }                    
                }
                Else 
                {
                    Sell(0, Open);
                    BuyToCover(0, Open);
                }
                
                
            }
        } 

    }

 

 

策略单元示意:

 

信号闪烁问题处理?
老师,信号闪烁怎么处理
使用最高最低价 信号策略闪烁问题
请教信号闪烁后继处理逻辑或思路
使用ma均线导致的信号闪烁如何处理
信号闪烁问题
使用指令价模型的话,我想用盘中价来计算,信号闪烁一般怎么处理
【信号闪烁】信号不闪烁的方法
回测无信号闪烁,实盘中出现信号问题。
多周期策略出现信号闪烁问题。

【信号闪烁 信息】

时间    消息类型    消息级别    内容
2022-12-03 18:14:57.610    策略运行    警告    图表交易,图表-测试@K线@1发生信号闪烁,合约:TA000.CZCE,上次执行信号个数:2,本次执行信号个数:0,发生Bar时间:20141223.000000,发生Bar=65