Errori, bug, domande - pagina 1591

 
Sergey Kruglov:
Il problema è che quando scarico una versione di prova di qualche EA su mt4, si apre un terminale non funzionante, e poi l'ho cancellato e ora non si apre nessun terminale, anche se ne ho altri tre installati. C'è un modo per specificare che i programmi vengono scaricati in un particolare terminale?
Cerca direttamente dal terminale desiderato - c'è un campo di ricerca nell'angolo superiore destro di MetaTrader 5.
 

Domanda per gli intenditori.

Ho bisogno di capire quanta memoria posso usare per la query CopyTicks in modo da non rimanere "senza memoria".

Purtroppo non posso scoprire tramite il terminale quanta memoria disponibile ho attualmente.

Uso un semplice script per ottenere le informazioni:

void OnStart()
  {
   int memory_physical=TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL);
   printf("Physical memory in the system: %d MB",memory_physical);

   int memory_total=TerminalInfoInteger(TERMINAL_MEMORY_TOTAL);
   printf("Memory available to the process of the terminal (agent): %d MB",memory_total);

   int memory_available=TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE);
   printf("Free memory of the terminal (agent) process: %d MB",memory_available);

   int memory_used=TerminalInfoInteger(TERMINAL_MEMORY_USED);
   printf("Memory used by the terminal (agent): %d MB",memory_used);
  }

2016.05.29 09:50:50.642    MemoryTest (EURUSD,H1)    Memory used by the terminal (agent): 319 MB
2016.05.29 09:50:50.632    MemoryTest (EURUSD,H1)    Free memory of the terminal (agent) process: 23963 MB
2016.05.29 09:50:50.621    MemoryTest (EURUSD,H1)    Memory available to the process of the terminal (agent): 24282 MB
2016.05.29 09:50:50.611    MemoryTest (EURUSD,H1)    Physical memory in the system: 12141 MB

Per qualche motivo la memoria disponibile è il doppio della memoria fisica. Non è lo swap, è piccolo (400 MB). Mi aspettavo che il valore fosse come in task manager, la memoria disponibile è di circa 7000 MB.

Chi può dirmi cosa sono questi strani numeri?

 

Buona sera, per favore consigliate come eliminare l'errore 4059 nel tester. Voglio davvero ottenere i prezzi di un altro strumento, per esempio LTCUSD, da un Expert Advisor che lavora con uno strumento, per esempio LTCBTC.

void OnTick()
  {
//---
   {if(One)
   { 
      ResetLastError();
      Print("1. LTCBTC >>",MarketInfo("LTCBTC",MODE_BID));
      Print(" Error=",GetLastError());
      ResetLastError();
      Print("2. LTCUSD >>",MarketInfo("LTCUSD",MODE_BID));
      Print(" Error=",GetLastError());
      ResetLastError();
      Print("3. BTCUSD >>",MarketInfo("BTCUSD",MODE_BID));
      Print(" Error=",GetLastError());
      One=false;
   }}

  }
 
Natalja Romancheva:

Buona sera, per favore consigliate come eliminare l'errore 4059 nel tester. Voglio davvero ottenere i prezzi di un altro strumento, per esempio LTCUSD, da un Expert Advisor che lavora con uno strumento, per esempio LTCBTC.

Non su MT4.
 
Andrey Voytenko:

Domanda per gli intenditori.

Ho bisogno di capire quanta memoria posso usare per la query CopyTicks in modo da non rimanere "senza memoria".

Sfortunatamente, non posso scoprire via terminale quanta memoria disponibile ho al momento.

Sto usando un semplice script per ottenere le informazioni:


Per qualche motivo la memoria disponibile è il doppio della memoria fisica. Non è lo swap, è piccolo (400 MB). Mi aspettavo che il valore fosse come in task manager, la memoria disponibile è di circa 7000 MB.

Chi può dirmi cosa sono questi strani numeri?

È la memoria virtuale. Windows può aumentare la dimensione del file di swap se necessario.
 
admoon:
Secondo me, if()dovrebbe funzionare solo una volta, quando la condizione tra parentesi è vera. Ma in realtà viene attivato ad ogni controllo e tutte le espressioni in {} vengono eseguite ad ogni passo e masticano il tempo della macchina. Cosa ha a che fare questo con la globalità di W? È solo più facile cambiare il passo dal terminale che dall'editor.

Sembra che tu abbia un errore di stampa nel tuo codice e volevi scriverlo così:

int i;
//---
   int co=0;
   for(i=0;i<=w;i++)
     {
      if(i==10)
        {
         co++; 
         Alert(co);
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
 
Natalja Romancheva:

iClose + iBarShift. Il tester in MT4 controlla la correttezza del prezzo corrente dello strumento in fase di test, la correttezza dei dati di altri strumenti è necessario assicurarsi

Ed è improbabile che tu possa arbitrare efficacemente in MT4

 
Evgeniy Ilin:
Ci sono dei moderatori in giro? Ho inviato una richiesta al venditore, è rimasto appeso per 3-4 giorni. Quanto tempo devo aspettare?
Ebbene? Hanno risposto. Anche il mio si blocca, anche se per un tempo più breve.
 
Alexey Navoykov:

Avrebbe dovuto essere così:

Le classi template possono essere divise in una dichiarazione e un'implementazione? MetaQuotes, quando ha introdotto le classi template, ha spiegato questa limitazione.
 

Insetto variabile

Costruire 1340 MT5.

Se metti delle variabili:

input bool test=false;

extern bool test=false;

allora il compilatore non darà un errore, ma nei parametri EA sul grafico - questi parametri scompariranno.


Quindi è come se fossero due variabili diverse, anche se sono le stesse.