MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 540

 
Rustam Bikbulatov :

Teşekkürler!!!!! Şimdi koduma sığdırmaya çalışacağım! Neden ilk satırda (void) ?

İşlev adı Satın alma siparişlerini saydığını söylüyorsa neden bir sipariş türü belirtmeniz gerekiyor?
 
Artyom Trishkin :
İşlev adı Satın alma siparişlerini saydığını söylüyorsa neden bir sipariş türü belirtmeniz gerekiyor?

Ad birkaç saniye içinde değiştirilebilir, ancak sorun kodunun kendisi

 
Rustam Bikbulatov :

Ad birkaç saniye içinde değiştirilebilir, ancak sorun kodunun kendisi

Evet, sorunlar kodla değil, ne yaptığınızı anlamanızla ilgili :)

 //+------------------------------------------------------------------+
int fMarketOrdersOpen( const ENUM_ORDER_TYPE order_type)
  {
   int total= OrdersTotal (), count= 0 ;
   for ( int i=total- 1 ;i>= 0 ;i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS ))
        {
         if ( OrderType ()!=order_type) continue ;
         if ( OrderMagicNumber ()== 123 && OrderSymbol ()== Symbol ())
            count++;
        }
     }
   return count;
  }
//+------------------------------------------------------------------+
 
Rustam Bikbulatov :
Çocuklar. Zaten beyin kaynıyor (((Sipariş sayısının bu tanımından nasıl olduğunu söyle

lotlarda hacim miktarını yapmak için? Nelerin değiştirilmesi veya ayarlanması gerekiyor?

 double fMarketOrdersOpenB( int type){
   double c= 0 ,aBuyCount= 0 ;
   for ( int i= 0 ;i< OrdersTotal ();i++){
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )){
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()== 123 ){
             switch ( OrderType ()){
               case OP_BUY :aBuyCount+= OrderLots (); break ;
              }}} else { return (- 1 );}}
   if (type== OP_BUY )c=aBuyCount; return (c);}

En az bir sipariş yanlış seçilirse, fonksiyon -1 değerini döndürür.

Tür OP_BUY'a karşılık geliyorsa - SATIN AL lotlarının hacmini alın

Diğer tür değerleri için işlev 0 döndürür.

Görevi doğru anladıysam - çok sayıda SATIN AL emrinin hacmini saymak için parça sayısını değiştirin
 
Kirill Belousov :

En az bir sipariş yanlış seçilirse, fonksiyon -1 değerini döndürür.

Tür OP_BUY'a karşılık geliyorsa - SATIN AL lotlarının hacmini alın

Diğer tür değerleri için işlev 0 döndürür.

Görevi doğru anladıysam - çok sayıda SATIN AL emrinin hacmini saymak için parça sayısını değiştirin

Evet. kesinlikle. düşünemiyorum

 
Artyom Trishkin :

Evet, sorunlar kodla değil, ne yaptığınızı anlamanızla ilgili :)

Programlamayı tam olarak anlamadığımı kabul ediyorum. peki benim değil

 
Başlangıçta bu kod
 int fMarketOrdersOpenB( int type){
   int c= 0 ,aBuyCount= 0 ;
   for ( int i= 0 ;i< OrdersTotal ();i++){
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )){
         if ( OrderSymbol ()== Symbol () && OrderMagicNumber ()== 123 ){
             switch ( OrderType ()){
               case OP_BUY :aBuyCount++; break ;
              }}} else { return (- 1 );}}
   if (type== OP_BUY )c=aBuyCount; return (c);}

yapıştırmam gerekiyor

     .........
double lts=fMarketOrdersOpenB( OP_BUY );
   if (lts> 0 ){
         int irv2= OrderSend ( Symbol (), OP_BUY ,lts, Ask , 3 , 0 , 0 , NULL , 123 , 0 ,CLR_NONE);}

Kodumda siparişlerin sayısını gösteriyor ve tüm satın alma siparişlerinin lot hacmine ihtiyacım var

 
Rustam Bikbulatov :
Başlangıçta bu kod

yapıştırmam gerekiyor

Kodumda siparişlerin sayısını gösteriyor ve tüm satın alma siparişlerinin lot hacmine ihtiyacım var

En önemli şey doğru soruyu sormaktır.

İhtiyacınız olanı arayın

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Muzichenko :

En önemli şey doğru soruyu sormaktır.

İhtiyacınız olanı arayın

gördüm ve denedim. Zaten çok yardımcı oldu, ancak anlayışımın bir sınırı var

 
Rustam Bikbulatov :
Çocuklar. Zaten beyin kaynıyor (((Sipariş sayısının bu tanımından nasıl olduğunu söyle

lotlarda hacim miktarını yapmak için? Nelerin değiştirilmesi veya ayarlanması gerekiyor?

 double fMarketOrdersOpenB(const ENUM_ORDER_TYPE type)
{
     double lots= 0 ;
     for ( int i= 0 ;i< OrdersTotal ();i++)
     {
           if ( ! OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) )   continue ;
           if ( OrderSymbol ()!= Symbol () )                     continue ;
           if ( OrderMagicNumber ()!= 123 )                     continue ;
           if ( OrderType () != type )                         continue ;
          lots += OrderLots ();
     }
     return (lots);
}
Neden: