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

Баг MT5 build 2007. В режиме оптимизация входная строка обрезается до 63 символов.

Код для теста:

#property strict

sinput string symbols = "AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDUSD,USDCAD,USDCHF,USDJPY";
input  bool fortestopt = false;
int OnInit(){
   Print("!!! ",StringLen(symbols)," | ",symbols);

   return INIT_FAILED;
}

void OnTick(){}


Одиночный прогон все нормально: !!! 90 | AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDUSD,USDCAD,USDCHF,USDJPY

Ставим оптимизацию по параметру fortestopt, заходим в лог агента: !!! 63 | AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,

Кто подскажет..

Не отображается лента новостей на моей странице.. Раньше зайдешь и видишь кто что выложил. сейчас чистая странице.. в настройках все правильно ничего не менял..

Баг компилятора.  Выдаёт ошибку неоднозначности, хотя тут всё однозначно.  Должен вызываться первый метод как наиболее подходящий.   В С++ проверено.

class A { };

class B
{
  A _a[];
 public:
        A * operator[](uint i)       { return &_a[i]; }
  const A * operator[](uint i) const { return &_a[i]; }  
};

void OnStart()
{
  B b;
  b[0]; // 'operator[]' - ambiguous call to overloaded function
}
Evgenii Kuznetsov:

Баг MT5 build 2007. В режиме оптимизация входная строка обрезается до 63 символов.

Код для теста:


Одиночный прогон все нормально: !!! 90 | AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDUSD,USDCAD,USDCHF,USDJPY

Ставим оптимизацию по параметру fortestopt, заходим в лог агента: !!! 63 | AUDUSD,EURGBP,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,

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

Длина входного параметра типа string не должна превышать 63 символа (64 вместе с нуль-терминатором)

Slava:

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

Длина входного параметра типа string не должна превышать 63 символа (64 вместе с нуль-терминатором)

Это какое-то драконовское ограничение. Какие обоснования по сегодняшним временам? А как удобно задавать кластеры из кучи символов? Плодить десяток разных параметров? Это удобно?

Slava:

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

Длина входного параметра типа string не должна превышать 63 символа (64 вместе с нуль-терминатором)

Это ограничение не уместно, мы же в строку записываем не цену килограмма картошки.

С этим ограничением жили много лет.

Вопрос возник впервые за всё время

Stanislav Korotky:

Это какое-то драконовское ограничение. Какие обоснования по сегодняшним временам? А как удобно задавать кластеры из кучи символов? Плодить десяток разных параметров? Это удобно?

Обоснования в протоколе обмена с агентом тестирования.

Чтобы задавать кучу символов, запишите эту кучу в текстовый файл и передавайте его, используя #property tester_file

Но при одиночном тесте он же тоже передается агенту тестирования и работает без ограничения.

А почему для static input тоже ограничение, её можно вообще не передавать агенту.

Если даже это не баг примите как запрос на усовершенствование.

Alexey Navoykov:

Баг компилятора.  Выдаёт ошибку неоднозначности, хотя тут всё однозначно.  Должен вызываться первый метод как наиболее подходящий.   В С++ проверено.

Как определяется подходящий?