Ошибки, баги, вопросы - страница 3207

 
Violetta Novak #:

короче, выяснилось, что действительно нужен флаг  MQL_CHART_MODE.

и, так же выяснилось (частично подтвердилось), что логики флагов пересекаются, к примеру, в визуальном режиме тестирования флаги тестера и визуал true

в таком случае напрашивается логичная просьба к разработчикам:

1. добавить флаг  MQL_CHART_MODE

2. разделить сущности MQL_TESTER и MQL_VISUAL_MODE, потому что эти флаги оба true в визуальном режиме

Не надо пожалуйста ничего менять. Это создаст доп. проблемы для тех кто этим пользуется давно - нужно будет переделывать. Чем вариант ниже не подходит?

if (!MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_VISUAL_MODE))
{
  //выполняем некоторые действия
}
 
Violetta Novak #:

короче, выяснилось, что действительно нужен флаг  MQL_CHART_MODE.

и, так же выяснилось (частично подтвердилось), что логики флагов пересекаются, к примеру, в визуальном режиме тестирования флаги тестера и визуал true

в таком случае напрашивается логичная просьба к разработчикам:

1. добавить флаг  MQL_CHART_MODE

2. разделить сущности MQL_TESTER и MQL_VISUAL_MODE, потому что эти флаги оба true в визуальном режиме

Всё верно там с флагами.

Визуал - это тестер? Да.
Тестер - это тестер? Да.
Тестер - это визуал? Не всегда.
Чарт - это тестер? Нет.

 
Artyom Trishkin #:

Всё верно там с флагами.

Визуал - это тестер? Да.
Тестер - это тестер? Да.
Тестер - это визуал? Не всегда.
Чарт - это тестер? Нет.

а одиночный прогон? проще иметь отдельные сущности чем пересекающиеся.

 
Andrey Miguzov #:

Не надо пожалуйста ничего менять. Это создаст доп. проблемы для тех кто этим пользуется давно - нужно будет переделывать. Чем вариант ниже не подходит?

потому что это сработает при оптимизации, что не соответствует поставленной задаче.

 
Violetta Novak #:

потому что это сработает при оптимизации, хотя этого не нужно.

Это не сработает при оптимизации. Потому что оптимизация - это не визуальный режим.

Потратьте 5 минут - вставьте код к себе в эксперта и сможете в этом убедиться.

Добавлено:

Возможно выше задача сформулирована не до конца...

Напишите список - в каких режимах должно работать, а в каких нет - я Вам скину код прямо сюда. 

 
Andrey Miguzov #:

Это не сработает при оптимизации. Потому что оптимизация - это не визуальный режим.

Потратьте 5 минут - вставьте код к себе в эксперта и сможете в этом убедиться.

да, Вы правы, так работает.

 
Violetta Novak #:

а одиночный прогон? проще иметь отдельные сущности чем пересекающиеся.

Не одиночный прогон это MQL_OPTIMIZATION

Есть же список всех флагов:

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Информация о запущенной MQL5-программе - Состояние окружения - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin #:

Не одиночный прогон это MQL_OPTIMIZATION

Есть же список всех флагов:

попробуйте:

double OnTester ()
{
  if (MQLInfoInteger(MQL_TESTER)) 
  {
    Print ("tester");
    return 123;
  }
  
  Print ("opt");
  return 129;
}

и прогоните оптимизацию, будет понятно, что флаги Тестер и Оптимизация эквивалентны, то есть, всё же, флаг MQL_TESTER это не "одиночный прогон", вернее не только,

данный код будет выдавать всегда значение кастомного критерия 123.

 
Violetta Novak #:

короче, выяснилось, что действительно нужен флаг  MQL_CHART_MODE.

и, так же выяснилось (частично подтвердилось), что логики флагов пересекаются, к примеру, в визуальном режиме тестирования флаги тестера и визуал true

в таком случае напрашивается логичная просьба к разработчикам:

1. добавить флаг  MQL_CHART_MODE

2. разделить сущности MQL_TESTER и MQL_VISUAL_MODE, потому что эти флаги оба true в визуальном режиме

Что за глупость? Зачем их делить? Если вам надо выполнение только в тестере без визуального режима, то проверьте только  MQL_TESTER

Но если вам нужен визуальный режим, то и проверять надо только один MQL_VISUAL_MODE и в других проверках нет необходимости…

Вы обсасываете проблемы первоклассников… В том нет проблем никаких…


Добавлено:

Всё это относится и к режиму оптимизации.

 
Andrey Miguzov #:


У меня вся графика вот так работает:

if (!MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_VISUAL_MODE))
{
  //выполняем некоторые действия
}

У меня тоже так работает.

И никаких новых флагов не нужны.

Можно также использовать  MQL_OPTIMIZATION.

Причина обращения: