Fehler, Irrtümer, Fragen - Seite 1089

 
MoneyJinn:

Dies war die vollständige Standardinitialisierung des Indikators, die beim ersten Start mittels Oninit() durchgeführt wird.

Manchmal muss auch die Historie aktualisiert werden, usw.

Niemand hat daran gedacht, dass die wiederholte Initialisierung des Indikators über Oninit() dazu führen würde, dass die Arrays nicht mehr reagieren.

Und warum?

"SetIndexBuffer Bindet den angegebenen Indikatorpuffer an das eindimensionale dynamische Array"

Verknüpfen Sie die Puffer mit anderen Arrays, wenn Sie den Verlauf aktualisieren?

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
MoneyJinn:

Dies war die vollständige Standardinitialisierung des Indikators, die beim ersten Start mittels Oninit() durchgeführt wird.

Manchmal muss auch die Historie aktualisiert werden, usw.

Niemand hat daran gedacht, dass die wiederholte Initialisierung des Indikators durch Oninit() dazu führen würde, dass die Arrays nicht mehr reagieren.

Es wurde Ihnen bereits angeboten, den Quellcode hier zu zeigen, damit Sie zumindest verstehen, wo das Problem liegt.

Zwei Codezeilen (obwohl der Quellcode) erlauben es nicht, das Problem zu bestimmen.

 
MoneyJinn:

Dies war die vollständige Standardinitialisierung des Indikators, die beim ersten Start mittels Oninit() durchgeführt wird.

Manchmal ist es auch notwendig, die Historie zu aktualisieren.

Dies ist nicht erforderlich.

Man bindet einfach aus Versehen neu, und dann hofft man, die Daten im Puffer zu speichern und sie zu adressieren, bis der Indikator neu berechnet wird. Aus diesem Grund erhalten Sie eine legitime Bereichsüberschreitung beim Zugriff auf nicht existierende Daten im falschen Index.

 
Renat:

Das ist nicht nötig.

Es ist nur so, dass Sie im Fehlerfall neu binden und dann hoffen, die Daten im Puffer zu speichern und darauf zuzugreifen, bis die Neuberechnung des Indikators eintrifft. Aus diesem Grund erhalten Sie eine logische Bereichsüberschreitung beim Zugriff auf nicht vorhandene Daten im falschen Index.

Ich initialisiere bewusst mit Puffer-Nullstellung, rechne also im Prinzip nicht mit einer Datenspeicherung.

Das Problem ist, dass sich das Array nach dem erneuten Binden nicht füllt und der angegebene Fehler erst auftritt, wenn ich versuche zu schreiben.

Wenn das die Norm ist, dann gut...

 

Der Puffer ist leer, bis die Aufforderung zur Neuberechnung des Indikators eintrifft.

Und wenn Sie es zwangsweise neu initialisieren/neu binden, haben Sie kein Recht, auf eines seiner Elemente zuzugreifen, bis Sie zum Indikator-Handler OnCalculate gelangen.

 
Auf der Seite Handelssignale Module in Russisch steht in der Spalte "Signaltyp" "Für Kauf" und "Für Verkauf", oder richtiger "Für...". Wahrscheinlich eine wörtliche Übersetzung aus dem Englischen mit "For...".
 

Guten Tag!

Helfen Sie mir, die Aktivität des Terminals zu ordnen.

Ichmeldete mich für ein Signal an, das Terminal funktionierte eine Zeit lang - eröffnete und schloss Aufträge. Dann wurde das Konto mit dem Kommentar "wegen hoher Serverlast" gesperrt. Der Support sagte, dass mein Terminal viele Anfragen an den Server stellte (Öffnen, Schließen, Ändern usw.). Aus den Protokollen kann ich ersehen, dass Metatrader einmal alle zwei Minuten versucht, seinen Status zu synchronisieren, und sonst nichts passiert.

Gibt es eine Möglichkeit, die Anzahl der Anfragen des Metatraders an den Server zu verfolgen, um nicht das gesamte Konto zu sperren?

 

1. ist die Verwendung von Flags und statischen Variablen bei der Verwendung eines VPS-Servers zuverlässig?

Bei komplexen EA-Bedingungen ist es manchmal notwendig, bis zu zehn oder mehr Flags zu verwenden, wobei statische Variablen nicht mitgezählt werden.

2. um alle Flags und statischen Variablen zurückzusetzen, würde es ausreichen, den EA aus dem Diagramm zu entfernen?

Was passiert, wenn der Server neu gestartet wird, bleiben die Flaggen und statischen Variablen erhalten?

4. wenn der Server plötzlich ausfällt, werden die Flaggen und Statistikvariablen zurückgesetzt, wenn der Server wieder eingeschaltet wird?

Die Fragen betreffen MQL4 und MQL5.

 
forexman77:

1. ist die Verwendung von Flags und statischen Variablen bei der Verwendung eines VPS-Servers zuverlässig?

Bei komplexen EA-Bedingungen ist es manchmal notwendig, bis zu zehn oder mehr Flags zu verwenden, wobei statische Variablen nicht mitgezählt werden.

2. um alle Flags und statischen Variablen zurückzusetzen, würde es ausreichen, den EA aus dem Diagramm zu entfernen?

Was passiert, wenn der Server neu gestartet wird, bleiben die Flaggen und statischen Variablen erhalten?

4. wenn der Server plötzlich ausfällt, werden die Flaggen und Statistikvariablen zurückgesetzt, wenn der Server wieder eingeschaltet wird?

Diese Fragen beziehen sich auf MQL4 und MQL5.

1. Es spielt keine Rolle, ob Sie einen VPS oder Ihren eigenen PC haben; die Hauptsache ist, dass MQL4/5 funktionieren wird.

2. Ja.

3. keine Speicherung.

4. Ja, das werden sie.

Wenn Sie Flaggen speichern wollen, schreiben Sie deren Werte in eine Datei und lesen Sie sie dann. Versuchen Sie, Handelsfunktionen aus dem Expert Advisor zu entfernen, lassen Sie diejenigen, die Flags setzen, im Kommentar ausgeben, schreiben Sie deren Werte auf, laden Sie MT4/5 neu und sehen Sie, was passiert.

 
paladin800:

1. Ja, es spielt keine Rolle, ob es ein VPS oder Ihr eigener Computer ist, solange MT4/5 funktioniert.

2. Ja.

3. keine Speicherung.

4. Ja, das werden sie.

Wenn Sie Flaggen speichern wollen, schreiben Sie deren Werte in eine Datei und lesen Sie sie dann aus. Versuchen Sie, Handelsfunktionen aus dem Expert Advisor zu entfernen, lassen Sie diejenigen, die Flags setzen, schreiben Sie ihre Werte in den Kommentar, laden Sie MT4/5 neu und sehen Sie, was passiert.

Tolle Lösung für das Schreiben in eine Datei!

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
Grund der Beschwerde: