Библиотеки: Virtual - страница 63

 
hini #:
What does this mean? Can you explain it more clearly? I searched the Virtual folder for MQL_VISUAL_MODE but could not find any reference to it.

Это говорит о том, что в библиотеке нет зависимости от режима MQ-Тестера. Либо какой-то баг MQ, либо у вас в коде что-то.

 

Разве я недостаточно ясно объяснил? Я имею в виду, что независимо от того, включена визуализация или нет, баланс счета виртуальной стратегии должен быть постоянным.

Однако теперь, когда я отключил визуализацию, баланс счета сильно отличается от того, который был при включенной визуализации.

 
fxsaber # :

Это говорит о том, что в библиотеке нет зависимости от режима MQ-Тестера. Либо какой-то баг MQ, либо у вас в коде что-то.

Хорошо, я проведу еще исследование.

 

Очень странно, пока эта строка кода добавляется для вывода баланса, конечный результат тот же. Комментирование этой строки кода делает разницу


 
hini #:

Very strangely, as long as this line of code is added to output the balance, the end result is the same. Commenting this line of code makes the difference

Используете этот макрос?

#define VIRTUAL_ALTERNATIVE // Альтернативная скорость расчетов
 
fxsaber # :

Используете этот макрос?

Да, удалите этот макрос и все будет нормально.

 
hini #:

Yes,Delete this macro and it will be normal

Minimum code required to reproduce the issue.

 
fxsaber # :

Minimum code required to reproduce the issue.

нужно немного подождать

 
fxsaber # :

Minimum code required to reproduce the issue.

Код здесь, возможно, вам придется изменить путь включения.

Не открывая визуализацию, а затем не включая VIRTUAL_ALTERNATIVE или не отключая VIRTUAL_ALTERNATIVE соответственно, вы обнаружите, что балансы отличаются

Файлы:
virTestEA.mq5  15 kb
virTestEA.ex5  228 kb
 
hini #:

The code is here, you may need to change the include path.

Without opening the visualization, and then enabling VIRTUAL_ALTERNATIVE or disabling VIRTUAL_ALTERNATIVE respectively, you will find that the balances are different

Спасибо, получилось воспроизвести.


На всякий случай напомню, что в MQ-Тестере сначала вызывается OnTester и только потом OnDeinit. Поэтому иногда логично закрывать все Virtual-позиции в OnTester.

double OnTester() {
  if (VirPointer.Select())
    VIRTUAL::Stop();
  
  return(AccountInfoDouble(ACCOUNT_BALANCE));
}