Bibliotheken: TradeTransactions - Seite 6

 
Hallo zusammen, ich bin durch eine Fußnote aus dem Thema "Typische Fehler und deren Beseitigung bei der Arbeit mit der Handelsumgebung" hierher gekommen.

Ich möchte die Bibliothek und den Ansatz nutzen, um "meine" Positionen nach dem Senden von asynchron gesendeten Market Orders zu berechnen.
Die meisten Beispiele und Diskussionen berücksichtigen nicht die Situation, wenn der Handel auf Konten stattfindet, auf denen andere Expert Advisors parallel arbeiten, und dementsprechend alle Events und OnTradeTransaction-Ergebnisse gemeinsam sind.
Wird diese Logik auf HEDGING-Konten mit anderen EAs funktionieren. Insbesondere, wenn die Experten auf demselben Instrument handeln, aber mit ihrem eigenen Magier?
Funktioniert diese Bibliothek mit einem Multicurrency Expert Advisor, der Trades auf anderen Instrumenten als dem eingestellten eröffnet?
 
Sergey Genikhov:
Funktioniert diese Bibliothek mit einem Multicurrency Expert Advisor, der Trades auf anderen Instrumenten als dem eingestellten eröffnet?

Sie wird.

 
Erinnern Sie mich bitte daran, ich glaube, ich habe einen ähnlichen Fehler bereits behoben, aber ich bin wieder darauf gestoßen und habe viele Stunden verloren. Es scheint, dass in Convert.mqh die Größe des Ziel-Arrays reduziert wird. Ich musste das Array uchar[39] in die Ressource einfügen, aber in der Funktion ArrayToStruct wird der Empfänger vom Typ uint[] hartnäckig als 9-stellig betrachtet, d. h. die letzten 3 Zeichen fehlen.
 
Stanislav Korotky:
Erinnern Sie mich bitte daran, ich glaube, ich habe einen ähnlichen Fehler bereits behoben, aber ich bin wieder darauf gestoßen und habe viele Stunden verloren. Es scheint, dass in Convert.mqh die Größe des Ziel-Arrays reduziert wird. Ich hätte das Array uchar[39] in die Ressource einfügen sollen, aber die Funktion ArrayToStruct betrachtet den Empfänger vom Typ uint[] hartnäckig als Größe 9, d.h. die letzten 3 Zeichen fehlen.

Ja, sie werden abgeschnitten. Versuchen Sie dies

    const int SizeTarget = ::ArrayResize(Dst_Array, SizeSource * sizeof(SOURCE) / sizeof(TARGET) +
                                                    (bool)(SizeSource * sizeof(SOURCE) % sizeof(TARGET)));
 

Gemäß den MQ-Empfehlungen sollte in der ResourceData-Datei in der GetFullName-Methode die Konstante TERMINAL_DATA_PATH anstelle von TERMINAL_PATH verwendet werden.

Bei mir sind beide Pfade gleich, obwohl das Terminal ohne portablen Modus gestartet wird (wahrscheinlich weil UAC deaktiviert ist und ich Schreibrechte auf Programmdateien habe). Wenn Sie sich jedoch über RDP verbinden, werden alle Quellen aus Roaming übernommen. Viele Benutzer haben wahrscheinlich standardmäßig alle Quellen in TERMINAL_DATA_PATH (anders als TERMINAL_PATH).

 
Stanislav Korotky:

Gemäß den Empfehlungen von MQ sollte die GetFullName-Methode in der ResourceData-Datei die Konstante TERMINAL_DATA_PATH anstelle von TERMINAL_PATH verwenden.

Ich denke, das stimmt. Ich verwende portable, also habe ich nicht darauf geachtet. Diese Codes werden von Einheiten verwendet. Wie Sie haben auch die Benutzer die Pfade längst auf die richtigen korrigiert.

Es ist schwer, KB-Support zu leisten, die Arbeitsliste ist dick geworden.

 
fxsaber:

Ja, es ist beschnitten. Versuchen Sie dies

Ich habe die Ausrichtung (Addition) um 4 Bytes in meinem aufrufenden Code vorgenommen, und ich habe Convert.mqh nicht bearbeitet - schließlich stammt es aus Ihrem Include-Ordner und kann überschrieben werden, also ist es besser, es in der KB zu korrigieren (übrigens habe ich nicht wirklich verstanden, welches Projekt das Hauptprojekt für die Header-Dateien Convert.mqh, Resource.mqh und ResourceData.mqh ist - vielleicht schreibe ich an der falschen Stelle).

 
Stanislav Korotky:

Ich habe die Ausrichtung (Addition) um 4 Bytes in meinem aufrufenden Code vorgenommen, und ich habe Convert.mqh nicht bearbeitet - schließlich stammt es aus Ihrem Include-Ordner und kann überschrieben werden, also ist es besser, es in der KB zu korrigieren (übrigens habe ich nicht wirklich verstanden, welches Projekt das Hauptprojekt für die Header-Dateien Convert.mqh, Resource.mqh und ResourceData.mqh ist - vielleicht schreibe ich an der falschen Stelle).

TradeTransactions wird nicht verwendet.


HistoryTicks - ich kann mir den Handel in MT4 ohne sie nicht vorstellen. Wahrscheinlich sollte es als das wichtigste betrachtet werden. Aber ich kann es in KB nicht aktualisieren.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Bibliotheken: HistoryTicks

fxsaber, 2020.01.09 14:43

Habe nicht bemerkt, dass die Version in KB alt ist. Leider gibt es keine Möglichkeit zu aktualisieren. Der KB-Automat gibt dies an
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
In ME kompiliert alles ohne Fehler.


In HistoryTicks ist die Verantwortung um Größenordnungen größer, da sie real ist. Es wurde in der Praxis geleckt.

 
fxsaber:

解决该错误,用 随附的 替换 Include \ fxsaber \ TradeTransactions \ Convert.mqh

const RESOURCEDATA<double>ResourceDouble("::Double_"+__FILE__);

const RESOURCEDATA<datetime>ResourceTime("::Time_"+__FILE__);

const RESOURCEDATA<string>ResourceString("::String_"+__FILE__);


Data' - struct undefined Convert.mqh 85 49

in Vorlage 'int CONVERT::ArrayToStruct(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=uint,TARGET=datetime] Convert.mqh 70 14
Daten' - Struktur undefiniert Convert.mqh 43 38
in Vorlage 'int CONVERT::StructToArray(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=datetime,TARGET=uint] Convert.mqh 29 14
string kann nicht als Union-Mitglied verwendet werden Convert.mqh 11 12
in Vorlage 'int CONVERT::ArrayToStruct(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=uint,TARGET=string] Convert.mqh 70 14
Daten' - Struktur undefiniert Convert.mqh 85 49
in Vorlage 'int CONVERT::ArrayToStruct(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=uint,TARGET=string] Convert.mqh 70 14
string kann nicht als Union-Mitglied verwendet werden Convert.mqh 13 12
in Vorlage 'int CONVERT::StructToArray(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=uint,TARGET=string] Convert.mqh 29 14
string kann nicht als Union-Mitglied verwendet werden Convert.mqh 13 12
in Vorlage 'int CONVERT::StructToArray(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=uint,TARGET=string] Convert.mqh 29 14
string kann nicht als Union-Mitglied verwendet werden Convert.mqh 13 12
in Vorlage 'int CONVERT::ArrayToStruct(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=string,TARGET=uint] Convert.mqh 70 14
Daten' - Struktur undefiniert Convert.mqh 43 38
in Vorlage 'int CONVERT::StructToArray(const SOURCE&[],TARGET&[])' angegeben mit [SOURCE=string,TARGET=uint] Convert.mqh 29 14



Funktioniert es nicht in MT4 build 1320 ?


 
roaddust:

Funktioniert es nicht in MT4 build 1320?

Versuchen Sie dies.