Wie erfahre ich, ob der Markt geschlossen ist? (mql4) - Seite 4

 

Und wir tun dies:

MqlTick Tick;
bool IsNewTick(string symbol)
  {
   MqlTick t;
   SymbolInfoTick(symbol,t);
   if(t.time>Tick.time)
     {
      SymbolInfoTick(symbol,Tick);
      return(true);
     }
   return(false);
  }

Die Funktion gibt aus, ob es einen neuen Tick auf dem Instrument gibt.

Großartig für OnTime. Nur für jedesSymbol muss eseinanderesTick geben

 
Vasyl Nosal:

Wow, das ist eine Menge Text.

MarketInfo(Symbol(),MODE_TRADEALLOWED)

Auf diese Weise erhalten Sie nur den Genehmigungsstatus des zu handelnden Instruments. Wenn das Instrument gehandelt wird, erhalten Sie es an jedem Tag der Woche.
 
Ihor Herasko:
Dadurch erhalten Sie lediglich den Status der Handelsgenehmigung für das Instrument. Wenn das Instrument handelbar ist, werden Sie an jedem Tag in der Woche etwas dafür bekommen.
Das stimmt nicht.
 
Führen Sie vor dem Absenden einer Bestellung eine Überprüfung durch, http://docs.mql4.com/check/istradeallowed
 
Ramiz Mavludov:
Führen Sie vor dem Absenden einer Bestellung eine Überprüfung durch, http://docs.mql4.com/check/istradeallowed
Und dies bezieht sich auf die Schaltfläche "Automatischer Handel".
 
Vasyl Nosal:
Und dies bezieht sich auf die Schaltfläche "Automatischer Handel".
Das verstehe ich nicht. Wenn der automatische Handel nicht aktiviert ist, sollte Ihr EA überhaupt nichts tun.
 
Ramiz Mavludov:
Das verstehe ich nicht. Wenn der automatische Handel nicht aktiviert ist, sollte Ihr EA überhaupt nichts tun.
Nein. Sie kann und sollte in den meisten Fällen gar nichts tun. Wenn die AutoTrade-Schaltfläche deaktiviert ist, kann sie nur mit den Handelsfunktionen arbeiten. Der Rest der Berechnungen ist in Ordnung.
 
Ramiz Mavludov:
Das verstehe ich nicht. Wenn Sie den automatischen Handel nicht aktivieren, sollte Ihr EA überhaupt nichts tun.
Was auf dem Link steht, hat keinerlei Bedeutung für die Frage der Schließung des Marktes.
 
Vasyl Nosal:
Das stimmt nicht.

Vielleicht sollte sie noch einmal überprüft werden. Das letzte Mal, dass ich mich mit dieser Frage beschäftigt habe, war vor der Aktualisierung von MQL4. Damals bedeutete dies die Möglichkeit, mit dem Symbol im Allgemeinen zu handeln, nicht zu einem bestimmten Zeitpunkt. Außerdem ist die Hilfe jetzt so formuliert, dass sie keine klare Antwort gibt. Warten wir bis zum Wochenende und überprüfen wir es. Oder vielleicht hat jemand einige amerikanische Aktien in der Liste der Symbole, für die der Markt jetzt geschlossen ist. Dann können wir es jetzt überprüfen.

Der von Ramiz Mavludov angegebene Wert für IsTradeAllowed ist in der Tat korrekt. Mit dieser Funktion können Sie die Situation auf einem geschlossenen Markt überprüfen. Und Sie können es jetzt schon wissen, anstatt auf das Wochenende zu warten:

   datetime curDay = D'2015.12.14 05:00';
   Print("Trade allowed for 2015.12.14 05:00: ", IsTradeAllowed(_Symbol, curDay));
   
   datetime sunday = D'2015.12.20 03:00';
   Print("Trade allowed for Sunday: ", IsTradeAllowed(_Symbol, sunday));

Ergebnis:

2015.12.16 13:37:23.662 TestData EURUSD,Daily: Trade allowed for Sunday: false
2015.12.16 13:37:23.662 TestData EURUSD,Daily: Trade allowed for 2015.12.14 05:00: true
 
Ihor Herasko:

Vielleicht sollte sie noch einmal überprüft werden. Das letzte Mal, dass ich mich mit dieser Frage beschäftigt habe, war vor der Aktualisierung von MQL4. Damals bedeutete dies die Möglichkeit, mit dem Symbol im Allgemeinen zu handeln, nicht zu einem bestimmten Zeitpunkt. Außerdem ist die Hilfe jetzt so formuliert, dass sie keine klare Antwort gibt. Warten wir das Wochenende ab und überprüfen es. Oder vielleicht hat jemand einige amerikanische Aktien in der Liste der Symbole, für die der Markt jetzt geschlossen ist. Dann können wir es jetzt überprüfen.

Der von Ramiz Mavludov angegebene Wert für IsTradeAllowed ist in der Tat korrekt. Mit dieser Funktion können Sie die Situation auf einem geschlossenen Markt überprüfen. Und Sie können es jetzt schon wissen, anstatt auf das Wochenende zu warten:

Ergebnis:

Ja, das ist sie.

Ich dachte, er meinteboolIsTradeAllowed();.