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

 
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.

 
Violetta Novak #:

попробуйте:

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

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

Да что ж такое то... Я знаю что флаг Тестер всеобщий. Ну так надо дополнительно отсекать. Зато если Не Тестер - то точно Не тестер.

Если Тестер и Визуал, то Визуал.

Если Тестер и Не Визуал, то может быть Оптимизация - проверить Оптимизацию

и далее в том же духе

 
Alexey Viktorov #:

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

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

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


Добавлено:

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

Вы не правы.

Если использовать только  MQL_VISUAL_MODE, то это не будет работать на графике MT5.

 

Добрый день.

У меня "почему-то вдруг" стал недоступен на компе отладчик. База (МТ5) установлена на внешнем жестком диске. Подскажите плиз, кто в курсе, какие я законы природы нарушил и как восстановить работоспособность?

 
Sergey Voytsekhovsky #:

Добрый день.

У меня "почему-то вдруг" стал недоступен на компе отладчик. База (МТ5) установлена на внешнем жестком диске. Подскажите плиз, кто в курсе, какие я законы природы нарушил и как восстановить работоспособность?

Ну или куда такие вопросы можно задать? Может где-то описано, каковы требования к терминалу, его настройкам, расположению файлов и тд., почему вообще МетаЭдитор может делать отладку недоступной???

 
Sergey Voytsekhovsky #:

Добрый день.

У меня "почему-то вдруг" стал недоступен на компе отладчик. База (МТ5) установлена на внешнем жестком диске. Подскажите плиз, кто в курсе, какие я законы природы нарушил и как восстановить работоспособность?

Попробуйте увидеть файл исходник

Или скопируйте полный путь и вставьте, хоть в сам файл исходник. Потом можно будет удалить или просто отменить вставку.

Если файл находится не в папке Terminal\MQL5\Experts значит отладка работать не будет. Или соответственно \Indicators или \Scripts

 
Alexey Viktorov #:

Попробуйте увидеть файл исходник

Или скопируйте полный путь и вставьте, хоть в сам файл исходник. Потом можно будет удалить или просто отменить вставку.

Если файл находится не в папке Terminal\MQL5\Experts значит отладка работать не будет. Или соответственно \Indicators или \Scripts

Большое Спасибо!!! Совет помог, кажется разобрался.

 

b3333. Этот скрипт компилируется и выполняется без предупреждений. При отладке видно, что в "b=a" вызывается A::operator=, хотя он переопределен в A1.  (в С++ здесь  будет ошибка компилятора).

class A
  {
public:
   void              operator=(const A&) {}
  };

class A1: public A
  {
   int               i;
   void              operator=(const A1&) {}
  };

void OnStart()
  {
   A a;
   A1 b;
   b = a;            //Вызывается A::operator=(const A&) (должна быть ошибка!)
  }

Это может привести к большим багам в программах!