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

 

bild 2009

Данные, получаемые со старших ТФ на чарте онлайн отличаются от данных, получаемых в тестере. Баг делает невозможным корректное тестирование советников использующих данные со старших ТФ.

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

На скриншоте, где представлены два соответсвующих файла видны существенные отличия:

bug

Файлы:
 
Andrey Dik:

bild 2009

Данные, получаемые со старших ТФ на чарте онлайн отличаются от данных, получаемых в тестере. Баг делает невозможным корректное тестирование советников использующих данные со старших ТФ.

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

На скриншоте, где представлены два соответсвующих файла видны существенные отличия:

И, да, этот баг обойти можно, если самостоятельно делать построение старших ТФ из тиковой истории, но это не значит, что можно не обращать внимание на некорректную работу функций серии i(o,h,l,c), iOpen и т.д. в тестере.

 
Andrey Dik:

Вы запускали мои коды?- нет? Не нравятся мои тесты, напишите свои тесты, "правильно". Когда сделаете проверку на озвученный баг - отпишите здесь. Не охото замарачиваться с проверкой? - тогда не флудите и не умничайте, мой баг репорт не Вам, а разработчикам.
Я использую МТ5 с самого бетта тестинга платформы, и не Вам меня учить.

Запускать Ваши коды нет необходимости. Вы действительно не понимаете проблему?

Скрипт считывает состояния баров на сегодня. Эксперт в процессе тестирования считывает состояния баров на момент текущего тестового времени.

 
Slava:

Запускать Ваши коды нет необходимости. Вы действительно не понимаете проблему?

Скрипт считывает состояния баров на сегодня. Эксперт в процессе тестирования считывает состояния баров на момент текущего тестового времени.

Слава, под давлением Вашего авторитета я было засомневался в правильности своих действий... но лишь на мгновение, потому что вспомнил, что я проверял момент о котором Вы говорите, выводя так же время старших ТФ наряду с их ценами.

Всё же, специально для Вас, я сделал это - теперь выводится в одну строку всё что нужно что бы увидеть проблему.... Не хотите же сказать, что время возвращается верно по iTime, а цены iOpen, iHigh, iLow, iClose - неверно и это нормально?

Так же, прошу обратить особое внимание на строку:

int bar = iBarShift (NULL, tf, time, false);

в соответствующей функции, bar - это индекс в массиве, который получается исходя из времени time, независимо от того, на сегодня это запрашивается, на вчера, или на позавчера, возвращается индекс бара из ходя из запрашиваемого времени в параметрах функции. 

В прикрепе примеры с выводом времени ТФ-ов, настоятельно рекомендую всё же запустить их и убедиться в наличии проблемы самостоятельно, а не слушать случайных прохожих которые не удосужились вникнуть в проблематику, заглянуть в код и запустить его.

Мне непонятна позиция администрации... Хотел показать наличие проблемы, хотел как лучше, а получается как всегда...

Файлы:
 
Pavel Nikiforov:

Столкнулся с такой проблемой в тестере: первый раз нажимаем старт всё хорошо процесс идет, нажимаем сразу после этого - ничего, ни ошибок ни теста. Самый прикол в том, что подождав несколько минут тестер опять работает, но снова на один раз.

Если запустить оптимизацию по ряду прогонов выдает:

EO 2 15:51:28.514 Core 1 genetic pass (0, 0) tested with error "some error after pass finished" in 0:00:00.052

PS 2 15:51:28.615 Core 1 genetic pass (0, 1) tested with error "task rejected by tester agent" in 0:00:00.000 

Такая магия только с одним советником, вероятно проблема с ним и с новыми обновлениями, но где искать не понятно, раньше всё работало(два месяца не трогал).

В общем разобрался. Кому интересно, всему виной Sleep(5000); причем не важно сколько миллисекунд можно и одну. По идее Sleep() не должен влиять на тестирование при этом "проигрывает" сгенерированные тики на указанное время. Я пока не нашел взаимосвязь Sleep() с конкретным кодом советника, у других сов такой проблемы нет, но всё же раньше такого не было и если вы столкнулись с подомным на это нужно обратить внимание.

 
Andrey Dik:

Слава, под давлением Вашего авторитета я было засомневался в правильности своих действий... но лишь на мгновение, потому что вспомнил, что я проверял момент о котором Вы говорите, выводя так же время старших ТФ наряду с их ценами.

Всё же, специально для Вас, я сделал это - теперь выводится в одну строку всё что нужно что бы увидеть проблему.... Не хотите же сказать, что время возвращается верно по iTime, а цены iOpen, iHigh, iLow, iClose - неверно и это нормально?

Так же, прошу обратить особое внимание на строку:

в соответствующей функции, bar - это индекс в массиве, который получается исходя из времени time, независимо от того, на сегодня это запрашивается, на вчера, или на позавчера, возвращается индекс бара из ходя из запрашиваемого времени в параметрах функции. 

В прикрепе примеры с выводом времени ТФ-ов, настоятельно рекомендую всё же запустить их и убедиться в наличии проблемы самостоятельно, а не слушать случайных прохожих которые не удосужились вникнуть в проблематику, заглянуть в код и запустить его.

Мне непонятна позиция администрации... Хотел показать наличие проблемы, хотел как лучше, а получается как всегда...

Попробовал использовать CopyRates () в эксперте, результат такой же неккоректный как и в случае i(), время совпадает а цены - нет.

 

Баг компилятора.  В следующем примере выдаётся ошибка при попытке копирования объекта с константным полем, несмотря на наличие перегруженного оператора =.   Причём текст сообщения об ошибке даже не соответствует причине её возникновения, ибо protected там ни при чём. 

class A
{
};

class B
{
  A _data;
 public:
  const A*const Data;
  
  B() : Data(&_data) { }
  
  void operator=(const B &other) { _data= other._data; }
};

struct C
{
  B b;
};

void OnInit()
{
  B b;
  b=b; // Так работает
  C c;
  c=c; // '=' - not allowed for objects with protected members or inheritance
}
 
Как из русского ME загрузить код из англоязычной КБ?
 
Andrey Dik:

Слава, под давлением Вашего авторитета я было засомневался в правильности своих действий... но лишь на мгновение, потому что вспомнил, что я проверял момент о котором Вы говорите, выводя так же время старших ТФ наряду с их ценами.

Всё же, специально для Вас, я сделал это - теперь выводится в одну строку всё что нужно что бы увидеть проблему.... Не хотите же сказать, что время возвращается верно по iTime, а цены iOpen, iHigh, iLow, iClose - неверно и это нормально?

Так же, прошу обратить особое внимание на строку:

в соответствующей функции, bar - это индекс в массиве, который получается исходя из времени time, независимо от того, на сегодня это запрашивается, на вчера, или на позавчера, возвращается индекс бара из ходя из запрашиваемого времени в параметрах функции. 

В прикрепе примеры с выводом времени ТФ-ов, настоятельно рекомендую всё же запустить их и убедиться в наличии проблемы самостоятельно, а не слушать случайных прохожих которые не удосужились вникнуть в проблематику, заглянуть в код и запустить его.

Мне непонятна позиция администрации... Хотел показать наличие проблемы, хотел как лучше, а получается как всегда...

Это никому не интересно. Главное Маркет и сигналы работают.
 

Добрый день.

Билд 2007. Проблема следующая. Запускаю в тестере стратегий советника на фьюче (не склейка) с визуализацией. Получаю следующий результат

Теперь убираю галку "Визуализация" и получаю уже другие результаты

Брал другие периоды, включая инструменты. Разнятся и показатели прибыли, и кол-во сделок. Причем после детального сравнения сделок выяснил, что без визуализации есть сделки, которые на уровне логики советника быть не могут. Итого верные данные могут быть только с визуализацией.

Товарищи форумчане и разработчики, что это и как с этим бороться? Тестировать все время с визуализацией на больших периодах накладно, так как процесс идет дольше, чем без визуализации.

Причина обращения: