한 번에 둘 이상의 EA 실행 - 페이지 4

 
Sneck55 : 풀에서 일어나는 일과 일치하도록 주문을 마감하면 감소해야 하지만 주문을 마감하지 않는 경우에는 감소해야 합니다. 주문을 닫지 않고 감소하면 무한 루프에 들어갑니다.
말을 물가로 인도할 수 있다...
 
Sneck55 :
풀에서 일어나는 일과 일치하도록 주문을 마감하면 감소해야 하지만 주문을 마감하지 않는 경우에는 감소해야 합니다. 주문을 닫지 않고 감소하면 무한 루프에 들어갑니다.

OrdersTotal()을 계속 호출 하지 않으면 해당 문제가 발생하지 않습니다. 합계를 한 번 호출합니다. int에 넣습니다. for 루프에서 해당 int를 사용하십시오.

그 말에 당신은 내 이전 답변을 읽었습니까? 그 전체 루프는 완전한 시간 낭비입니다. 코드를 보세요. SellTicket의 가치는 이미 무엇이라고 생각합니까?

         if ( SellTicket!= 0 )
            {
             if (SmallMA>MediumMA)
            {
             for (Counter= 0 ;Counter<= OrdersTotal ()- 1 ;Counter++)
               {
               SelectedOrder = OrderSelect (Counter, SELECT_BY_POS );
               if ( OrderMagicNumber ()==MagicNumber&& OrderSymbol ()== Symbol ()&& OrderType ()== OP_SELL )
                  {
               //   while(IsTradeContextBusy()) Sleep(10);
                  Closed= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( Symbol (), MODE_ASK ),Slippage,Red);
                   if (Closed) SellTicket= 0 ;
                   else Alert ( "Symbol: " , Symbol (), " Ticket: " ,SellTicket, " unable to close sell order(s): sell ma convergence close routine" );                  
                  }
            Counter--;               
                }
            }
            }
 
그리고 시간이 지남에 따라 CPU 전력을 소모합니다.
 

예, 그렇습니다. EA에 필요한 값이 이미 있는 경우 이를 잊어버리고 주문 풀을 통해 검색하여 검색하는 것은 논리적이지 않습니다. 이러한 종류의 작업은 재부팅 복구의 일부로만 수행하면 됩니다.

사유: