一种分类的写法

void OnTick()
{
      int    h     = 0;
      double pf    = 0.;
      bool   doit  = false;
      int    phase = 0;
      int    k     = 0;
      for(int i=OrdersTotal()-1;i>=0;i--)
      {
         if(!OrderSelect(i,SELECT_BY_POS))continue;
         for(int j=0;j<ArraySize(result);j++)
         {
            if(StringToInteger(result[j])==OrderMagicNumber())
            {
               o[k].t = OrderTicket();
               pf     = OrderProfit()+OrderSwap()+OrderCommission();
               if(pf>o[k].max && pf>0.0)o[k].max=pf;
               k++;
            }
         }
      }
      //-------
      for(int i=k;i>=0;i--)
      {
         if(!OrderSelect(o[i].t,SELECT_BY_TICKET))continue;
         h     = (int)((TimeCurrent()-OrderOpenTime())/3600);
         pf    = OrderProfit()+OrderSwap()+OrderCommission();
         doit  = false;
         phase = (h<hour1)*0+(h>=hour1 && h<hour2)*1+(h>=hour2 && h<hour3 && pf>0.0)*2+(h>=hour3)*3;
         switch(phase)
         {
                  case 2:
                  case 3:doit=true;break;
                  case 1:if(pf<o[i].max*per/100.0) doit=true;
                         break;
                  default:o[i].max = 0.0;break;
         }
         if(doit && OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10))o[i].max = 0.0;
      }

}
//+------------------------------------------------------------------+
本博客所有文章如无特别注明均为原创。作者:天泓评测
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)