Globale Variablen versus FileWrite - Seite 2

 
toast:

Danke für die Antwort.

Ja, ich stimme zu.

Aber das Problem wird wie folgt aussehen:

Es wird ein Handel mit der magischen Zahl 123 eröffnet.

Bei der Verwaltung dieses Handels sucht der EA nach GV mit dem Namen 123xxxxxx

Nun ändert der Benutzer die EA-Einstellung für die magische Zahl auf 789 , während der Handel noch aktiv ist.

Jetzt sucht der EA also nach GV mit dem Namen 789xxxxx (den es nicht gibt).

Im Wesentlichen suche ich nach einer GV-Namenskonvention, die nicht durch Benutzereingaben geändert werden kann.


Verstecken Sie die magische Zahl nicht.

Der einfachste Weg ist, den Benutzern die magische Zahl mitzuteilen, dann wissen sie, wie sie damit umgehen müssen.

 
angevoyageur:
Lassen Sie die Änderung der magischen Zahl nicht zu, wenn es noch offene Geschäfte mit der alten magischen Zahl gibt.


Wenn z. B. keine offenen Aufträge vorhanden sind, wird die Änderung wirksam. Wenn es noch offene Geschäfte gibt, kann der Benutzer die Änderung trotzdem vornehmen, aber sie wird nicht wirksam.


Diese Logik lässt sich eigentlich recht einfach umsetzen.

 

Danke für die Antwort.

Ich denke, das ist möglich, aber ein wenig chaotisch? Der einzige Weg, den ich mir vorstellen kann, ist, eine Schleife durch die Aufträge zu ziehen und zu prüfen, ob es keine offenen Aufträge gibt. Wenn das der Fall ist, dann die Eingabe int MagicNumber auf int NewMagic anwenden.

Oder gibt es einen einfacheren Weg?

Die ChartID() scheint viel einfacher zu sein, gibt es ein Problem bei der Verwendung?

 

Ich glaube, ich war Posting zur gleichen Zeit wie ein paar andere ...

@fxMeter - wenn sie den EA auf mehreren Charts verwenden möchten, dann brauche ich eine Möglichkeit, die magische Zahl zu ändern, ohne in Duplikate zu laufen. Was uns dann wieder zu den GVs zurückbringt.

@deysmacro - Ich glaube, wir haben an dieselbe Lösung gedacht.

Aber nochmal - das scheint alles eine Menge Arbeit zu sein, wenn ChartID() verwendet werden kann?

 
toast:

Ich glaube, ich war Posting zur gleichen Zeit wie ein paar andere ...

@fxMeter - wenn sie den EA auf mehreren Charts verwenden möchten, dann brauche ich eine Möglichkeit, die magische Zahl zu ändern, ohne in Duplikate zu laufen. Was uns dann wieder zu den GVs zurückbringt.

@deysmacro - Ich glaube, wir haben an dieselbe Lösung gedacht.

Aber nochmal - das scheint alles eine Menge Arbeit zu sein, wenn ChartID() verwendet werden kann?


Am Anfang viel Arbeit. Dann wenig Arbeit zu tun, sobald implementiert.

Kodierung ist immer so :)

 
Ich stimme zu, dass es getan werden kann, aber wieder frage ich mich, warum Menschen gegen die Verwendung von ChartID() sind? Ist daran etwas falsch?
 
toast:
Ich stimme zu, dass es getan werden kann, aber wieder frage ich mich, warum Menschen gegen die Verwendung von ChartID() sind? Ist daran etwas falsch?

https://forum.mql4.com/62102
 

Vielen Dank für den Link, aber ich glaube nicht, dass dieses Problem auf mich zutreffen würde - ich bin nicht auf der Suche nach der ChartID zu anderen Instanzen des EA zu kommunizieren.

Ich möchte nur wissen, ob ChartID() ist eine zuverlässige, eindeutige Kennung des aktuellen Charts als GV-Name zu verwenden?

 
toast:

Vielen Dank für den Link, aber ich glaube nicht, dass dieses Problem auf mich zutreffen würde - ich bin nicht auf der Suche nach der ChartID zu anderen Instanzen des EA zu kommunizieren.

Ich möchte nur wissen, ob ChartID() ist eine zuverlässige, eindeutige Kennung des aktuellen Charts als GV-Name zu verwenden?


Besser ist es, wenn Sie den Bezeichner in Ihr EA eingebaut haben. Von dort können Sie viele Dinge tun, und es ist zuverlässig.
 
toast:

Vielen Dank für den Link, aber ich glaube nicht, dass dieses Problem für mich gelten würde - ich bin nicht auf der Suche nach der ChartID zu anderen Instanzen des EA zu kommunizieren.

Ich möchte nur wissen, ob ChartID() ein zuverlässiger, eindeutiger Bezeichner des aktuellen Charts ist, der als GV-Name verwendet werden kann?


Magische Zahl und ChartID() sind zwei völlig verschiedene Dinge. Magische Zahl wird mit Ihrem Handel auf der Server-Seite registriert. ChartID() dient nur zur Identifizierung eines Charts in Ihrer aktuellen Instanz des Terminals.