信号闪烁

  Global Numeric high_profit(1800);

   Global Numeric close_position(0);

   Global Numeric short_build(0);

   Global Numeric long_build(0);

If(MarketPosition == -1 && (short_build - Close[1])*lots >= high_profit)

       {

        high_profit = (short_build - Close[1])*lots;

        close_position = high_profit * 0.5;

       }

       Else If(MarketPosition == 1 && (Close[1] - long_build)*lots >= high_profit)

       {

        high_profit = (Close[1] - long_build)*lots;

        close_position = high_profit * 0.5;

       }


If(MarketPosition == -1)

{

   If((short_build - Close[1])*lots < close_position && close_position > 0 && (short_build - Close[1]) > 0 )

  {

    If((short_build - Close[1])*lots <1800)

    {

  BuyToCover(shortposition , Close);

  shortposition = 0;

  close_position = 0;

  high_profit = profit;

  If(sign_ni == 1)

  {

   need_plus = 1;

  }

  Else If(Open_bar > 6000 && sign_ni == 0)

  {

    sign_ni = 1;

  }

}

Else If((short_build - Close[1])*lots >= 1800)

{

close_position = high_profit * 0.3;

}

 

   }


}

Else If(MarketPosition == 1)

{

  If((Close[1] - long_build)*lots < close_position && close_position > 0 && (Close[1] - long_build) > 0)

  {

      If((Close[1] - long_build)*lots < 1800)

      {

  Sell(longposition , Close);

  longposition = 0;

  close_position = 0;

  high_profit = profit;

  If(sign_ni == 1)

  {

   need_plus = 1;

  }

}

Else If((Close[1] - long_build)*lots >= 1800)

{

close_position = high_profit * 0.3;

}


  }

}


请问该段代码为什么会出现信号闪烁,我看了避免信号闪烁的视频,把可能会出现信号闪烁的问题给规避掉了,但还是出现了信号闪烁的问题。

【信号闪烁】信号不闪烁的方法
信号闪烁
信号闪烁
信号闪烁
关于信号闪烁
信号闪烁
关于信号闪烁
信号闪烁问题
信号闪烁
信号闪烁问题

1.你这个代码不能直接运行

2.像你里面long_build这些变量定义为global的原因是?

3.要学会使用commentry ,print等输出调试

这只是代码的一部分,long_build和short_build 分别是多单建仓价和空单建仓价,在建仓的时候将建仓价赋给这两个变量

这个代码的问题就是达到止盈条件之后,会平仓,但是在图表上不会显示,如果重新打开图表,他又准确的显示了

说明全局变量使用不当

有全局的情况,条件一变,则下一个tick全局就不满足了

常见情况

全局变量是每个tick都会重置变量的值吗

使用全局变量是因为多个函数用到了该变量

通过print等输出方法调试

也就是检查每次条件进入和出去后的值

但是逻辑又是对的,这种是不是不能用图标信号来做,直接使用A函数?