오류, 버그, 질문 - 페이지 1914

 
nys2000 :

더 구체적으로, 가능하다면?


처음부터 시작

 
nys2000 :

더 구체적으로, 가능하다면?

for (i= 1 ; i <= OrdersTotal (); i++) 이 목록의 주문은 0에서 OrdersTotal ()-1까지 번호가 매겨져 있습니다(Artem Trishkin은 실례지만 nys2000에 대한 대기 시간을 단축했습니다).
 
Aleksei Beliakov :

처음부터 시작


이는 두 개의 동등한 옵션입니다. (i=1...)인 경우 OrderSelect (i-1,...), (i=0,...)인 경우 - OrderSelect(i,...)

 
Vladimir :
for (i= 1 ; i <= OrdersTotal (); i++) 이 목록의 주문은 0에서 OrdersTotal ()-1까지 번호가 매겨져 있습니다(Artem Trishkin은 실례지만 nys2000에 대한 대기 시간을 단축했습니다).

감사합니다. 하지만 0에서 OrdersTotal()-1까지의 주문 번호는 OrderSelect (i-1,...)에서 고려됩니다.

 
int OrdersTotalT(int _type)
  {
   int _total=0;
   for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
     {

      bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==_type)
        {
           _total++;
        }
     }
   return(_total);
  }
 
nys2000 :

감사합니다. 하지만 0에서 OrdersTotal()-1까지의 주문 번호는 OrderSelect(i-1,...)에서 고려됩니다.


역순으로 하세요..

 
nys2000 :

다음은 간단한 코드입니다.

기능이 실행되는 순간 두 개의 매수 포지션이 열려 있습니다. 이 함수는 두 가지 주문이 있는 경우 두 번 인쇄합니다. 즉, 1번 통과, 2번 통과입니다.

주석을 제거하고 기능을 다시 실행하십시오. 그녀는 하나의 구매 주문을 유쾌하게 부수고 정직하게 "Pass No. 1"을 인쇄하고 사이클을 종료합니다. 2차 주문은 그대로 유지되며 "Pass #2" 메시지가 표시되지 않습니다.

마법은 무엇입니까?


1. i=1, 계산된 주문 ... 조건 확인 1<= 2 ? 네. 주문을 선택하고 마감했습니다.

2. i++ (i=2)

3. OrdersTotal()=1 <---------- 루프 내에서 주문을 닫음으로써 루프를 종료하기 위한 조건을 실제로 변경했습니다.

4. 2<=1 ? 아니요 <---------- 여기에 "마법"이 있으므로 루프에서 종료하십시오.

 void CloseAllOrders()
{
bool Ans;
int total= OrdersTotal ();
   for ( int i= 1 ; i <=total; i++)     
      {      
       Print ( "Проход № " , i);      
       if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) 
         {  
         if ( OrderSymbol () != Symbol ())
             continue ;
         if ( OrderType ()== 0 )
             {
//            Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Bid,Digits),25);
             }           
         if ( OrderType ()== 1 )
             {
//            Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Ask,Digits),25);
             } 
         }
      }      
         
return ;
   
}
 

차트 ID가 있기 때문에 추가 차트 ID CHART_WINDOW_HANDLE 이 있는 이유는 무엇입니까? 어떤 용도로 필요한가요?

 
Konstantin :

차트 ID가 있기 때문에 추가 차트 ID CHART_WINDOW_HANDLE 이 있는 이유는 무엇입니까? 어떤 용도로 필요한가요?

차트 ID는 mql 환경용이고 HWND는 winapi용이라고 가정하겠습니다.
 

런타임 에러

 int f( int t )
{
union U {
        U( int t ) : t1( t ) {}
         int t2;
         int t1;
};
	U u( t );
         return u.t2;
}
void OnStart ()
{
         Print ( f( 3 ));
}

결과: 난수(물론 3은 아님)