Fehler, Irrtümer, Fragen - Seite 2647

 

Jetzt muss in MetaEditor bei der Arbeit an einem Projekt ein ganzes "Ritual" durchgeführt werden, um die Projektdateien auf der Registerkarte "Projekt" zu verschieben, zum Beispiel in einen neu erstellten Unterordner:

- Vergewissern Sie sich, dass alle an den zu verschiebenden Dateien vorgenommenen Änderungen gespeichert wurden, da sonst die geleistete Arbeit verloren gehen kann;
- Ziehen Sie die Dateien auf der Registerkarte "Projekt" per Drag & Drop an den neuen Speicherort;
- Schließen Sie alle Registerkarten für die zu migrierenden Dateien, da sie möglicherweise einen falschen Pfad verwenden;
- Öffnen Sie alle geschlossenen Registerkarten erneut, nur jetzt unter Verwendung des neuen Pfads.
- ordnen Sie die geöffneten Registerkarten in der gleichen Reihenfolge wie vor dem Schließen wieder an.

Anregung:
Beim Verschieben von Projektdateien in der Registerkarte Projekt, z. B. in einen neu erstellten Unterordner:
- für geöffnete, aber unveränderte Dateien automatisch ihren Speicherpfad aktualisieren.
- bei geänderten Dateien zusätzlich nach einer Bestätigung fragen: "Übertragung mit Speichern", "Übertragung mit Verlust der Änderungen" oder "Übertragungsvorgang abbrechen".


 
Igor Makanu :

Ich habe 12 GB Arbeitsspeicher, Windows 10, freier Speicher ca. 8 GB


Ich brauchte diesen Test, um die maximal zulässigen Leitungslängen in MT4/MT5-Terminals herauszufinden

Ich möchte nun zwischen den Terminals über die Redis-Datenbank austauschen

Redis ist eine sehr einfache Datenbank und arbeitet nur mit Strings (Schlüssel - Wert --> strin - string)

Gestern habe ich POD-Strukturen in Base64 serialisiert und es erhöht die Datengröße um etwa 1/3

Ich denke, dass ich sogar in diesem Fall die Möglichkeit habe, Strukturen mit einer Größe von 400 Mb pro Transaktion auszutauschen - das ist mehr als genug für jeden Zweck! ;)

Ich frage mich, ob ich dieses "Redis" überprüfen werde, das kenne ich nicht.

Also habe ich Ihren Code auf meiner Seite überprüft, ich habe ihn nach 1 Minute gestoppt, zu langsam. Also habe ich es ein bisschen geändert ;-)

#define  STEP      1000000     // 1 million
#define  MILLION   1000000
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  printf("m_physical = %i MB, m_total = %i MB, m_available = %i MB, m_used = %i MB, limit = %i MB, used = %i MB",
         TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL), TerminalInfoInteger(TERMINAL_MEMORY_TOTAL),
         TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE), TerminalInfoInteger(TERMINAL_MEMORY_USED),
         MQLInfoInteger(MQL_MEMORY_LIMIT),MQLInfoInteger(MQL_MEMORY_USED));

  string s = "";
  int size=INT_MAX;

  do
    {
    size-=STEP;
    }
  while(!StringInit(s,size,USHORT_MAX));

  long length = StringLen(s);
  printf("StringLen = %lli millions characters, m_used = %i MB, used = %i MB", length/MILLION, TerminalInfoInteger(TERMINAL_MEMORY_USED),MQLInfoInteger(MQL_MEMORY_USED));
  }

2020.02.13 15: 50: 51.199 1111R-2646 (EURUSD, M1) m_physical = 16230 MB, m_total = 32460 MB, m_available = 31786 MB, m_used = 674 MB, limit = 8388608 MB, used = 0 MB
2020.02.13 15: 50: 51.763 1111R-2646 (EURUSD, M1) StringLen = 1073 Millionen Zeichen, m_used = 2722 MB, used = 2048 MB

Weniger als 1 Sekunde. Schließlich gibt es noch das mql5-Limit, das bei 2 GB oder etwa 1,073 Milliarden Zeichen liegt.

 

Erklären Sie, warum ico-Dateien nicht in die Codebase geladen werden können? Sie sind ein Standardbestandteil des Programms, verbunden durch MMS-Tools. Die Tatsache, dass sie verboten sind, ist offensichtlich falsch. Aber das ist noch nicht alles.

Eine ordnungsgemäß vorbereitete ico-Datei kann in png umbenannt werden, ohne den Betrieb zu beeinträchtigen: Sie wird weiterhin ordnungsgemäß mit dem Programm verknüpft (mit #property icon "mql5pack.png") und im Eigenschaften-Dialog angezeigt. All dies funktioniert jedoch nur lokal. Ich habe ein solches png in die Codebase hochgeladen und bei der Überprüfung des Quellcodes einen Fehler erhalten:

mql5pack.mq5(27,11) : error 341: cannot open icon file 'mql5pack.png'
main file not found

Bitte mql5-Administration zu beheben Laden oder / und zumindest die Überprüfung Symbole.

PS. Korrektur: Es sieht so aus, als ob die Website die png-Datei stillschweigend frisst, d. h. sie zum Hochladen freigibt, aber dann nicht in der Liste der kompilierten Dateien erscheint. Ich habe es mit MQL5\Images und MQL5\Files probiert - nichts wird auf den Server hochgeladen, aber stillschweigend und ohne Fehler. Bei der Überprüfung tritt ein Fehler auf.

 
Können Sie mir sagen, wie ich einen Kompilierungsfehler umgehen kann?
struct STRUCT
{
  static const int Array[];
  int Array2[sizeof(STRUCT::Array)]; // unresolved static variable 'STRUCT::Array'
};

static const int STRUCT::Array[] = {1, 2};

void OnStart()
{
  static const int Array[] = {1, 2};
  
  int Array2[sizeof(Array)]; // OK
}
 

Leute, wie kann ich sicherstellen, dass in mt5 offene Aufträge nicht die Plätze tauschen?

 
Сергей Проценко:

Leute, wie stellt ihr sicher, dass offene Aufträge nicht vertauscht werden?

Verzeihung, wie können sie die Plätze tauschen?

 
Сергей Таболин:

Verzeihung, wie können sie die Plätze tauschen?

Je nach Gewinn, wenn der Gewinn größer ist, geht es nach unten, der andere Auftrag hat einen größeren Gewinn, tauschen Sie die Plätze. Wenn der Euro-Gewinn größer ist als der Gold-Gewinn, wird der Euro-Auftrag niedriger und der Gold-Auftrag höher sein als er.
 
Сергей Проценко:
Je nach Gewinn, wenn der Gewinn höher ist, gehen Sie nach unten, der andere Auftrag hat einen höheren Gewinn, tauschen Sie die Plätze.

Klicken Sie auf eine der Spaltenüberschriften: Symbol, Ticket, Zeit

 
Vladimir Karputov:

Klicken Sie auf eine der Spaltenüberschriften: Symbol, Ticket, Zeit

Dies ist das einzige Ergebnis.
 
Сергей Проценко:
Dies ist das einzige Ergebnis.

Klicken Sie auf die Überschrift einer der Spalten: Symbol, Ticket, Zeit.

Klicken Sie auf die LINKE TASTE. Klicken Sie auf den TITEL.