// --- если обычное тестирование без оптимизации и визуализацииbool IsUsualTester = (MQLInfoInteger(MQL_TESTER) && !MQLInfoInteger(MQL_OPTIMIZATION) && !MQLInfoInteger(MQL_VISUAL_MODE));
// --- если не тестирование и не оптимизация, значит видимый графикbool IsVisibleChart = (!IsUsualTester && !MQLInfoInteger(MQL_OPTIMIZATION));
В статье рассматривается идея мультирежимного программирования торговых роботов на MQL5. Используется объектно-ориентированный подход для реализации каждого из режимов. Приводится пример иерархии режимных классов и пример классов для тестирования. Предполагается, что мультирежимное программирование торговых роботов полностью учитывает особенности каждого режима работы MQL5-советника. Для идентификации режимов создаются функции и перечисление.
Es mag einigen so vorkommen, dass dies nicht der richtige Zweig ist, aber es ist ganz einfach:
Wenn ChartID einen vernünftigen Wert ergibt, bedeutet das, dass es einen Platz in der GUI gibt und dass man darin zeichnen kann, also entweder VISUAL_TESTER oder einfach im Terminal arbeiten.
Wenn ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) gibt ungültige Handle, dann sind wir in der Tester. (Oder vielleicht MQ VPS - ich habe es nicht berührt, ich weiß es nicht).
Dies mag für einige wie das falsche Thema erscheinen, aber es ist ganz einfach:
Wenn ChartID vernünftig ist, bedeutet das, dass es einen Platz in der GUI gibt und dass man darin zeichnen kann, also entweder VISUAL_TESTER oder einfach im Terminal arbeiten.
Wenn ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) gibt ungültige Handle, dann sind wir in der Tester. (Oder vielleicht MQ VPS - ich habe es nicht berührt, ich weiß es nicht).
Der Tester hat auch ein Diagramm, wenn auch ein virtuelles, so dass dies eine Sackgasse ist.
//true если работа на чарте или в визуальном тестировании, в остальных случаях falsebool CheckMode ()
{
if(MQLInfoInteger(MQL_DEBUG) ||
MQLInfoInteger(MQL_PROFILER) ||
(MQLInfoInteger(MQL_TESTER) && ! MQLInfoInteger(MQL_VISUAL_MODE)) ||
MQLInfoInteger(MQL_OPTIMIZATION) ||
MQLInfoInteger(MQL_FRAME_MODE)) returnfalse;
returntrue;
}
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}
Was bedeutet das? Können Sie das näher erläutern?
Was bedeutet das? Können Sie das näher erläutern?
Andrew, dies ist der falsche Thread. Du musst es in einem anderen Thema herausfinden.
Andrew, dies ist der falsche Thread. Du solltest solche Dinge in einem anderen Thread herausfinden.
Hat irgendjemand eine Idee?
Vielleicht versuchen Sie dies?
Hat irgendjemand eine Idee?
Andrei, schauen Sie sich bitte den Artikel (Abschnitt 2. Modi in MQL5), es kann helfen )).
Was bedeutet das? Können Sie das näher erläutern?
Es mag einigen so vorkommen, dass dies nicht der richtige Zweig ist, aber es ist ganz einfach:
Wenn ChartID einen vernünftigen Wert ergibt, bedeutet das, dass es einen Platz in der GUI gibt und dass man darin zeichnen kann, also entweder VISUAL_TESTER oder einfach im Terminal arbeiten.
Wenn ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) gibt ungültige Handle, dann sind wir in der Tester. (Oder vielleicht MQ VPS - ich habe es nicht berührt, ich weiß es nicht).
Dies mag für einige wie das falsche Thema erscheinen, aber es ist ganz einfach:
Wenn ChartID vernünftig ist, bedeutet das, dass es einen Platz in der GUI gibt und dass man darin zeichnen kann, also entweder VISUAL_TESTER oder einfach im Terminal arbeiten.
Wenn ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) gibt ungültige Handle, dann sind wir in der Tester. (Oder vielleicht MQ VPS - ich habe es nicht berührt, ich weiß es nicht).
Der Tester hat auch ein Diagramm, wenn auch ein virtuelles, so dass dies eine Sackgasse ist.
Der Tester hat auch ein Diagramm, wenn auch ein virtuelles, so dass es eine Sackgasse ist.
Ich habe Ihnen in diesem Thread geantwortet (die Fragen sind dieselben).
Hat irgendjemand eine Idee?
Ich habe Ihnen in diesem Thread geantwortet (dieselbe Frage).
Nun, Sie haben alle Rechte. Löschen, wo es nicht zum Thema gehört... Wo ist das Problem?