Hallo,
ich habe zwei zusammenhängende Fragen:
-Wie mache ich von einem Chart aus eine Abfrage zu einem Symbol eines anderen Charts, ob dieser handelsbereit ist, also der Markt geöffnet ist? Ich möchte von dem ersten Chart Orders in verschiedenen Symbolen anderer Charts schließen, nach der Abfrage.
-Wie kann ich den Code im ersten Chart auch dann ablaufen lassen, wenn bei diesem selbst der Markt geschlossen ist. Ich habe den Code immer unter der Funktion OnTick() ablaufen lassen. Nun stellte ich fest, dass der Code aber gestoppt wird, wenn der Markt geschlossen ist.
Danke im Vorraus
Zu 1. Frage:
Die Information bekommst du von folgenden Funktionen:
bool SymbolInfoSessionQuote( string name, // Symbolname ENUM_DAY_OF_WEEK day_of_week, // Wochentag uint session_index, // Nummer der Notierungssitzung datetime& from, // Anfang der Notierungssitzung datetime& to // Ende der Notierungssitzung );
bool SymbolInfoSessionTrade( string name, // Symbolname ENUM_DAY_OF_WEEK day_of_week, // Wochentag uint session_index, // Nummer der Handelssitzung datetime& from, // Anfang der Handelssitzung datetime& to // Ende der Handelssitzung );
https://www.mql5.com/de/docs/marketinformation/symbolinfosessionquote
https://www.mql5.com/de/docs/marketinformation/symbolinfosessiontrade
Zu 2
Nutze für sowas das Event OnTimer

- www.mql5.com
Ok, ich nehme an, der Index 0 beschreibt immer die aktuelle Handelssitzung? Das probiere ich dann.
Einfacher ? ...sicher doch. Probiere es doch erstmal. Keine Ahnung, ob dein Broker überhaupt die Information liefert.
Du schreibst die einmal eine Funktion.
bool TradeSessionOpen(string symbol) { .... }
schau mal in den Thread .... https://www.mql5.com/de/forum/317993
Feiertage wird kniffliger da Länderabhängig.

- 2019.07.15
- www.mql5.com
Ok. Danke.
Ich weiß jetzt, wie ichs mache. Ich werde von den Unterprogrammen bei jedem Durchlauf eine Meldung als Globale Variable senden, die sich das Steuerprogramm abgreift und sofort wieder löscht. Damit ist immer sichergestellt, dass nur Charts zur Berechnung einbezogen werden, die auch tatsächlich online sind.
Ok. Danke.
Ich weiß jetzt, wie ichs mache. Ich werde von den Unterprogrammen bei jedem Durchlauf eine Meldung als Globale Variable senden, die sich das Steuerprogramm abgreift und sofort wieder löscht. Damit ist immer sichergestellt, dass nur Charts zur Berechnung einbezogen werden, die auch tatsächlich online sind.
Vielleicht ist das ja noch was für dich.
Einen Dienst programmieren. Der läuft dann unabhängig von Charts im eigenen Thread.
Sind auch mehrere möglich.
https://www.mql5.com/de/docs/runtime/running
Laden und Löschen von Diensten Dienste werden unmittelbar nach dem Start des Terminals geladen, wenn sie zum Zeitpunkt der Terminalabschaltung gestartet wurden. Das Löschen der Dienste erfolgt unmittelbar nach Beendigung ihrer Arbeit. Dienste haben nur eine einzige Funktion, OnStart(), in der Sie eine Endlosschleife für Empfang und Behandeln der Daten implementieren können, z.B. um nutzerdefinierte Symbole mit Hilfe der Netzwerkfunktionen zu erstellen und zu aktualisieren. Im Gegensatz zu Expert Advisors, Indikatoren und Skripten sind Dienste nicht an ein bestimmtes Chart gebunden, daher wird ein separater Mechanismus bereitgestellt, um sie zu starten. Im Navigator wird mit dem Befehl "Dienst starten" eine neue Instanz des Dienstes angelegt. Eine Dienst-Instanz kann über das entsprechende Menü der Instanz gestartet, gestoppt und entfernt werden. Um alle Instanzen zu verwalten, verwenden Sie das Menü der Dienste. Für bessere Verständigung der Expertenarbeit ist es empfehlenswert, Kode des im Beispiel angeführten Experten zu kompilieren und Operationen von Laden/Ausladen der Experten, Schablonen-, Symbol-, Timeframewechsel usw. durchführen. Beispiel: //+------------------------------------------------------------------+ //| TestExpert.mq5 | //| Copyright 2009, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" class CTestClass { public: CTestClass() { Print("CTestClass constructor"); } ~CTestClass() { Print("CTestClass destructor"); } }; CTestClass global; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Print("Initialisation"); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Print("Deinitialisation with reason",reason); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+

- www.mql5.com
Ok. Danke.
Ich weiß jetzt, wie ichs mache. Ich werde von den Unterprogrammen bei jedem Durchlauf eine Meldung als Globale Variable senden, die sich das Steuerprogramm abgreift und sofort wieder löscht. Damit ist immer sichergestellt, dass nur Charts zur Berechnung einbezogen werden, die auch tatsächlich online sind.
Überleg doch erst einmal: Wenn ein Markt geschlossen ist, kannst Du dort keine Positionen schließen, öffnen oder verändern. Also was willst Du dort - nichts ändert sich, alles bleibt?

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo,
ich habe zwei zusammenhängende Fragen:
-Wie mache ich von einem Chart aus eine Abfrage zu einem Symbol eines anderen Charts, ob dieser handelsbereit ist, also der Markt geöffnet ist? Ich möchte von dem ersten Chart Orders in verschiedenen Symbolen anderer Charts schließen, nach der Abfrage.
-Wie kann ich den Code im ersten Chart auch dann ablaufen lassen, wenn bei diesem selbst der Markt geschlossen ist. Ich habe den Code immer unter der Funktion OnTick() ablaufen lassen. Nun stellte ich fest, dass der Code aber gestoppt wird, wenn der Markt geschlossen ist.
Danke im Vorraus