Bibliotheken: TradeTransactions - Seite 5

 
fxsaber:

Die Bibliotheksquellen enthalten Convert.mqh, das ein Array eines Typs schnell in ein Array eines anderen Typs umwandelt.

// Schnelles Array-Casting.
#include <fxsaber\TradeTransactions\Convert.mqh> // https://www.mql5.com/de/code/22166

void OnStart()
{
  MqlTick Ticks[];

  MqlRates Rates[];  
  CopyRates(_Symbol, PERIOD_CURRENT, 0, 10, Rates); // Ich habe die Zitate.
  CONVERT::ArrayToArray(Rates, Ticks);              // Casting MqlRates[] -> MqlTick[].

  MqlRates Rates2[];    
  CONVERT::ArrayToArray(Ticks, Rates2);             // Casting MqlTick[] -> MqlRates[].
  ArrayPrint(Rates2);                               // Stellen Sie sicher, dass alles korrekt ist.
}
 
fxsaber :

Sie können alles über Ressourcen austauschen.


Sie behaupten, Container2 herunterzuladen, aber Sie benutzen ihn nicht. Logischerweise sollte das so sein:

  // Abrufen der Daten in ihrer ursprünglichen Form
  string Str2[];
  Container2[0].Get(Str2);                // Ich habe das Array
  ArrayPrint(Str2);

  PRINT(Container2[1].Get<double>())      // Wir haben eine Nummer
  PRINT(Container2[2].Get<MqlTick>().bid) // Wir haben die Struktur   
In Ihrem Beispiel ist das Ergebnis natürlich das gleiche.

Noch wichtiger ist, dass ich den obigen Code als Skript mit Bibliotheksdownload von

Ich habe :

2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = string[2]
2019.03.26 18:11:51.624 R-277866Ursprung (EURUSD,M1) Container[i].GetType() = double
2019.03.26 18:11:51.624 R-277866Ursprung (EURUSD,M1) Container[i].GetType() = MqlTick
2019.03.26 18:11:51.656 R-277866Original (EURUSD,M1) Stapelüberlauf in '...\MQL5\Scripts\forum\R-277866Original.ex5'

?
 
Alain Verleyen:

Sie behaupten, Container2 zu laden, aber Sie verwenden ihn nicht. Logischerweise sollte es so sein:

Ja, es gibt einen Tippfehler in dem Beispiel.


Natürlich ist das Ergebnis in Ihrem Beispiel das gleiche.

Mit Ihrer Änderung wird das Ergebnis das gleiche sein.


Noch wichtiger ist, dass ich den obigen Code als Skript mit den Bibliotheken, die ich von

Ich habe :

2019.03.26 18:11:51.624 R-277866Original (EURUSD,M1) Container[i].GetType() = string[2]
2019.03.26 18:11:51.624 R-277866Ursprung (EURUSD,M1) Container[i].GetType() = double
2019.03.26 18:11:51.624 R-277866Ursprung (EURUSD,M1) Container[i].GetType() = MqlTick
2019.03.26 18:11:51.656 R-277866Original (EURUSD,M1) Stapelüberlauf in '...\MQL5\Scripts\forum\R-277866Original.ex5'

?

Ohne den Quellcode kann ich nichts sagen.

 
fxsaber :
...

Ohne den Quellcode kann ich nichts sagen.

Der Quelltext ist genau Ihr Code. Baujahr 2009.

Dateien:
 
Alain Verleyen:

Es ist Ihr Code, der die Quelle ist. Build 2009.

Ausgeführt ohne Fehler.

 

Guten Tag.

Ich erkläre gerade

RESOURCEDATA<uchar> Res;

Und ein solcher Fehler

'Data' - struct undefined       Convert.mqh     75      49
in template 'int CONVERT::ArrayToStruct(const SOURCE&[],TARGET&[])' specified with [SOURCE=uchar,TARGET=uint]   Convert.mqh     60      14
'Data' - struct undefined       Convert.mqh     43      38
in template 'int CONVERT::StructToArray(const SOURCE&[],TARGET&[])' specified with [SOURCE=uchar,TARGET=uint]   Convert.mqh     29      14

Vorher war es nicht, ich glaube nach dem Update ist das Terminal erschienen (Build 2085). Oder bin ich irgendwo dumm? )

 
Oleksii Chepurnyi:

Vorher gab es das Problem nicht, ich glaube, es trat nach dem Terminal-Update (Build 2085) auf.

Dieser Compilerfehler wurde lokalisiert

template <typename T>
struct A { T a; };

void f1()
{
  struct B { int Data; };
  A<B> Tmp;
}

void f2()
{
  struct B { int Data; };
  A<B> Tmp;
  
  Tmp.a.Data = 0; // 'Daten' - Struktur undefiniert
}
 
Ich glaube, nach der Aktualisierung des Terminals erschien es
.

Ja, es gibt keinen solchen Fehler im Jahr 2037.

 
Oleksii Chepurnyi:

Ja, im Jahr 2037 gibt es keinen solchen Fehler.

Ich habe den Fehler umgangen, indem ich Include\fxsaber\TradeTransactions\Convert.mqh durch die angehängte Datei ersetzt habe.

Dateien:
Convert.mqh  4 kb
 
fxsaber:

Um den Fehler zu umgehen, ersetzen Sie Include\fxsaber\TradeTransactions\Convert.mqh durch die angehängte Datei.

Funktioniert ) Vielen Dank!