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

 
fxsaber:

Помню, что когда увлекался этой темой, было много нюансов. Что-то правильно или неправильно показывало, в зависимости от OnTester*-функции. Попробуйте в разных On-функциях вызвать.

Как это в разных? Мне нужно в OnTesterInit - других вариантов нет.

 
Stanislav Korotky:

Как это в разных? Мне нужно в OnTesterInit - других вариантов нет.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.08.15 17:49

ParameterGetRange не работает в OnTesterInit.
sinput int Range = 5;

#define PRINT(A) Print(#A + " = " + (string)(A));

void PrintParameter( const string Name, const string From )
{
  PRINT(From)
  
  bool Enable;
  long Value, Start, Step, Stop;
  
  if (ParameterGetRange(Name, Enable, Value, Start, Step, Stop))
  {
    PRINT(Start)
    PRINT(Step)
    PRINT(Stop)
    PRINT(Value)
    PRINT(Enable)
  }   
}

void OnTesterInit()
{
  ParameterSetRange("Range", true, 5, 1, 2, 3); // Задали ненулевыми все значения
  
  PrintParameter("Range", __FUNCTION__); // Возвращает одни нули
}

void OnTesterDeinit()
{
  PrintParameter("Range", __FUNCTION__); // Работает нормально
  
  ChartClose();
}

void OnTesterPass()
{
  PrintParameter("Range", __FUNCTION__); // Работает нормально
}

int OnInit()
{
  uchar Data[];
  
  FrameAdd(NULL, 0, 0, Data);
  
  return(INIT_FAILED);
}
 
fxsaber:

Это только подтверждает мой тест-кейс: установка параметра в MQL не влияет на его последующее чтение в OnTesterInit. В других обработчиках уже поздно что-либо настраивать, т.к. проходы определяются начальными настройками.

 
Недоработка
#import "z.ex5" //(1) Error: '#import' - #import was not closed
#import
/*
.
.
.
*/
#import "z.ex5" //(2)

Не закрыт 2-ой #import, а ошибку выдает на 1-ом - cоответственно неправильно показано реальное место ошибки - долго не мог понять в чем дело

 
Ошибка при компиляции:
class A {};
class B {
public:
    static A a;
} b;  //Error: unresolved static variable 'B::a'
A B::a;
void OnStart() {}
 
Комментарии, не относящиеся к этой теме, были перенесены в "Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам".
 

Функция:

CopyTicksRange(_Symbol, _ticks, COPY_TICKS_ALL);

в режиме генерации тиков возвращает максимум 131072 тика. Это баг, фича, где-нибудь про это сказано в документации?

В режиме реальных тиков этого ограничения нет.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 
Правильно ли текущее поведение, когда советник во фрейм-режиме на чарте Терминала запускается с входными параметрами, что по-умолчанию, а не с теми, что заданы во вкладке Параметра Тестера?
 
Возможно ли как то защитить график от смены Таймфрейма и символа ?
Причина обращения: