// --- если обычное тестирование без оптимизации и визуализацииbool IsUsualTester = (MQLInfoInteger(MQL_TESTER) && !MQLInfoInteger(MQL_OPTIMIZATION) && !MQLInfoInteger(MQL_VISUAL_MODE));
// --- если не тестирование и не оптимизация, значит видимый графикbool IsVisibleChart = (!IsUsualTester && !MQLInfoInteger(MQL_OPTIMIZATION));
В статье рассматривается идея мультирежимного программирования торговых роботов на MQL5. Используется объектно-ориентированный подход для реализации каждого из режимов. Приводится пример иерархии режимных классов и пример классов для тестирования. Предполагается, что мультирежимное программирование торговых роботов полностью учитывает особенности каждого режима работы MQL5-советника. Для идентификации режимов создаются функции и перечисление.
//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
}
무슨 뜻인가요? 좀 더 자세히 설명해 주시겠어요?
무슨 뜻인가요? 좀 더 자세히 설명해 주시겠어요?
앤드류, 여긴 잘못된 스레드예요. 다른 스레드에서 찾아보셔야 합니다.
앤드류, 이 스레드는 잘못된 스레드입니다. 다른 스레드에서 그런 내용을 찾아보셔야 합니다.
의견 있으신 분?
이렇게 해볼까요?
의견 있으신 분?
Andrei, 기사 (섹션 2. MQL5의 모드)를 참조하세요. 도움이 될 수 있습니다.)
무슨 뜻인가요? 좀 더 자세히 설명해 주시겠어요?
어떤 사람들에게는 이것이 올바른 분기가 아닌 것처럼 보일 수 있지만 간단합니다:
ChartID가 합당한 값을 제공한다면 GUI에 이를 위한 공간이 있고 그 안에서 작동한다는 의미이므로 시각적_테스터 또는 터미널에서 작업할 수 있습니다.
ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE)가 잘못된 핸들을 반환하면 테스터 내부에 있는 것입니다. (또는 MQ VPS일 수도 있습니다. 건드리지 않아서 잘 모르겠습니다).
어떤 사람들에게는 엉뚱한 스레드처럼 보일 수 있지만 간단합니다:
ChartID가 합당한 값을 제공한다면 GUI에 이를 위한 공간이 있고 그 안에서 작동한다는 의미이므로 시각적_테스터를 사용하거나 터미널에서 작업할 수 있습니다.
ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE)가 유효하지 않은 핸들을 반환하면 테스터 내부에 있는 것입니다. (또는 MQ VPS일 수도 있습니다. 건드리지 않아서 잘 모르겠습니다).
테스터에는 가상의 차트이긴 하지만 차트도 있으므로 막다른 골목입니다.
테스터에는 가상이긴 하지만 차트도 있으므로 막다른 길입니다.
해당 스레드에서 답변해 드렸습니다(질문은 동일합니다).
의견 있으신 분?
해당 스레드(동일한 질문)에서 답변해 드렸습니다.
글쎄요, 당신은 모든 권리를 가지고 있습니다. 주제에서 벗어난 부분은 삭제하세요... 뭐가 문제인가요?