Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Abhängigkeiten in Enum listen (http://www.expert-advisor.com/forum/showthread.php?t=6175)

Xypa 19.08.18 13:15

Abhängigkeiten in Enum listen
 
Hallo liebe Foren Mitglieder,

und zwar habe ich folgendes Problem.
Ich habe 2 listen in den EA Einstellungen, und möchte das die 2te Liste nie ein Wert unter dem Wert der 1ten Liste annehmen kann.

Bsp.:
Die Buystop/Sellstop Positionen sollen bis 12:00 Uhr gehalten werden und die gefüllten Ordern bis 13:00 Uhr.

Nun kann man die Zeit im EA vorher einstellen und die gefüllten Ordern sollen immer Länger gehalten werden wie die Buystop/Sellstop ordern.
((Buystop/Sellstop)<PostionenHalten)

Habt ihr eine Idee wie man sowas Programmieren kann? :confused: :)

Mit freundlichen Grüßen
Xypa

MA-EA 19.08.18 19:35

Stop-Order löschen, wenn ne Markt-Order in die selbe Richtung geöffnet wurde.

Xypa 20.08.18 15:20

Erstmal Danke für Antwort.

Aber ich meinte eher was anderes und zwar kann man im EA die Uhrzeit für die Buystop expiration einstellen.

Wenn aber die Buystop order gefillt wird gilt eine andere Einstellbare Zeit bis die Order geschlossen wird(Entweder erreicht die Order den TP/SL oder die Order wird spätestens um z.B 17:00 Uhr geschlossen).

Mein Problem:
Wenn die Buystop expiration Zeit größer ist als die Zeit für die gefillten ordern und der Buystop Kurs erreicht wird dann wird die Order sofort wieder geschlossen.
Das heißt die Buystop expiration muss immer kleiner sein als die Zeit für die gefillten ordern.

Wie kann ich eine Abhängigkeit in den Enum listen Programmieren dass immer die expiration Zeit kleiner ist als die Zeit für die gefillten ordern?

Mit freundlichen Grüßen
Xypa

Leopold 20.08.18 16:58

Zitat:

Zitat von Xypa (Beitrag 41472)
Wie kann ich eine Abhängigkeit in den Enum listen Programmieren dass immer die expiration Zeit kleiner ist als die Zeit für die gefillten ordern?
Xypa

Das versteh ich nicht. Was hat das mit Enumerations zu tun?
Vielleicht kannst du das etwas genauer erläutern.

---Leopold---

Adlerauge 20.08.18 17:34

Zitat:

Zitat von Xypa (Beitrag 41465)
Nun kann man die Zeit im EA vorher einstellen und die gefüllten Ordern sollen immer Länger gehalten werden wie die Buystop/Sellstop ordern.
((Buystop/Sellstop)<PostionenHalten)

Xypa

Vom Prinzip her kannst Du beim Initialisieren Deine extern eingestellten Werte an weitere Variablen übergeben, mit denen der EA dann arbeitet. Wenn sich Bedingungen - wie in Deinem Beispiel beschrieben - ändern, kannst Du den EA dann diese Variablen entsprechend ändern lassen. Wenn der Trade vorbei ist, kannst Du diese Variablen ja dann wieder auf die extern eingestellten Werte setzen lassen.

traderdoc 20.08.18 20:45

Zitat:

Zitat von Xypa (Beitrag 41472)
Mein Problem:
Wenn die Buystop expiration Zeit größer ist als die Zeit für die gefillten ordern und der Buystop Kurs erreicht wird dann wird die Order sofort wieder geschlossen.
Das heißt die Buystop expiration muss immer kleiner sein als die Zeit für die gefillten ordern.

Verstehe ich nicht. Erstens hat das nix mit Enumerationen zu tun und zweitens, wenn die gefillte BuyOrder geschlossen ist, dann sollte ja keine BuyStopOrder mehr vorhanden sein. Und selbst wenn zwei BuyStopOrder existieren sollten und die eine wird gefillt und später geschlossen, dann hat doch dieses Schließen nichts mit der noch gesetzten BuyStopOrder zu tun, oder?

traderdoc

Xypa 22.08.18 00:45

Vielen Dank für die Antworten und die Bemühungen mein Problem zu Verstehen!
Nochmal von Vorne: :D

Wenn ich den EA in einen Chart ziehe, dann kann ich dort Eingaben über Externe variablen machen. Ich habe dafür Enumerations genutzt um eine Dropdown liste zu erhalten.

Nun habe ich zwei von den Dropdown Listen.
Das Problem:
Der Wert von der ersten Dropdown liste muss immer eine Einheit/Wert über dem Wert sein, der sich in der Zweiten Dropliste befindet.

Wird in der ersten Liste der Wert 5 ausgewählt,so darf der Wert in der zweiten Liste nicht niedriger als 6 sein.

Ich habe die Listen mit Enumerations erstellt und frage mich nun wie man das Lösen kann?

Liebe Grüße
Xypa :D

MA-EA 22.08.18 01:57

Was für Listen? Wieso trägst Du Deine Werte nicht einfach selber ein? :confused:

Leopold 22.08.18 07:50

Zitat:

Zitat von MA-EA (Beitrag 41477)
Was für Listen? Wieso trägst Du Deine Werte nicht einfach selber ein? :confused:

Müssen so unnötige Kommentare immer sein?

Leopold 22.08.18 07:57

Hallo,

du könntest bei der Initialisierung überprüfen ob X < Y, wenn diese nicht erfüllt ist kannst du einen Fehler ausgeben und die Initialisierung abbrechen.

Als Rückgabe der Initialisierung kannst du folgendes verwenden:

return(INIT_FAILED);

oder

return(INIT_PARAMETERS_INCORRECT);


https://docs.mql4.com/basis/function/events

---Leopold---


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:03 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum