И опять к вопросу о достоверности результатов тестирования. Может пора исправить?

 


В советнике есть некоторый алгоритм закрытия позиции. Запускаю тест. Просматриваю график. Нахожу позицию, закрытую в минусе, хотя, согласно алгоритма, она должна была закрыться много раньше в плюсе.

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

Угадали? Именно. В визуальном режиме всё отрабатывает как и должно.


а это без визуализации


Другими словами тестер и визуальный тестер - разные вещи (мне это уже говорили).

Но получается, что в просто тестере есть косяк (извините, из лексикона это слово пока убрать не удаётся).

Получается, что тестировать надо в визуальном тестере! А сколько времени это будет занимать?

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

 
Сергей Таболин:

нормально протестировать программу не возможно?

Без воспроизведения проблемы ценность сообщения близка к нулю.

Приложите лог-файлы прохода без визуализации и с ней.
 
fxsaber:

Без воспроизведения проблемы ценность сообщения близка к нулю.

Приложите лог-файлы прохода без визуализации и с ней.

И в каком режиме тестировалось тоже.

 
Alexey Volchanskiy:

И в каком режиме тестировалось тоже.

В логе все видно будет.

 
fxsaber:

В логе все видно будет.

а-а, ну вы по этим вещам дока )) я нет

 
Вероятнее всего ваш алгоритм зактытия как то зависит от метода тестирования. 
графические объекты не используются случайно? 

сделайте расширенное логирование алгоритма закрытия, увидите что конкретно он не получает, почему условие не срабатывает. там и капайте.
 
fxsaber:

Без воспроизведения проблемы ценность сообщения близка к нулю.

Приложите лог-файлы прохода без визуализации и с ней.

Расстроился. Вырубил всё и ушёл ужинать....

Вернулся, прочитал, решил сделать логи... Сначала просто тест. А он уже отработал как надо... Почему так?

Но к этой радости приклеилась другая непонятка: теперь на графике после теста нет индикаторных линий. Что за чертовщина?

void OnDeinit(const int reason)
{
//---
   if(!MQLInfoInteger(MQL_TESTER))
   {
      IndicatorRelease(handle_AMAC_FST);          // удаляем хэндл индикатора и освобождаем память занимаемую им
      
      int j = ChartIndicatorsTotal(0,0);
      for(int i = j-1; i >= 0; i--) ChartIndicatorDelete(0,0,ChartIndicatorName(0,0,i));     // удаляем индикатор с графика
      
      for(int g = 9; g > 0; g--)
      {
         j = ChartIndicatorsTotal(0,g);
         for(int i = j-1; i >= 0; i--) ChartIndicatorDelete(0,g,ChartIndicatorName(0,g,i));  // удаляем индикаторы с графика
      }
   }
..............
}


Nikolay Khrushchev:
Вероятнее всего ваш алгоритм зактытия как то зависит от метода тестирования. 
графические объекты не используются случайно? 

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

Никак не зависит. Все рассчёты выполняются только на новом баре. Из графики только линии индикатора (которые теперь куда-то пропали).

============

Как бы то ни было, что-то с тестером не так...

 
#property tester_everytick_calculate ?
 
Andrey Khatimlianskii:
#property tester_everytick_calculate ?
//+------------------------------------------------------------------+
//|                                                         AMAC.mq5 |
//|                                     Copyright 2019, Tabolin S.N. |
//|                           https://www.mql5.com/ru/users/vip.avos |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Tabolin S.N."
#property link      "https://www.mql5.com/ru/users/vip.avos"
#property version   "1.03"
#property icon       "\\Images\\mi2.ico"
string    prog_name = MQLInfoString(MQL_PROGRAM_NAME);
string    TF;
//----------------------------------------------------------------------------------------------
#define  GS                1.618
#define  PI                3.14159
//----------------------------------------------------------------------------------------------
#include <Trade\AccountInfo.mqh>                      // доступ к свойствам текущего открытого торгового счета
#include <Trade\Trade.mqh>                            // подключаем библиотеку для совершения торговых операций
#include <Trade\PositionInfo.mqh>                     // подключаем библиотеку для получения информации о позициях
#include <Trade\SymbolInfo.mqh>                       // доступ к свойствам текущего символа
#include <ChartObjects\ChartObject.mqh>               // обеспечивает возможность упрощенного доступа к функциям API MQL5
#include <ChartObjects\ChartObjectsLines.mqh>
#include <lib_cisnewbar.mqh>

CAccountInfo               my_Account;                // доступ к свойствам текущего открытого торгового счета
CTrade                     my_Trade;                  // структура для выполнения торговых операций
CPositionInfo              my_Position;               // структура для получения информации о позициях
CSymbolInfo                my_Symbol;                 // доступ к свойствам текущего символа
CisNewBar                  current_chart;             // экземпляр класса CisNewBar: текущий график

#include <MyInclude\putOrder6.mqh>;
#include <MyInclude\drawLines.mqh>;
//----------------------------------------------------------------------------------------------
 
В визуальном режиме конечно круто, но ооочень долго. Эффективно на маленьких периодах или ошибки искать да
 
Сергей Таболин:

Это на мой пост ответ?