Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна - страница 24

 
Vladimir Karputov:

2 Тест идет на скорости "максимальная минус один шаг" - то есть быстро, но не на максимальной скорости

Что будет на более медленном тестировании? Минус 2 шага, минус 3 шага etc

Минус 1 шаг - это просто Sleep(0) для переключения контекста потоков

 
Vladimir Karputov:

Зачем? Я же использую визуальное тестирование.

В исследовательских целях.
 
Slava:

Что будет на более медленном тестировании? Минус 2 шага, минус 3 шага etc

Минус 1 шаг - это просто Sleep(0) для переключения контекста потоков

Я это также постараюсь проверить при следующем случае.

 
Artyom Trishkin:

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

Код из "\MQL5\Include\Indicators\Indicator.mqh":

Спасибо, заменю код на:

//+------------------------------------------------------------------+
//| Converting value of ENUM_APPLIED_PRICE into string               |
//+------------------------------------------------------------------+
static string CIndicator::PriceDescription(const int val)
  {
//--- select by value
   switch(val)
     {
      case ENUM_APPLIED_PRICE::PRICE_CLOSE:
         return("Close");
      case ENUM_APPLIED_PRICE::PRICE_OPEN:
         return("Open");
      case ENUM_APPLIED_PRICE::PRICE_HIGH:
         return("High");
      case ENUM_APPLIED_PRICE::PRICE_LOW:
         return("Low");
      case ENUM_APPLIED_PRICE::PRICE_MEDIAN:
         return("Median");
      case ENUM_APPLIED_PRICE::PRICE_TYPICAL:
         return("Typical");
      case ENUM_APPLIED_PRICE::PRICE_WEIGHTED:
         return("Weighted");
      default:
         //--- is an indicator handle
         if(val>=10)
            return("AppliedHandle="+IntegerToString(val));
         //---
         break;
     }
//--- wrong value
   return("PriceUnknown="+IntegerToString(val));
  }
//+------------------------------------------------------------------+
//| Converting value of ENUM_APPLIED_VOLUME into string              |
//+------------------------------------------------------------------+
static string CIndicator::VolumeDescription(const int val)
  {
//--- select by value
   switch(val)
     {
      case ENUM_APPLIED_VOLUME::VOLUME_TICK:
         return("Tick");
      case ENUM_APPLIED_VOLUME::VOLUME_REAL:
         return("Real");
     }
//--- wrong value
   return("VolumeUnknown="+IntegerToString(val));
  }
//+------------------------------------------------------------------+
//| Converting value of ENUM_MA_METHOD into string                   |
//+------------------------------------------------------------------+
static string CIndicator::MethodDescription(const int val)
  {
//--- select by value
   switch(val)
     {
      case ENUM_MA_METHOD::MODE_SMA:
         return("SMA");
      case ENUM_MA_METHOD::MODE_EMA:
         return("EMA");
      case ENUM_MA_METHOD::MODE_SMMA:
         return("SMMA");
      case ENUM_MA_METHOD::MODE_LWMA:
         return("LWMA");
     }
//--- wrong value
   return("MethodUnknown="+IntegerToString(val));
  }
 
Slava:

Сколько по времени длится тестирование?

Что будет, если тестировать не на максимальной скорости?

У меня возникло подозрение, что индикаторы просто не успевают появиться на графике, всё-таки визуальное тестирование обложено блокировками.

График после тестирования открывается с индикаторами?

От скорости вроде бы не зависит.

Индикаторы и пользовательские (из ресурсов), и встроенные. Хендлы создаются в OnInit.

Запускаю часто по Ctrl+F5.

tester.tpl = default.tpl = чистый шаблон (без индикаторов) с удобной разукраской свечей.

Индикаторы с разных ТФ часто вызываются. Чарты для других ТФ открываются, но индикаторов там тоже нет.


В последнее время редко стало проявляться, раньше намного чаще натыкался.

Агента использую не первого:


 
По пропадающим индикаторам. Ранее лечил  при помощи Comment("") на каждом тике. Сейчас использую переключение между вкладками тестера ( конечно если используются дополнительные таймсерии )
 
Valeriy Korobeynik:
По пропадающим индикаторам. Ранее лечил  при помощи Comment("") на каждом тике. Сейчас использую переключение между вкладками тестера ( конечно если используются дополнительные таймсерии )

Comment() принудительно перерисовывает чарт

 
Valeriy Korobeynik:
По пропадающим индикаторам. Ранее лечил  при помощи Comment("") на каждом тике. Сейчас использую переключение между вкладками тестера ( конечно если используются дополнительные таймсерии )

Они не пропадают, они не появляются вообще (даже на паузе, даже при ручному тиканью по F12)

 
Andrey Khatimlianskii:

Они не пропадают, они не появляются вообще (даже на паузе, даже при ручному тиканью по F12)

Переключение между вкладками у меня железно работает. По комменту уже нет, проверил. 

 
Andrey Khatimlianskii:

От скорости вроде бы не зависит.

Индикаторы и пользовательские (из ресурсов), и встроенные. Хендлы создаются в OnInit.



Пользовательские индикаторы из ресурсов? Проверим