Отладка индикатора :)) встроенными средствами ?

 

Я так понимаю, этого не будет? :) Вот я обломался сегодня. Все сделал ... и ... :(

Как вообще отлаживатся, посоветуйте что нибудь.

Вылетает у вас, в смысле в коде MQL5 - выход за пределы массива, :) я такой думаю - о щас я как кнопочки-то по нажимаю, как большой :)  ... не то что раньше.... :) А тут бамс -  обломс.

Положим с этим я как-то разберусь, по старинке - ну а вообще-то -  что отладчик не будет работать для индикаторов?  

 
SProgrammer писал(а)  :

Я так понимаю, этого не будет? :) Вот я обломался сегодня. Все сделал ... и ... :(

Как вообще отлаживатся, посоветуйте что нибудь.

Вылетает у вас, в смысле в коде MQL5 - выход за пределы массива, :) я такой думаю - о щас я как кнопочки-то по нажимаю, как большой :)  ... не то что раньше.... :) А тут бамс -  обломс.

Положим с этим я как-то разберусь, по старинке - ну а вообще-то -  что отладчик не будет работать для индикаторов?  

 

Yes.... сделал. :) TMA работает в mql5. :))

Одна и также DLL - работает и там и там. Буду смотреть .

 

Кстати но вот почему  ArrayBsearch  не ищет в отсортированном массиве полученном через CopyTime? Не совсем понятно. Вроде же должен. Причем и как таймсерия и просто как обычный массив.  

 

Но вот кстати и ошибки -

А вот код который приводит к этому. Видите коменнтарий //288000;

input  int Size=240;
input  int Step=1;
input  int IndicatorStart=0;//288000;
input  double OChanelKCorr=0.0;
input  double OLucky=0.2;
 
SProgrammer:

Но вот кстати и ошибки -

А вот код который приводит к этому. Видите коменнтарий //288000;

Это не ошибка, это так задумано для описания входных параметров, пример:

input int         DayTheHistogram   = 1;          // Дней с гистограммой / Days The Histogram

Будет выведено в графе "Переменная": Дней с гистограммой / Days The Histogram

В графе "Значение" : 1

 
SProgrammer:

Кстати но вот почему  ArrayBsearch  не ищет в отсортированном массиве полученном через CopyTime? Не совсем понятно. Вроде же должен. Причем и как таймсерия и просто как обячный массив.  

Да, хотелось бы штатно иметь функцию, а то приходится юзать

long FindIndexByTime(const datetime &time[],datetime barTime, long left = 0, long right = WHOLE_ARRAY)
{
   int size = ArraySize(time);
   if (left < 0 || right > size-1) return -1;
   
   long l = left,
      r = right == WHOLE_ARRAY ? size - 1 : right,
      m;
  
   for (;;)
   {
      m = (l + r) / 2;
      if (barTime < time[m]) r = m - 1;
      else if (barTime > time[m]) l = m + 1;
      else return m;
      
      if (l > r) return -1;
   }
   
   // not all control paths return a value
   return -1;
}

 

 
vdv2001:

Это не ошибка, это так задумано для описания входных параметров, пример:

Будет выведено в графе "Переменная": Дней с гистограммой / Days The Histogram

В графе "Значение" : 1

Круто. Кто придумал?
 
SProgrammer:
Круто. Кто придумал?
Конкретно, наколько я знаю, придумал  stringo. По крайней мере он мне рассказал про эту фичу, когда сделал только.
 
Rosh:
Конкретно, наколько я знаю, придумал  stringo. По крайней мере он мне рассказал про эту фичу, когда сделал только.

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

input(Дней с гистограммой / Days The Histogram) int DayTheHistogram = 1; // Мой личный комментарий / My private comment

с выводом "Дней с гистограммой / Days The Histogram" в качестве заголовка параметра?

Тем более, что заголовок параметра - это заголовок ПАРАМЕТРА, то есть, напрямую связан с ключевым словом input?

И почему при использовании комментариев типа /* */ вместо // они тоже обрабатываются подобным образом, но - ещё более убого?

Например, если комментарий /* */ начинается и заканчивается на той же строке, подобно комментарию типа //, то всё происходит так же, как и в случае комментария типа //.
Но, если комментарий типа /* разбит на несколько строк, то в заголовок параметра попадает только та часть, что содержится до конца строки, где начинается комментарий типа /*.
Если же после начала комментария /* идут лишь пробельные символы, а остаток комментария содержится на следующих строках, то сей комментарий "не замечается" вообще, и в качестве заголовка параметра используется имя переменной.

Такое впечатление, что разработчики "варятся в собственном соку" в запертой наглухо комнате уже много лет, и их не подпускают к свежей информации.
Этакий эксперимент "полёт на Марс", да ещё и в условиях отсутствия связи.

 

Они наверняка сделают так как Вы говорите, ну что нибудь по аналогии с установками свойств в C#. Я уверен что это просто временная мера. Ну типа просто - было не трудно сделать и сделали так.

 

Но вот почему параметры ReadOnly  как-то совсем не понятно. Я понимаю сделали бы модификатор const для ReadOnly. Тут я  даже могу догадаться, почему, так как делал что-то подобное как-то давно, ну типа такие же модули загружаемыее. Можно предположить что тут проблема кроется в том, чтобы избежать повторного вычесления индиатора - ну чтобы все индикаторы с вызываемые из советников с одними и темиже параметрами были вычисляемые один раз. Но :) я сделал немного не так - я сохранял параметры которые были заданны, и копировал для модуля их в перемнные . А так приходится делать тоже самое но уже ручками.

 

:) Не знаю зачем я все эти "тайные" приемы расказываю :)) Хоть бы польза мне бы какая-то от этого была бы. :))

 

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

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

Например бывает, что переменных много, заданы они понятным смысловым выражением, а в комментарии конкретно уточняется для чего это нужно, например

input int        МаксЧислОрдЗаПериодСигнФильтра = 0;     //При возникновении сигнала фильтра, начинается отсчет ордеров выставленных в этом направлении. При достижении максимального количества новые ордера перестают выставляться пока фильтр не сменит направление(отложенники так же удаляются).

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

 
simpleton:

Неужели нельзя было придумать что-нибудь менее убогое, например,

Я уже писал им по этому поводу (https://www.mql5.com/ru/forum/75/page4/#comment_15061). Предлагал практически идентичное вашему решение (т.е. без круглых скобок после input писать заголовок в кавычках как литерал). Но обычно подобные "странные" мягко говоря решения не обсуждаются, не обосновываются и не переделываются ;-).

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