Hatalar, hatalar, sorular - sayfa 1914

 
nys2000 :

Daha spesifik olarak, mümkünse?


sıfırdan başlamak

 
nys2000 :

Daha spesifik olarak, mümkünse?

for (i= 1 ; i <= OrdersTotal (); i++) Bu listedeki siparişler sıfırdan OrdersTotal ()-1 dahil olmak üzere numaralandırılmıştır (Artem Trishkin kusura bakmayın, nys2000 için bekleme süresini kısalttı).
 
Aleksei Beliakov :

sıfırdan başlamak


Bunlar iki eşdeğer seçenek. (i=1...) için ise, Sipariş Seçimi (i-1,...), if için (i=0,...) - Sipariş Seçimi(i,...)

 
Vladimir :
for (i= 1 ; i <= OrdersTotal (); i++) Bu listedeki siparişler sıfırdan OrdersTotal ()-1 dahil olmak üzere numaralandırılmıştır (Artem Trishkin kusura bakmayın, nys2000 için bekleme süresini kısalttı).

Teşekkürler, ancak OrderSelect'te 0'dan OrdersTotal()-1'e kadar olan sipariş numaralandırması dikkate alınır (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 :

Teşekkürler, ancak OrderSelect(i-1,...) içinde 0'dan OrdersTotal()-1'e kadar olan sipariş numaralandırması dikkate alınır.


ters sırada yapın..

 
nys2000 :

İşte böyle basit bir kod:

İşlev başlatıldığı anda iki Satın alma pozisyonu açık. İşlev, iki siparişin varlığının iki katı yazdırır: Geçiş No. 1, Geçiş No. 2.

Yorumları kaldırın ve işlevi yeniden çalıştırın. Bir satın alma siparişini neşeyle yıkıyor, dürüstçe "Pass No. 1" yazdırıyor ve döngüden çıkıyor. İkinci sıraya dokunulmadan kalır. "Pass #2" mesajı görünmez.

Sihir nedir?


1. i=1, Sayılan siparişler ... koşulu kontrol edildi 1<= 2 ? Evet. Siparişi Seçti ve Kapattı.

2. ben++ (i=2)

3. OrdersTotal()=1 <---------- döngü içinde bir emri kapatarak, aslında döngüden çıkma koşulunu değiştirdik

4. 2<=1 ? hayır <----------- işte sizin "sihriniz" ve buna göre döngüden çıkın

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

CHART_WINDOW_HANDLE neden ek bir grafik kimliği var, çünkü bir grafik kimliği var, hangi amaç için gerekli?

 
Konstantin :

CHART_WINDOW_HANDLE neden ek bir grafik kimliği var, çünkü bir grafik kimliği var, hangi amaç için gerekli?

Grafik kimliğinin mql ortamı için olduğunu ve HWND'nin winapi için olduğunu varsayacağım.
 

Çalışma hatası

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

Sonuç: rastgele sayı (kesinlikle 3 değil)