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

 
 На мультитаймфреймовых индикаторах живой графической разметки тестер, конечно же, сходит с ума... Всё сикось-накось.
 
x100intraday:
 На мультитаймфреймовых индикаторах живой графической разметки тестер, конечно же, сходит с ума... Всё сикось-накось.
Можно пример? Интересно, как это выглядит, а то из объяснения ничего не понятно.
 
tol64:
Можно пример? Интересно, как это выглядит, а то из объяснения ничего не понятно.

 Конечно, можно. Как только допилю, так сразу в свободный доступ выложу... но пока препоны...

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

 Кстати, без нормального прогона в тестере допиливать буду чёрте сколько, ибо придётся всё тестировать в реальном времени, без ускорения. 

 

Разработчикам

Я логики ChartIndicatorDelete не пойму. В чем прикол работы по ороткому имени?

Добавляем по хендлу, а сносим по короткому имени, это логично? 

 Полагаю, что нужно либо сменить параметр с имени на хенндл индюка, либо добавить дубликат функции с хендлом.

 

Разработчикам

А кто-то может объяснить почему вот такой код работает в терминале без ошибок, а в тестере с ошибками?

  if((FirstStart)&&(Handle_JRSX==INVALID_HANDLE))
  {
  Handle_JRSX = iCustom(NULL,PERIOD_D1,"3c_JRSX_H",20,240);
  
    if(Handle_JRSX==INVALID_HANDLE)ChartIndicatorAdd(0,1,Handle_JRSX);
  
  }

В тестере  ChartIndicatorAdd возвращает false, а при проверке отображается ошибка 4014.

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

 
victorg:

Пожалуйста, помогите разобраться!

У меня в процессе вычислений получаются числа, смысл которых мне неясен.

Присвою такое число переменной а и выведу его на печать: 

Результат:

Но ведь согласно документации тип double не может иметь степень ниже -308. Кто знает, что это за числа?

Тёмный лес... 

Пытаюсь в степень

     double x,z;
     int y;
     x=-7.56414503782948460000;
     y=MathPow(
     10,         // основание 
     321      // показатель степени
     );
     z=x*y;
     Print("z = ",z);

получаю

2012.06.11 09:55:30     dbl (EURUSD,M4) z = 16243877779.83916

но

     double a=-7.56414503782948460000e-321;
     int b=a;
     Print("b = ",b);

вроде правильно, переполнение и

2012.06.11 09:55:30     dbl (EURUSD,M4) b = 0

присоединяюсь к вопросу.

 

А существует ли функционал позволяющий устанавливать/изменять высоту графика?

Если такого функционала нет охото его получить. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - Документация по MQL5
 
Silent:

Тёмный лес... 

Насколько удалось понять, в стандарте IEEE 754 наименьшее значение положительного числа для double равно примерно 2,3·10−308. Но это значение соответствует нормализованным числам, То есть числам, у которых мантисса не меньше единицы. Но существуют еще и ненормализованные числа, это числа, у которых значение мантиссы меньше единицы. Для таких чисел наименьшее значение положительного числа для double равно примерно 5,0·10−324. Поддержка ненормализованных чисел всегда вызывает массу вопросов. Похоже, что MQL5 поддерживает операции с ненормализованными числами, хотя в справочнике об этом ничего не сказано. Возникает вопрос, как должна реагировать на такие числа функция MathIsValidNumber()?

Можно убедиться в том, что MQL5 не считает ненормализованные числа равными нулю

double a=-7.56414503782948460000e-321;
PrintFormat("a = %.18e",a);
if(a==0.0)Print("a == 0.0");
else Print("a != 0.0");

получим

  a != 0.0
  a = -7.564145037829484600e-321
Что касается Вашего примера

 

     double a=-7.56414503782948460000e-321;
     int b=a;
     Print("b = ",b);

Число a по абсолютному значению значительно меньше единицы, поэтому и целое число b получилось равным нулю. Наверное, все правильно.

 
Interesting:

Разработчикам

Я логики ChartIndicatorDelete не пойму. В чем прикол работы по ороткому имени?

Добавляем по хендлу, а сносим по короткому имени, это логично? 

 Полагаю, что нужно либо сменить параметр с имени на хенндл индюка, либо добавить дубликат функции с хендлом.

Весь необходимый функционал уже есть, посмотрите пример к IndicatorParameters()
 
Interesting:

А существует ли функционал позволяющий устанавливать/изменять высоту графика?

Если такого функционала нет охото его получить. 

Смотрите EA_OBJPROP_CHART_ID
Причина обращения: