Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1498

 
Hallo, bitte um Rat.

Speichern von Daten in einer Datei.
void OrderExport(MqlTradeRequest &request)
  {
   static long trans = 0;
   static long keepTrans = 0;
   string file = "OrderExchange" + (request.magic > 0 ? IntegerToString(request.magic) : "") + ".csv";
   int handle = FileOpen(file, FILE_CSV | FILE_READ | FILE_SHARE_READ | FILE_WRITE | FILE_SHARE_WRITE | (Common ? FILE_COMMON : 0), ';');
   if(handle != INVALID_HANDLE)
     {
      FileSeek(handle, 0, SEEK_END);
      long tr = TimeGMT();
      trans = (tr > trans) ? tr : (trans + 1);
      FileWrite(handle,
                trans,
                request.action,
                request.magic,

Abrufen von Daten aus der Datei

void OrderImport(MqlTradeRequest &aReq[], int magic, string symbol)
  {
   ArrayFree(aReq);
   long tr;
   static long trans = 0;
   if(trans == 0)
      trans = TimeGMT() - 3;
   string file = "OrderExchange" + (magic > 0 ? IntegerToString(magic) : "") + ".csv";
   int handle = FileOpen(file, FILE_TXT | FILE_READ | FILE_SHARE_READ | FILE_ANSI | (Common ? FILE_COMMON : 0));
   if(handle != INVALID_HANDLE)
     {
      FileSeek(handle, 0, SEEK_SET);
      while(!FileIsEnding(handle))
        {
         string s = FileReadString(handle);
         string aS[];
         int cnt = StringSplit(s, ';', aS);
         if(cnt <= 0)
            continue;
         //---   ПРОБЛЕМНОЕ МЕСТО ОТ
          tr = StringToInteger(aS[0]);
         //---    ПРОБЛЕМНОЕ МЕСТО ДО
         if(tr <= trans)
            continue;

GetLastError() Es wird ein Fehler angezeigt, dass - derParametervom Typ "Spoiltstring

Wenn Sie das Array aS[0] über Print() ausgeben, ist die Schriftart anders als der Rest.


Wenn Sie nur den Parameter tr ausgeben, dann = 0

 
Mikhail Toptunov string type parameter

Wenn ich einS[0]-Array über Print() ausgebe, ist die Schriftart anders als der Rest.


Wenn man nur den Parameter tr ausgibt, dann = 0

Haben Sie versucht, sich die Datei selbst anzusehen?

Sie schreiben binäre Werte und lesen einen Textstring....

 
Maxim Kuznetsov #:

Haben Sie versucht, sich die Datei selbst anzusehen?

Sie schreiben binäre Werte und lesen einen Textstring....

Ich habe sie wie folgt importiert

void OrderImport(MqlTradeRequest &aReq[], int magic, string symbol)
  {
   ArrayFree(aReq);
   long tr;
   static long trans = 0;
   if(trans == 0)
      trans = TimeGMT() - 1;
   string file = "OrderExchange" + (magic > 0 ? IntegerToString(magic) : "") + ".csv";
   int handle = FileOpen(file, FILE_READ | FILE_SHARE_READ | (Common ? FILE_COMMON : 0));

so für den Export

void OrderExport(MqlTradeRequest &request)
  {
   static long trans = 0;
   static long keepTrans = 0;
   string file = "OrderExchange" + (request.magic > 0 ? IntegerToString(request.magic) : "") + ".csv";
   int handle = FileOpen(file, FILE_READ | FILE_SHARE_READ | FILE_WRITE | FILE_SHARE_WRITE | (Common ? FILE_COMMON : 0), ';');

besser geworden, aber der erste Import der ersten Parameterzeichenfolge (aS[0]) ist immer ein Fehler.


nächste

tr - spiegelt übersetzte Zeichenkette in int(aS[0])

Die Datei wird angezeigt, alles ist an seinem Platz.


Aber das Importieren des ersten Parameters aS[0] der ersten Zeile übersetzt ihn nicht in int.
 
Aleksandr Slavskii #:

Wenn Sie ein Array nicht initialisieren, enthält es oft Müll.

Danke, ich habe mich sogar daran erinnert, dass mir das schon einmal begegnet ist (0 hat mich verwirrt). Es ist schade, dass es nicht in der Dokumentation angegeben ist, ich muss solche Dinge in meinem Kopf behalten.

 
Mikhail Toptunov #:

importiert

für den Export wie folgt

besser, aber der erste Import der ersten Parameterzeichenfolge (aS[0]) ist immer ein Fehler.


nächste

tr - spiegelt die übersetzte Zeichenkette in int(aS[0])

Die Datei wird angezeigt, alles ist an seinem Platz.


Aber beim Importieren des ersten Parameters aS[0] der ersten Zeile wird er nicht in int übersetzt.

Wie kann das sein? - der erste aS[0] ist immer defekt (Fehler 5040)


 
Liebe Leute, bitte gebt mir einen Tipp. Ich habe eine Aufgabe, um eine Optimierung durchzuführen, aber für die Optimierung muss ich externe Daten verwenden. Ich habe folgendes gemacht: Ich habe eine Datei mit Daten erstellt und bei jedem Durchlauf öffne ich die Datei, schreibe in das Array und schließe es. Wie kann ich diesen Prozess optimieren und beschleunigen?
 
Mikhail Toptunov #:

Wie kann das sein? - das erste aS[0] ist immer defekt (Fehler 5040)


stellen Sie beim Export und Import die UTF-8-Kodierung ein (oder zumindest die gleiche Ein-Byte-Kodierung ohne BOM).

(sehen Sie sich die Datei in binärer Form an - die ersten beiden Bytes sind wahrscheinlich BOM, d.h. es ist Unicode) - wenn Sie FileSeek(0,SEEK_SET) und dann lesen, lesen Sie sie in einen String und die Konvertierung schlägt fehl.

 
Maxim Kuznetsov #:
BOM

Nun, es scheint funktioniert zu haben. Wahre einmal noch nicht reflektieren, aber dann, wenn Sie die Datei löschen zumindest gestoppt glitching.


FILE_CSV | FILE_READ | FILE_SHARE_READ | FILE_ANSI | (Common ? FILE_COMMON : 0),CP_UTF8

Ich danke Ihnen sehr viel!

 

Guten Morgen und gute Laune!

Ich bin auf das Fehlen der Beschreibung von ResultRetcodeExternal im MQL5-Referenzhandbuch gestoßen. In der Suchmaschine bekomme ich folgende Antwort: Für Ihre Anfrage wurde nichts gefunden. Auf Umwegen habe ich herausgefunden, dass es sich um "Error code returned by an external trading system" zu handeln scheint . Die Schreibweise und die Art dieser Fehler hängen vom Broker und dem externen Handelssystem ab, an das die Handelsoperationen ausgegeben werden".

Frage: habe ich die richtige Definition gefunden oder nicht?

Und gleichzeitig die zweite Frage an die Dokumentationsentwickler: Wenn es so ist, warum geben Sie den Benutzern nicht sofort vollständige Informationen, anstatt sie irgendwo nach dieser Definition suchen zu lassen?

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin #:
ErgebnisRetcodeExtern

Sie werden so etwas nicht finden. Es existiert nicht in MQL5.

Es gibt MqlTradeResult, wo es ein Feld retcode_external gibt, und wo es eine Beschreibung dieses Feldes gibt.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Структура результата торгового запроса - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5