Errori, bug, domande - pagina 2691

 
Igor Makanu:

La maggior parte dei tipi semplici possono essere convertiti in byte in questo modo:

questo codice (prima parte) dovrebbe funzionare anche in C#, almeno non ha mai avuto problemi con i tipi interi, sembra che questa sia l'opzione #3

puoi avvolgere il mio codice in un ciclo per renderlo un po' più compatto

UPD:

Posso usare anche l'unione.

void OnStart()
  {
   uchar a[];
   UByte<int> b=0xA2F38114;
   if (b.GetArray(a))
      for (int i=0;i<sizeof(int);PrintFormat("%#x",a[i++]));
   }

template<typename T>
union UByte{
   T  val;
   uchar arr[sizeof(T)];
   T operator =(T x) {return val=x;}
   bool GetArray(uchar &mArr[]) {return ArrayCopy(mArr,arr)==sizeof(T);}
};
 
Vladimir Simakov:

È anche possibile usare l'unione subito.

Questo era una volta il risultato.

#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void f( const uchar &Array[] )
{
  ArrayPrint(Array);
  
  Print("----");
}

void OnStart()
{
  int i = 5;
  double d[] = {0, 1, 2};

  // Простые типы и их массивы
  f(_R(i).Bytes);
  f(_R(d).Bytes);
  
  MqlTick Tick = {0};
  MqlTick Ticks[2];

  // Простые структуры и их массивы.
  f(_R(Tick).Bytes);
  f(_R(Ticks).Bytes);
  
  string Str;
  string StrArray[] = {"12", "34", "56"};
    
  // Строки и их массивы.
  f(_R(Str).Bytes);
  f(_R(StrArray).Bytes);
}

Cioè una completa uniformità. E altre chicche.

 
Vladimir Simakov:

Puoi anche usare l'unione subito.

C'era un esempio di questo sopra, ed è un bel coro)))

 

Ciao a tutti, la domanda è la seguente.

Perché quando i buffer degli indicatori sono numerati correttamente, i loro nomi sono visualizzati in modo errato:

Cambio la numerazione in (ciò che mi sembra) errata e i nomi dei buffer vengono visualizzati correttamente:

L'indicatore è reso correttamente in entrambi.

P.S. Se rendo il buffer #0 e il suo COLOR INDEX #1 numeri 2 e 3 rispettivamente, con un corrispondente cambiamento di tutta la numerazione, l'istogramma (che è il buffer #0) è disegnato sopra le linee dell'indicatore. E non ho bisogno di questo.

 

Non si riceve un SMS quando ci si iscrive a un conto demo, quindi se l'avete già fatto in questo modo, fatelo funzionare in modo stabile. Se l'avete già fatto in questo modo, allora fatelo funzionare in modo coerente.

 
I commenti non relativi a questo argomento sono stati spostati in "Tutte le domande dei neofiti su MQL4 e MQL5, aiuto e discussione su algoritmi e codici".
 

Perché il terminale si connette al server con un ping più alto quando ne ha uno più basso?

Come posso combatterlo?

costruire 2363

 
Andrey Dik:

Perché il terminale si connette al server con un ping più alto quando ne ha uno più basso?

Come posso combatterlo?

costruire 2363

Forse perché la connessione è migliore?


 
Artyom Trishkin:

Forse perché la connessione è migliore?


il primo server ha una connessione migliore (secondo l'indicatore), ma il terminale si collega sempre al 3°, mi ricollego manualmente al 1°.

Ammetto che a volte perdo la connessione con il primo server e il terminale si connette al primo disponibile, ma se posso riconnettermi al primo manualmente, perché il terminale non può farlo da solo?

e il terzo server è così lento che le quotazioni nella panoramica del mercato si fermano per alcuni minuti!

 
Andrey Dik:

Il primo server ha una connessione migliore (secondo l'indicatore), ma il terminale si collega sempre al 3°, mi ricollego manualmente al 1°.


Allora non so...