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

标题: FOR I= 0 TO 100 [打印本页]

作者: masterhdd    时间: 2018-7-17 10:11:00     标题: FOR I= 0 TO 100

for i = 0 to 100
{
............
...........
if(con) return;
}
能这样写吗?这样写能打断这个循环吗?请版主指教。
作者: hlp0410    时间: 2018-7-17 10:56:02

return语句不仅打断这个循环了,是return后面的所有语句都不再执行了
作者: meterwave    时间: 2018-7-17 13:19:53

break;
作者: hlp0410    时间: 2018-7-17 13:44:15

meterwave 发表于 2018-7-17 13:19
break;

for循环一般是在已知计算量的情况下使用的,像你举例的0-100,也是已知计算101次,不知道您需要跳出循环的用意何在?
作者: masterhdd    时间: 2018-7-18 17:07:06

本帖最后由 masterhdd 于 2018-7-18 17:21 编辑
hlp0410 发表于 2018-7-17 13:44
for循环一般是在已知计算量的情况下使用的,像你举例的0-100,也是已知计算101次,不知道您需要跳出循环 ...


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;
        }  
    }
}




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