Fehler, Irrtümer, Fragen - Seite 2691

 
Igor Makanu:

Weil auf diese Weise vor allem einfache Typen in Bytes umgewandelt werden können:

dieser Code (erster Teil) sollte auch in C# funktionieren, zumindest hatte er nie Probleme mit Integer-Typen, es scheint, dass dies Option #3 ist

Sie können meinen Code in eine Schleife verpacken, um ihn etwas kompakter zu machen

UPD:

Ich kann auch die Gewerkschaft nutzen.

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:

Es ist auch möglich, Union sofort zu verwenden.

Das war einmal das Ergebnis.

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

D.h. vollständige Einheitlichkeit. Und andere Leckereien.

 
Vladimir Simakov:

Sie können die Gewerkschaft auch gleich verwenden.

Oben gab es ein Beispiel dafür, und es ist ein ziemlicher Refrain)))

 

Hallo zusammen, die Frage lautet wie folgt.

Warum werden die Namen der Indikatorpuffer nicht korrekt angezeigt, obwohl sie korrekt nummeriert sind?

Ich ändere die Nummerierung auf (was mir falsch erscheint) und die Puffernamen werden korrekt angezeigt:

Der Indikator wird in beiden Varianten korrekt wiedergegeben.

P.S. Wenn ich den Puffer Nr. 0 und seinen COLOR INDEX Nr. 1 zu den Nummern 2 bzw. 3 mache und die Nummerierung entsprechend ändere, wird das Histogramm (das der Puffer Nr. 0 ist) über die Linien im Indikator gezeichnet. Und das brauche ich nicht.

 

Sie erhalten keine SMS, wenn Sie sich für ein Demokonto anmelden. Wenn Sie dies bereits getan haben, sollten Sie dafür sorgen, dass es stabil funktioniert. Wenn Sie es bereits auf diese Weise getan haben, dann lassen Sie es konsequent funktionieren.

 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von Neulingen zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes" verschoben.
 

Warum stellt das Terminal eine Verbindung zu dem Server mit dem höheren Ping her, obwohl er einen niedrigeren Ping hat?

Wie bekämpfe ich sie?

2363 bauen

 
Andrey Dik:

Warum stellt das Terminal eine Verbindung zu dem Server mit dem höheren Ping her, obwohl er einen niedrigeren Ping hat?

Wie bekämpfe ich sie?

2363 bauen

Vielleicht weil die Verbindung besser ist?


 
Artyom Trishkin:

Vielleicht weil die Verbindung besser ist?


der erste Server hat eine bessere Verbindung (laut Indikator), aber das Terminal verbindet sich immer mit dem dritten Server, ich verbinde mich manuell wieder mit dem ersten Server.

Ich gebe zu, dass ich manchmal die Verbindung zum ersten Server verliere und das Terminal sich mit dem ersten verfügbaren Server verbindet, aber wenn ich die Verbindung zum ersten Server manuell wiederherstellen kann, warum kann das Terminal das nicht selbst tun?

und der dritte Server ist so langsam, dass die Kurse in der Marktübersicht für ein paar Minuten stehen bleiben!

 
Andrey Dik:

Der erste Server hat eine bessere Verbindung (laut Indikator), aber das Terminal verbindet sich immer mit dem dritten, ich verbinde mich manuell wieder mit dem ersten.


Dann weiß ich es nicht...