Wie man sicherstellt, dass der EA nur auf dem Chart funktioniert, auf dem er zuerst abgelegt wurde - Seite 4

 

Wahrscheinlich funktioniert es so:

Erstellen Sie zunächst eine globale Variable und ein Objekt im Diagramm (irgendwo außerhalb des Diagramms, um es nicht versehentlich von Hand zu löschen) und "schreiben" Sie in beide einen gemeinsamen Schlüssel (den Sie z. B. durch GetTickCount erhalten).

Wiederholungen auf anderen Diagrammen prüfen das Vorhandensein einer globalen Variable. wenn sie existiert - suchen Sie nach einem Objekt mit demselben Schlüssel auf UNSEREM Diagramm. wenn es nicht gefunden wird - anderes Diagramm - arbeiten Sie nicht und schreien Sie mit einer Warnung, dass es eine Wiederholung ist!

Da Diagrammobjekte und globale Variablen Neustarts und Neukompilierungen überstehen müssen, wird die Prüfung immer korrekt funktionieren).

 
ForexTools:

Wahrscheinlich funktioniert es so:

Beginnen Sie, erstellen Sie eine globale Variable und ein Objekt im Diagramm (irgendwo außerhalb des Diagramms, um es nicht versehentlich von Hand zu löschen), und "schreiben" Sie einen gemeinsamen Schlüssel in beide (den Sie z. B. durch GetTickCount erhalten).

Wiederholungen auf anderen Diagrammen prüfen das Vorhandensein einer globalen Variable. wenn sie existiert - suchen Sie nach einem Objekt mit demselben Schlüssel auf UNSEREM Diagramm. wenn es nicht gefunden wird - anderes Diagramm - funktioniert nicht und schreit "Wiederholung"!

Da Diagrammobjekte und globale Variablen Neustarts und Neukompilierungen überstehen müssen, wird die Prüfung immer korrekt funktionieren).

Manchmal werden Objekte nicht gespeichert, wenn das Terminal abgestürzt ist.
 
ForexTools:

Der Expert Advisor sollte nur mit "einer Instanz" arbeiten. D.h., wenn ich es zum ersten Mal an ein Diagramm anhänge und es funktioniert. Wenn ich es dann versehentlich oder absichtlich wieder an ein anderes Diagramm anhänge, sollte der zweite Anhang erkennen, dass er bereits läuft und nichts tun.

Die Bezeichnung in einer globalen Variablen zu belassen, wird wahrscheinlich nicht funktionieren. Wenn ich zwei EAs angehängt habe und den Text neu kompiliere, ist es unklar, welcher von beiden zuerst seine Init-Funktion ausführen wird, um diese globale Variable zu erstellen.

Wer kann was vorschlagen? Haben Sie eine Idee, wie man das machen kann?


Und wenn bei der Initialisierung, um die Datei zu öffnen, um zu schreiben, bei der Deinitialisierung, um sie freizugeben. Logischerweise ist eine neue Instanz von EA nicht in der Lage, eine Datei zu öffnen, die zuvor zum Schreiben geöffnet wurde. Wenn wir z. B. nach fünf Iterationen immer wieder den Fehler erhalten, eine Datei zum Schreiben zu öffnen, bedeutet dies, dass eine Instanz des EA bereits geöffnet ist.

 
exhumer:
Eine neue Instanz des EA ist nicht in der Lage, eine Datei zu öffnen, die zuvor zum Schreiben geöffnet war.

nachdem das Terminal abgestürzt ist und neu gestartet wurde, steht die Datei demjenigen zur Verfügung, der sie als erster öffnet, nicht demjenigen, der sie als erster zurücksetzt :(

Ich wiederhole noch einmal: Sie brauchen einen bestimmten Chart - einen bestimmten Expert Advisor.

 
ForexTools:

Ihre Idee funktioniert nicht.

Was soll das heißen, es funktioniert nicht? Dies ist zwar eine leere Behauptung.
Zumal Sie nur eine Idee haben (geschweige denn ein "konkretes Rezept")

Was kann ich von Ihrer "Lösung" halten? ;)

