Errori, bug, domande - pagina 2673

 
Sergey Dzyublik:
Bug MT5(build 2323),
All'interno di una funzione template, un puntatore passato all'interno di una conversione di tipo esplicita si comporta come una classe, causando di conseguenza un errore di compilazione:

Grazie per il post, risolto

 
Aliaksandr Hryshyn:

La differenza è la presenza di parentesi.

   ulong n_yes=3*1000;; ok  
   ulong n_no=(3*1000;); ne ok


 
Aliaksandr Hryshyn:

La differenza è la presenza di parentesi.

dipende da voi, ma avreste potuto controllare prima di scrivere

 
MT5 bug (build 2361) un altro problema con le priorità delle chiamate a funzioni template sovraccaricate rispetto al comportamento del C++.
In MT5 errore di compilazione "chiamata ambigua a funzione sovraccaricata", in C++ è OK.
C++ online(https://onlinegdb.com/Sy8cqdFr8);

template<typename _Tp>
struct It_wrapper{
   _Tp p;
};

template<typename _Tp>
struct It_g : public It_wrapper<_Tp>{};


template<typename _It, typename _Tp>
int __test_print(const It_wrapper<_It> &it, int n, const _Tp &value){
   Print(it.p);
   return 0;
};

template<typename _It> 
int test_print(const It_wrapper<_It> &it, int n, const int value){
   return __test_print(it, n, value);
}    

template<typename _It, typename _ValueType>                                                                                                    
int test_print(const It_wrapper<_It> &it, int n, const _ValueType &value){                                                              
   return __test_print(it, n, value);                                                                                                     
}   
  
   
void OnStart(){
   It_g<int> it;
   It_g<string> it_s;
   
   it.p = 4;
   it_s.p = "test";
   
   const int n = 10;
   test_print(it, 5, n);          // Compile Error: 'test_print' - ambiguous call to overloaded function
   test_print(it_s, 5, n);        // Compile Error: 'test_print' - ambiguous call to overloaded function
};


int main(){
   OnStart();
   return 1;
};
 

L'editor di testo è rotto nel mercato, quando si cerca di espanderlo a schermo intero solo il pulsante di salvataggio si blocca ....

Inoltre è possibile caricare un'immagine di grande peso, l'immagine viene caricata ma non visualizzata correttamente nella descrizione.
 
Bug 1 La commissione position.Comision() nei test è sempre uguale a 0 (nel tester stesso la commissione è mostrata nella storia della posizione), questo influenza l'ottimizzazione dei parametri per gli Expert Advisors che calcolano i calcoli usando la commissione.

Bug 2 simbol.Spred() dà valori reali solo al terzo accesso dall'inizio del programma

Bug 3 quando perdo un agente di prova (lavoro solo in rete locale) per ore non può dimenticarlo e cerca di trovarlo anche se l'agente è già apparso nella rete locale - devo cambiare l'ip dell'agente e solo dopo che il tester dimentica l'agente entro un'ora, restituisco l'ip dell'agente e il tester continua a lavorare. Il risultato è l'interruzione dei test per un tempo che va da 30 minuti a qualche ora - per fortuna.

Bug 4 nella descrizione dell'algoritmo genetico, è scritto quando si fermano i test o quando si fermano i test manualmente se i parametri di test non vengono cambiati la cache dell'ottimizzazione viene memorizzata e quando si riprendono i test, l'ottimizzazione continua dal punto di arresto - nessuna cazzata in realtà - l'ottimizzazione ricomincia da capo, e i risultati dell'ottimizzazione vengono aggiunti al file risultati dell'ottimizzazione dell'ottimizzazione fermata. Come risultato, ci sono solo più risultati di ottimizzazione nel file dei risultati di ottimizzazione - nessuna utilità pratica nel trovare i parametri ottimali, il tempo complessivo di ottimizzazione aumenta.

Il bug 5 del compilatore mql5 mi sembra che non sia semplicemente ottimizzato - i programmi stanno diventando più lenti, il che influisce sulla velocità di ottimizzazione dei parametri. Un programma di 20 linee non può essere così lento.
 
Vladimir Pastushak:

Market ha rotto l'editor di testo, quando cerco di espanderlo a schermo intero solo il pulsante di salvataggio si blocca ....

Inoltre è possibile caricare una foto di grande peso, l'immagine viene caricata ma non viene visualizzata correttamente nella descrizione.

Ciao!

Grazie per la segnalazione del bug!

Potresti elaborare il problema con l'immagine?

 

Mi sono imbattuto in uno strano problema, su un tick apre un ordine e chiude l'altro, tutto funziona bene nel tester, ma l'ho messo sul conto reale e in un posto è partito il tamburello, la posizione si apre, ma l'altra non si chiude. Ho una domanda a questo proposito: è possibile inviare due ordini contemporaneamente (apertura e chiusura) quando si fa trading sul conto reale?

Razgon_y=OrderSend(Symbol(),OP_BUY,Razgon_Lot,Ask,100,0,0,Razgon_Comment,Razgon_Magic,0,clrBlue); 
       if(Razgon_y<0) 
       { 
        Print("OrderSend завершилась с ошибкой #",GetLastError()); 
       } 
       else ( Print("Функция OrderSend успешно выполнена") );
       for(int Razgon_index=0; Razgon_index<=OrdersTotal(); Razgon_index++)
       {
        if(OrderSelect(Razgon_index,SELECT_BY_POS,MODE_TRADES)==true)
        {
         if(OrderMagicNumber()==Razgon_Magic && OrderType()==OP_SELL && OrderProfit()>0)
         {
          Razgon_OC=OrderClose(OrderTicket(),OrderLots(),Ask,100,clrGreen);
          if(Razgon_OC==false) 
          { 
           Print("OrderClose завершилась с ошибкой #",GetLastError()); 
          } 
           else ( Print("Функция OrderClose успешно выполнена") );
          Razgon_AccountEquity=AccountEquity();
         }
        }
       }
      }
 
Maksim Slovakov:

Mi sono imbattuto in uno strano problema, su un tick apre un ordine e chiude l'altro ad un certo momento. Nel tester funziona tutto bene, ma l'ho messo sul conto reale e in un punto è partito il tamburello, la posizione si apre, ma l'altra non si chiude. A questo proposito, ho una domanda: è possibile inviare due ordini contemporaneamente (apertura e chiusura) quando si fa trading sul conto reale?

Il vostro ciclo non è corretto per le posizioni di chiusura. Fate il ciclo inverso.

 

Ha rilevato un errore critico nel terminale mentre lavorava con il debugger su dati reali (build 2361):

2020.03.16 16:30:41.730 (RTS Splice,M1)    crash -->  00000115A15300A5 488D0B            lea        rcx, [rbx]

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300A8 E8850B0000        call       0x115a1530c32

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300AD 90                nop        

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300AE 89842488000000    mov        [rsp+0x88], eax

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B5 F4                hlt        

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B6 842488            test       [rax+rcx*4], ah

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B9 0000              add        [rax], al

2020.03.16 16:30:41.730 (RTS Splice,M1)

2020.03.16 16:30:41.730 (RTS Splice,M1) 00: 0x00000115A15300A5

2020.03.16 16:30:41.730 (RTS Splice,M1) 01: 0x00000115A7DFFD64

2020.03.16 16:30:41.730 (RTS Splice,M1) 02: 0x00000001776FA270

2020.03.16 16:30:41.730 (RTS Splice,M1) 03: 0x0000000000000001

2020.03.16 16:30:41.730 (RTS Splice,M1) 04: 0x00000001776FA23C

2020.03.16 16:30:41.730 (RTS Splice,M1)