获取“找到空受控语句”警告|元编辑器

问题描述

我如何确保以下ifelse if语句遵循以下规则:

“如果 /*Condition 1*//*Condition 2*/中的所有内容都是正确的,
然后
继续评估 /*Conditions 3 - 12*/

目前,我收到 empty controlled statement found 313 38 编译器错误/警告。

if(shiftOneClose < shiftOneOpen){ /*Condition 1*/
   if((bearHammer / (shiftOneOpen - shiftOneLow) <= OoTMax))
   if((bearHammer / bullNail) <= OoTMax)
   if(bearHammer >= Transform(PCM,2)); /*Line 313*/

}

else if(shiftOneClose > shiftOneOpen){ /*Condition 2*/
   if((bullHammer / (shiftOneClose - shiftOneLow) <= OoTMax))
   if((bullHammer / bullNail) <= OoTMax)
   if(bullHammer >= Transform(PCM,2));

}

if.... /*Conditions 3 - 12*/
if....
if....
if....
if....
if....
if....
if....
if....
if....
{

  [execute trade]

}

解决方法

您可以使用通用控制结构,后跟其他编程语言,例如C ++,JAVA。

如果您不熟悉: &&表示and ||表示or

示例:

//--- so in order to make it evaluate conditions 3-12,if only condition 1 or 2 is true
if(condition1 || condition2){
  if(condition3 && condition4){ /* so on until 12 */
     //--- execute trade
  }
}

为了提高代码的可读性,我建议您将一些条件移到函数中

,

Q “我将如何确保以下ifelse if语句遵循以下规则:
“如果/*Condition 1*//*Condition 2*/中的所有内容都是正确的,
然后继续评估/*Conditions 3 - 12*/””

原始代码在 line 313 中崩溃了,因为 ; 字符终止了一个语句构造函数,而“如果满足if(){...}else{...}版的条件之一(else{...}部分中存在相同的问题,则不存在{...}代码块,并且形式上的-语句构造函数感到恐慌,因为不知道在if(){...}else{...}两个分支中“执行”什么,因为该语句正式不完整)。

    if (  shiftOneClose < shiftOneOpen )                               /*Condition 1*/
    {                                                       
       if ( ( bearHammer / ( shiftOneOpen - shiftOneLow ) <= OoTMax )            )
       if ( ( bearHammer / bullNail )                     <= OoTMax              )
       if (   bearHammer                                  >= Transform( PCM,2 ) ); /*Line 313*/

    }

所以,根本不知道如果条件满足就该怎么办。


“我将如何确保...”部分的解决方案

在语法上正确的是这个解释性的逻辑保留代码模板:

if (  (  (  shiftOneClose       <    shiftOneOpen
         && OoTMax              >= ( bearHammer / ( shiftOneOpen - shiftOneLow ) )
         && OoTMax              >= ( bearHammer / bullNail                       )
         && Transform( PCM,2 ) <=   bearHammer
            ) /*--------------------------------------------------------------------- Condition 1 */
      || (  shiftOneClose       >    shiftOneOpen
         && OoTMax              >= ( bullHammer / ( shiftOneClose - shiftOneLow ) )
         && OoTMax              >= ( bullHammer / bullNail                        )
         && Transform( PCM,2 ) <=   bullHammer
            ) /*---------------------------------------------------------------- .OR. Condition 2 */
         )
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 3 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 4 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 5 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 6 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 7 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 8 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition 9 */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition A */
   && ( ... ) /*---------------------------------------------------------------- .AND.Condition B */
      )
   {...} /*---------------------------------- CODE-BLOCK TO EXECUTE ------------------------------*/

在我大约20多年的Quant建模工作中,我们总是更喜欢宽布局(屏幕很便宜,拥有4 x 2的屏幕,而较大的多屏幕座位非常容易,并且在最近十年中非常普遍),强调逻辑,然后减少计算中的重复(最好预先计算任何和所有逻辑“控制值”,然后由于低延迟(通常是超低延迟)而重新使用原因,我们从来没有在调用函数上花费任何额外的时间(上下文切换的开销以及在那里传递参数和返回结果)。并非所有的编译器(版本)都由于逻辑规律而缩短了执行分支。这里必须要小心(最昂贵的函数是那些用交易的数据来操纵/查询db.POOL存储的函数,首先要进行db.POOL-指针操纵,然后&只有这样(一旦成功,就永远不会成功)重新访问db.POOL记录的数据项)。

还应该注意到存在一个逻辑盲点-shiftOneClose == shiftOneOpen

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...