Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 540

 
Rustam Bikbulatov:

Grazie!!!!! Ora cercherò di infilarlo nel mio codice! Perché nella prima linea (void)?

E perché è necessario specificare il tipo di ordine se il nome della funzione dice che considera gli ordini di acquisto?
 
Artyom Trishkin:
E perché è necessario specificare il tipo di ordine se il nome della funzione dice che considera gli ordini di acquisto?

Il nome può essere cambiato in pochi secondi, ma il codice stesso è un problema

 
Rustam Bikbulatov:

Puoi cambiare il nome in pochi secondi, ma c'è un problema con il codice stesso

Il problema non è nel codice, ma nella tua comprensione di quello che stai facendo :)

//+------------------------------------------------------------------+
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:
Ragazzi. Il mio cervello sta già ribollendo(((( Per favore, consigliate come utilizzare questa definizione della quantità di ordini

fare la quantità di volume in lotti? Cosa deve essere cambiato o messo a punto?

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

Se non si riesce a selezionare almeno un ordine, la funzione restituisce -1

Se il tipo corrisponde a OP_BUY - otterrete il volume dei lotti BUY

Se il valore del tipo è diverso, la funzione restituisce 0.

Se ho capito bene il compito - cambiare il conteggio delle unità al conteggio dei lotti dell'ordine BUY
 
Kirill Belousov:

Se almeno un ordine non è selezionato correttamente, la funzione restituisce -1

Se il tipo corrisponde a OP_BUY - otterrete il volume dei lotti BUY

Se il valore del tipo è diverso, questa funzione restituisce 0.

Se ho capito bene il compito, si tratta di cambiare il conteggio dei pezzi al conteggio dei lotti dell'ordine BUY

Sì, esattamente. Non riesco a capire

 
Artyom Trishkin:

Il problema non è nel codice, ma nella tua comprensione di ciò che fai :)

Sono d'accordo che non capisco completamente la programmazione. beh, non è la mia cosa((((

 
Inizialmente questo codice
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);}

Ho bisogno di inserire

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

Il mio codice stampa il numero di ordini ma ho bisogno del volume del lotto di tutti gli ordini di acquisto

 
Rustam Bikbulatov:
Questo codice è originariamente

Ho bisogno di inserire

Il mio codice stampa il numero di ordini e ho bisogno del volume del lotto di tutti gli ordini di acquisto

La cosa più importante è fare la domanda giusta.

Scoprite da soli di cosa avete bisogno

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

La cosa più importante è fare la domanda giusta.

Cerca ciò di cui hai bisogno

Ho visto e provato. Ha già aiutato molto, ma c'è un limite alla mia comprensione

 
Rustam Bikbulatov:
Ragazzi. Già il mio cervello sta bollendo(((( Potete dirmi come fare il numero di ordini da questa definizione?

fare la quantità di volume in lotti? Cosa deve essere cambiato o messo a punto?

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