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

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


Пример на форуме: https://www.mql5.com/ru/forum/318305/page56#comment_59217561


Пример недавной публикации в КБ: https://www.mql5.com/ru/code/viewcode/69335/347469/Memory.mqh

#define __MEMORY__

// #define MEMORY_DEBUG_MAX // DebugBreak при увеличении Max-показателя.
// #define MEMORY_DEBUG_MIN // DebugBreak при уменьшении Max-показателя.

// #define MEMORY_TYPE MQL_MEMORY_USED  // Какой показатель замерять.
// #define MEMORY_TESTER_OPTIMIZATION   // Работа РІ режиме оптимизации Тестера.

class MEMORY

А так отображаются давно загруженные файл в КБ: https://www.mql5.com/ru/code/viewcode/26223/340958/TestCacheHeader.mqh

//+------------------------------------------------------------------+
//| заголовок кеша                                                   |
//+------------------------------------------------------------------+
struct TestCacheHeader
{
  UINT              version;                // версия кеша
  //   wchar_t           copyright[64];          // копирайт
  STRING64           copyright;             // копирайт
//  wchar_t           name[16];               // наименование кеша "TesterOptCache"
  STRING16           name   ;               // наименование кеша "TesterOptCache"
  int               head_reserve[66];
   //---
  UINT              header_size;            // размер заголовка
  UINT              record_size;            // размер кешируемой записи (TestCacheRecord с буфером параметров)


Просьба починить. Спасибо.

Это, действительно, ошибка и для C++?
void Func( int& ) {}

void OnStart()
{
  int i = 0;
  
  Func(i &= 1); // parameter passed as reference, variable expected
}
Вроде, сначала изменяется переменная, а затем она же передается по ссылке.
fxsaber # :
Это, действительно, ошибка и для C++? Вроде, сначала изменяется переменная, а затем она же передается по ссылке.
Нет, это ограничение текущего компилятора MQL.
Это ошибка в Документации?
Если в папке <каталог_данных>MQL5\Profiles\Templates присутствует специальный шаблон <имя_эксперта>.tpl, то при визуальном тестировании и на графике тестирования будут показаны только индикаторы из данного шаблона. В этом случае никакие индикаторы, используемые в тестируемом эксперте, показаны не будут. Даже если в коде советника вызывалась функция TesterHideIndicators() с параметром true.
Вроде, false должно быть.
Документация по MQL5: TesterHideIndicators / Общие функции
Документация по MQL5: TesterHideIndicators / Общие функции
  • www.mql5.com
Задает режим показа/сокрытия индикаторов, которые используются в эксперте. Функция предназначена для управления видимостью используемых индикаторов...
fxsaber #:
TesterHideIndicators

TesterHideIndicators = true

То есть, если в эксперте скрыты индикаторы, то при вызове шаблона они будут отображаться 

Vitaly Muzichenko #:

TesterHideIndicators = true

То есть, если в эксперте скрыты индикаторы, то при вызове шаблона они будут отображаться 

Ну тогда не понимаю русский язык цитаты из Документации. Прочтите внимательно, что там написано.
fxsaber #:
Ну тогда не понимаю русский язык цитаты из Документации. Прочтите внимательно, что там написано.

четыре раза перечитал.

Да, действительно, имелось в виду "false"

P.S. Имеется в виду, даже если нет функции TesterHideIndicators, то индикаторы отображаться не будут.
fxsaber #:
Ну тогда не понимаю русский язык цитаты из Документации.
Там такое.
будут показаны только индикаторы из данного шаблона. В этом случае никакие индикаторы, используемые в тестируемом эксперте, показаны не будут.

Не понимаю.

Не получается увидеть используемые индикаторы на чарте после одиночного прогона.

#property tester_indicator "/Indicators/Examples/AD"

int Handle1 = INVALID_HANDLE;
int Handle2 = INVALID_HANDLE;

void OnInit()
{
//  TesterHideIndicators(true);
  Handle1 = iRSI(_Symbol, PERIOD_H1, 5, PRICE_CLOSE);
  Handle2 = iCustom(_Symbol, PERIOD_H2, "/Indicators/Examples/AD");
  
  Print(Handle1 != INVALID_HANDLE);
  Print(Handle2 != INVALID_HANDLE);
}

void OnDeinit( const int )
{
  Print(IndicatorRelease(Handle1));
  Print(IndicatorRelease(Handle2));
}

Все tpl поудалял - не помогает. В Визуализаторе только видны.

fxsaber #:

Не получается увидеть используемые индикаторы на чарте после одиночного прогона.

Все tpl поудалял - не помогает. В Визуализаторе только видны.

void OnDeinit(const int reason)
{
  if(!MQLInfoInteger(MQL_TESTER)) {
    Print(IndicatorRelease(Handle1));
    Print(IndicatorRelease(Handle2));
  }
}