Das ist genau eine Idee. Wenn Sie nicht genug Wissen haben, um zu verstehen, wie man es überprüft, dann schreiben Sie es. Das haben Sie tatsächlich getan, aber Sie haben es als Behauptung geschrieben. Zumindest die Bemerkung "Was kann ich mit Ihrer "Lösung" rechtfertigen? ;)" sieht genau wie eine Forderung aus. Und dann aus irgendeinem Grund eine Reihe von Nebensächlichkeiten

"sollte" heißt nicht "wird", "da" heißt "wo"? wenn "nicht funktioniert"

- wie können Sie Ratschläge zu nicht erprobten Lösungen geben?!

Wenn nur bewährte Lösungen angeboten würden, würden Sie immer noch mit einem Stock nach den Wurzeln suchen. Wessen Problem ist das, meines oder Ihres? Warum um alles in der Welt würden Sie den Vorschlag einer Idee als Empfehlung für eine Lösung bezeichnen?

Aus meiner Sicht lautet die Frage folgendermaßen: Ich gebe Ihnen eine Idee, Sie testen sie, und wenn sie funktioniert, teilen Sie mir mit, dass sie funktioniert, als minimales Dankeschön.

P.S. Mann, du hättest dir aus Neugier eine chr-Datei ansehen sollen, wo du doch so tust, als wärst du ein Profi im Umgang mit MT.

 
TheXpert:
Dann stumpf als Schließfach ablegen und kein Problem.
Warum nicht diese, die einfachste Möglichkeit nutzen? Der Expert Advisor erstellt eine Kontrolldatei und prüft vorher, ob die Datei existiert. Wenn die gleichnamige Datei bereits existiert, wird der Expert Advisor nicht gestartet. Wenn der EA das Diagramm korrekt verlässt, wird die Datei gelöscht. Im Falle eines Absturzes blockiert die verbleibende Datei den Start einer beliebigen Instanz des EA und wird manuell gelöscht, um weiterarbeiten zu können.
 

Candid:

Wessen Problem ist es, meines oder Ihres? Warum in aller Welt bezeichnen Sie Ihren Vorschlag für eine Idee als Empfehlung für eine Lösung?

Denn das ist genau das, was ich in meinem ersten Beitrag gefordert habe - deshalb habe ich Ihre Idee als solche aufgefasst.

Sie scheinen so zu tun, als seien Sie ein Profi im Umgang mit MT.

Deshalb sehe ich die Gültigkeit vieler "Ideen", auch von DOTO, als deren ..... ;)

Wenn ich mich in Ihnen irre - schreiben Sie einen EA-Code, der nichts anderes tut, als zu verhindern, dass Ihre zweite Kopie ausgeführt wird. Überprüfen Sie, ob es wirklich funktioniert, wenn Sie das Terminal neu kompilieren und neu starten, und posten Sie den Code hier - alles wird sich fügen ;)

 
granit77:
Bei einem Absturz wird die verbleibende Datei durch.... blockiert.

Es gibt zwei Diagramme, eines davon hat einen funktionierenden EA, der die Datei enthält, und das zweite hat eine Kopie des EA, die aufgrund einer gesperrten Datei nicht funktioniert.

das Terminal ist ausgeschaltet oder geschlossen.

Starten Sie das Terminal(erneut). Daraufhin prüfen zwei EAs, ob sie die Datei lesen können. Gibt es eine Garantie dafür, dass der echte erste EA die Datei zuerst liest und nicht der, der beim letzten Mal blockiert wurde? :(

Zum dritten Mal wiederhole ich: Ich brauche eine Verbindung zwischen CHART und EXPERT, aber nicht die Blockierung eines Expert Advisors durch einen anderen.

 
granit77:
Warum nicht diese, die einfachste Möglichkeit nutzen?
Nein, nein, das gilt nur, wenn es keine Rolle spielt, welche Instanz ausgeführt werden soll.