Бета-версия платформы MetaTrader 5 build 2155: Области видимости в MQL5, глобальное обновление тестера стратегий и встроенного хостинга - страница 3

 
fxsaber:

Сделайте проверку на все ArrayResize и ArrayCopy: если завершилась неудачно - TesterStop c подробными записями в Common-папку.

Спасибо за совет! К сожалению ошибку воспроизвести не смогу - не мой код, но интересно, что она возникает только при оптимизации.

 
fxsaber:

Никак не отразятся. Просто сейчас стало возможным узнать о наличии/отсутствии FIFO через MQL.

Например, ставите в Маркет-продукте в OnInit эту проверку. Если true - INIT_FAILED. 

Похоже это единственно правильное решение, я тоже других вариантов не вижу ))

 
Прошу рассмотреть возможность визуального отличия в GUI (CTRL+U) формульных кастомных символов от обычных кастомных символов.
 

При тестировании в тестере стратегий получаю следующую ошибку:

2019.09.25 14:22:26.999 DESKTOP:2011    genetic pass (20, 398) tested with error "critical runtime error 503 in OnTimer function (zero divide, module Experts\Tester_Timer.ex5, file ps_c_Ind.mqh, line 256, col 44)" in 0:00:00.077

Вот кусок кода:

            if(m_array[i].sumrng != 0)
            {
               m_valp[i] = m_array[i].summp/m_array[i].sumrng;
               m_valm[i] = m_array[i].summm/m_array[i].sumrng;
            }
            else 
               m_valp[i] = m_valm[i] = 0;        

256 строка это:

               m_valp[i] = m_array[i].summp/m_array[i].sumrng;

Даже не знаю, как понять, в чем ошибка.

 
Maksim Emeliashin:

При тестировании в тестере стратегий получаю следующую ошибку:

Вот кусок кода:

256 строка это:

               m_valp[i] = m_array[i].summp/m_array[i].sumrng;

Сделайте проверку перед делением типа

if(!MathIsValidNumber(m_array[i].sumrng))
  {
   Print("m_array[i].sumrng=",m_array[i].sumrng);
  }

Там будет "нечисло"

 
Rashid Umarov:

Сделайте проверку перед делением типа

Там будет "нечисло"

Спасибо!

Век живи, век учись. Не знал про такую полезную функцию.

 

Старый стиль стилизатора (такой вид имеет Стандартная Библиотека)

//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CTrade::CTrade(void) : m_async_mode(false),
                       m_magic(0),
                       m_deviation(10),
                       m_type_filling(ORDER_FILLING_FOK),
                       m_log_level(LOG_LEVEL_ERRORS)

  {

и этот же код новым стилизатором:

//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CTrade::CTrade(void) : m_async_mode(false),
   m_magic(0),
   m_deviation(10),
   m_type_filling(ORDER_FILLING_FOK),
   m_log_level(LOG_LEVEL_ERRORS)

  {

С новым стилизатором (стиль MetaQuotes) некрасиво выглядит конструктор - плохо читается, смещено всё влево.

 

Правильно ли я понимаю, что каждая ячейка 2D графика результатов оптимизации представляет собой результат всех проходов с соответствующими X и Y параметрами, отсортированный по результату ?

Такой вопрос - можно ли в 2D графике результатов оптимизации задавать другие цвета ?  Чтобы видеть, какая часть ячейки имеет значения выше нуля, а какая - ниже. То есть, иметь что-то вроде "уровня" в 3D графике.

 

> Заменять табуляцию пробелами
> При включении этой опции стилизатор будет заменять все символы табуляции в коде на символы пробелов. Количество символов на табуляцию определяется в разделе "Общие".


В отключенном состоянии всё равно меняет табы на пробелы, так что эта опция вообще не работает. Например, со стилем Allman. Опция "Вставлять пробелы" при этом также отключена.

 
Georgiy Merts:

Правильно ли я понимаю, что каждая ячейка 2D графика результатов оптимизации представляет собой результат всех проходов с соответствующими X и Y параметрами, отсортированный по результату ?

На самом деле там сложнее - каждая ячейка содержит массив значений, который зависит   еще от остальных параметров. А цвет выбирается только по самому максимальному значению в этом пространстве.

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