开拓者期货期权程序化系统交易论坛

标题: 不厌其烦 [打印本页]

作者: masterhdd    时间: 2018-7-18 21:42:48     标题: 不厌其烦

总是死机,问题出在哪里,还请版主明示。
每次提问,我都觉得很惭愧,觉得总是麻烦版主,很过意不去,有一种深深的歉疚感。
以前在文华财经提问的时候.........

1:本意是如果有买平挂单就撤单并返回进行延时,可一运行就会死机。2:此处的正确写法到底是 for i=1 to nCount1还是for i=0 to (nCount1-1)? 3:我是开机后先登录模拟账户,然后打开超级图标,再打开公式,接着就死机了。求版主给俺做主........

if(A_GetOpenOrderCount()>0)  
{
        nCount1 = A_GetOpenOrderCount;
        if(nCount1>0)
        {
          for i=1 to nCount1  //此处的正确写法到底是 for i=1 to nCount1还是for i=0 to (nCount1-1)?
           {
           nEntryFlag = A_OpenOrderEntryOrExit(i);                    
           nBuyOrSell = A_OpenOrderBuyOrSell(i);
           OrderPrice = A_OpenOrderPrice(i);
           strContractNo =A_OpenOrderContractNo(i);

           If( nEntryFlag==Enum_Exit )
               {
                if( nBuyOrSell==Enum_Buy )
                  {
                  A_DeleteOrder(strContractNo);
                  SetGlobalVar(10,1);
                  }
              }
          If (GetGlobalVar(10)>=1 && i==(nCount1))  Return;
        }  
    }
}
作者: 小米    时间: 2018-7-20 09:51:24

1,a函数的最上层判断需要一个是否有效值的判断吧?至少确认他是有效值后才开始循环为佳吧。
  否则这个ncount1是一个极大的值,如此循环,自然会死。
2,ncount1是取未成交委托单的数值,但这个与索引值对应不上吧?那这样的i值来做索引不太合适吧
3,如第一条所说的,缺少了该有的判断,导致一运行公式就一直在循环运算中,运算不结束自然就死机的表现了
作者: masterhdd    时间: 2018-7-20 16:20:00

小米 发表于 2018-7-20 09:51
1,a函数的最上层判断需要一个是否有效值的判断吧?至少确认他是有效值后才开始循环为佳吧。
  否则这个ncou ...

大侠,您就痛快点,i咋取值,迎风一刀斩,击破暗黑。

作者: masterhdd    时间: 2018-7-20 21:16:33

小米 发表于 2018-7-20 09:51
1,a函数的最上层判断需要一个是否有效值的判断吧?至少确认他是有效值后才开始循环为佳吧。
  否则这个ncou ...

感谢大侠点拨,好像。。。。已经弄明白了。虽未拔剑,已生欢喜。




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2