Errori, bug, domande - pagina 320

 
stringo:
Il codice è fondamentalmente diverso.

Wow... Sono scioccato...

Puoi postare qualche semplice frammento di codice x32 e x64 per un confronto? Solo per soddisfare la tua curiosità, per così dire...

 
KffAlex:


Cari signori! È la 3a volta che incontro questo problema. Creare una libreria esterna sotto Windows7 x64 porta a certi miracoli:


Scusate il ritardo. Ti ha risposto in privato.

Si prega di allegare il codice sorgente. Se possibile, per favore, fatelo attraverso servicedesk. Questo ridurrà al minimo la probabilità di tali ritardi.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
AlexSTAL:

Wow... Sono scioccato...

Puoi tracciare un semplice frammento di codice per il confronto tra x32 e x64? Per calmare la vostra curiosità, per così dire...

Non posso darvi il codice su due piedi - non ho la caratteristica a portata di mano.

Le differenze sono le seguenti.

  • I registri sono a 64-bit - 32-bit. Corrispondentemente, l'aritmetica a 64 bit sta in una sola istruzione (in 32 bit la divisione di due interi a 64 bit è fatta in 40 istruzioni dell'assemblatore)
  • Ci sono più registri a 64 bit. Corrispondentemente, l'indirizzamento dei registri è diverso.
  • La convenzione di chiamata è diversa. Per esempio, in 64 bit i primi 4 parametri di una funzione sono passati nei registri
 
Dovremmo aggiungere il tempo di ottimizzazione a MT5. Era in MT4 e sarebbe la giusta correzione qui)
 
Renat:

Gli agenti locali rimangono in memoria con le loro cache sollevate per altri 5 minuti dopo che il test è stato fermato, in attesa di nuovi compiti. Se nessuno li carica entro 5 minuti, vengono automaticamente scaricati con tutte le risorse rilasciate.

Questo meccanismo di attesa ha permesso agli agenti di aumentare la velocità di risposta sui compiti ripetuti a scapito delle infrastrutture pronte/aumentate.

ps: questo riguarda gli agenti locali. gli agenti remoti in esecuzione come servizi non vengono scaricati, ma liberano anche risorse dopo un certo tempo di inattività.

Usando la build 404. Sto parlando di problemi sugli agenti remoti. Anche dopo 10 ore di inattività, la memoria non viene liberata.

Qualche altro problema:

1. quasi costantemente quando si esegue un test di strategia, il primo passaggio su ogni processore termina rapidamente e restituisce zero risultati.

E se vi fermate e ripartite, questi zeri non vengono ricalcolati. Sto eseguendo il test su un gran numero di processori e 40-50 risultati con zeri e nessuna possibilità di ricalcolare questi dati.

A volte uno dei processori passa a failed e inizia a restituire risultati nulli alcune volte al secondo. Ma se lo fermo questi dati saranno ricalcolati di nuovo (campo arancione nella tabella).

3. Quando si eseguono agenti remoti su 16 processori, internet 1 megaplayer non permette una storia di download così veloce, ed è ovvio che a causa del timeout tutti i processori sono falliti. Se si abilita un processore alla volta, di solito funziona. È possibile utilizzare un sistema con 16 processori per scaricare la storia sul primo processore e poi copiarla sugli altri processori? O semplicemente aumentare il timeout quando si carica la storia.

 
a483483:

Usando la build 404. Sto parlando di problemi sugli agenti remoti. Anche dopo 10 ore di inattività, la memoria non viene liberata.

Qualche altro problema:

1. quasi costantemente quando si eseguono test di strategia il primo passaggio su ogni processore termina rapidamente e restituisce zero risultati.

E se vi fermate e ripartite, questi zeri non vengono ricalcolati. Sto eseguendo il test su un gran numero di processori e 40-50 risultati con zeri e nessuna possibilità di ricalcolare questi dati.

A volte uno dei processori passa a failed e inizia a restituire risultati nulli alcune volte al secondo. Ma se lo fermo questi dati saranno ricalcolati di nuovo (campo arancione nella tabella).

3. Quando si eseguono agenti remoti su 16 processori, internet 1 megaplayer non permette una storia di download così veloce, ed è ovvio che a causa del timeout tutti i processori sono falliti. Se si abilita un processore alla volta, di solito funziona. È possibile utilizzare un sistema con 16 processori per scaricare la storia sul primo processore e poi copiarla sugli altri processori? O semplicemente aumentare il timeout quando si carica la storia.


Ho bisogno dei log dell'agente, delle impostazioni, del simbolo, del server.

È possibile EX5 esperto, ma meglio, naturalmente, la fonte.

Preferibilmente in servicedesk.

 
KffAlex:
Questo problema non esiste se le funzioni vengono spostate nel corpo del programma, e su Windows XP questo problema semplicemente non esiste!!!
Sembra essere una questione di bitness (64/32), in Windows XP si lavora sotto 32 bit, quindi l'errore non viene riprodotto.
Si prega di creare una richiesta a servicedesk con i file EX5 del problema allegati.(il tuo link al Service Desk)
 

Aiuto, non riesco a capire come confrontare i due numeri, sono passati 2 giorni

(data di oggi) > (data di ieri)

          datetime bark[1];
          CopyTime(Symbol1,NULL,0,1,bark);
          if(bark[0]<=order)

ordine - (data di ieri)

O non è proprio possibile?

 

Ha scritto questo:

       for (uint k=0; k<66; k++)
         {
          datetime order=(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
          datetime bark[1];
          CopyTime(Symbol1,NULL,k,1,bark);
          if(bark[0]<=order)
            {

il tester si blocca e questo è tutto

 
alexluek:

Ha scritto questo:

C'è qualcosa che va in loop nel tester e questo è tutto.

Il tempo nel futuro è più lungo che nel passato, il tuo pezzo di codice non è illustrativo, non è chiaro cosa stai facendo nel blocco if e cosa vuoi da esso...

Ecco, secondo me, informazioni esaustive sul confronto dei tempi :)

//+------------------------------------------------------------------+
//|                                                         test.mq5 |
//|                                                           mrProF |
//|                                                          http:// |
//+------------------------------------------------------------------+
#property copyright "mrProF"
#property link      "http://"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   datetime past=D'2010.12.1'; //Прошлое
   datetime future=D'2010.12.02'; //Будущее

   if(past<future)
     {
      Print(past," раньше чем: ",future);
     }

   datetime buffTime[1]; //Буфер для времени последнего бара
   CopyTime(_Symbol,_Period,0,1,buffTime); //Копируем время последнего бара

   if(buffTime[0]>past)
     {
      Print(past," раньше чем: ",buffTime[0]);
     }

  }
//+------------------------------------------------------------------+