关于一段代码,无法PlotBool的问题,看了两个小时也没明白

请教一下各位老师,条件1倒是可以顺利打印,为什条件2中,

无论是写成PlotBool("condition2",condition2,Low-100);

还是写成PlotBool("condition2",condition2,Low);

或者是写成PlotBool("condition2",condition2,Low+500);都无法在图标上标记笑脸。

附上源码:

Params
    Numeric Strengthb(8);
    Numeric strengths(8);

Vars
    bool condition1;
    bool condition2;
    series<bool> var0b2(false);
    series<bool> var0b(false);
    Series<Numeric> var2b( 0 );
    Series<Numeric> var1b( 0 );
    bool var0s(false);
    Series<Numeric>  var1s(0) ;
    Numeric minpoint;
    
Events
    OnInit()
    {
        //=========数据源相关设置==============
        AddDataFlag(Enum_Data_RolloverBackWard());    //设置后复权

        AddDataFlag(Enum_Data_RolloverRealPrice());    //设置映射真实价格

        AddDataFlag(Enum_Data_AutoSwapPosition());    //设置自动换仓

        //AddDataFlag(Enum_Data_IgnoreSwapSignalCalc());    //设置忽略换仓信号计算
    }
    
    OnBar(ArrayRef<Integer> indexs)
    {
        Minpoint = MinMove* PriceScale;
        //条件1*************************************************************************
        condition1 = SwingHigh(1, High, Strengthb, Strengthb + 1 ) <> -1 ;
        if (condition1)
        {
            var0b = true ;
            var1b = High[Strengthb];

        }
        Else
        {
            condition1 = ((var0b) and (High >= var1b + 1*Minpoint)) ;
            if (condition1)
            {
                var0b = false ;
                PlotBool("condition1",condition1,High+100);
                Commentary("var1b:"+Text(var1b));
            }

        }
        
        //条件2*************************************************************************
        condition2 = Swinglow(1, low, Strengths, Strengths + 1 ) <> -1 ;
        if (condition2)
        {
            var0s = true ;
            var1s = low[Strengthb];
            
        }
        Else
        {
            condition2 = ((var0s) and (low <= var1s - 1*Minpoint)) ;
            if (condition2)
            {
                var0s = false ;
            PlotBool("condition2",condition2,Low-100);
            Commentary("var1s:"+Text(var1s));
                
            }
            
        }
    }

 

关于PlotBool的布尔值颜色问题
关于软件的问题
算法代理中的“成交后委托偏移”的意思没搞明白,请指教。
使用plotbool出现问题
请TB老师帮忙解决自己编写的程序化交易运行一段时间无法获取TB数据的问题
旗舰版小时K线的的分割问题
向大神求教,我在程序中添加了如下止损代码,虽然没头没脑的貌似解决了,但是始终没明白原因。
OnBarOpen为什么该卖的时候没卖,该买的时候没买
请老师写一段代码
附带我上个帖子也没解决 帮忙看一下

做空的这一段,怎么引用了做多的参数?

其实两个参数就是个常量,数值也都一样,不过刚才您的回答应该是正确的,非常感谢!

策略逻辑可能有点问题。

condition2这段代码的逻辑是:

if这段先找出符合要求的波谷,

else这段是找到符合if条件的波谷以后,再寻找突破波谷的bar,

condition2并不是重复或重新定义,而是在找到波谷后,在非波谷的bar上寻找再次突破波谷的bar(在满足if条件后再次迭代),if和else中间通过var0s开关来控制,var0s只有在找到波谷后才变为True,变为True后,找到向下突破的bar,然后又变为False

而且,condition1是找波峰的,这个逻辑在condition1可以找到波峰并且向上突破的bar,为什么condition2找波谷,再找向下突破的bar就无法找到呢?

如果这样说,那做空跟做多部分,差不多写就可以啊。

 

嗯嗯 ,好的,明白了,谢谢