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

 

А подкачка истории случаем не присходит?

Всегда только на одном символе или по GBPUSD тоже наблюдается?

Какой билд? Какой сервер? 

 

Подкачка истории существет такой моментик,

Нет на всех валютных парах как по simbol1 так и по simbol2,

билд 370, демо счет (alpari-demo)


Хочу заметить что оставив 1 индюк (по скрину выше), перерисовка идет

не так заметно, а если еще и ТФ поставить на Н1, то раз в 5 мин,

а может и несколько раз перерисоваться.

Думали может комп виснит, но на 2-х ядерном тож самое, да еще и график не прокручивается

секунду другую, (ждет наверное пока проработает индюк) иль еще чегось?

Вечером на ШЕСТИ ЯДЕРНИКЕ протестим!

Также хочу заметить что с другими подобными индюками ничегось не было

подобного, не может же быть что дело в сложных расчетах! А индюк просто

и работает по ценам Open

 
alexluek:

Помогите! Индикатор работает нормально, все отображает и расчитывает, но

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

У меня такое присходит регулярно, на фоне потери связи. После возобновления связи терминал заново пересчитывает значения индикатора, на пересчёт требуется время. Из Справочника:

Необходимо отметить связь между значением, возвращаемым функцией OnCalculate() и вторым входным параметром prev_calculated. Параметр prev_calculated при вызове функции содержит значение, которое вернула функция OnCalculate() на предыдущем вызове. Это позволяет реализовать экономные алгоритмы расчета пользовательского индикатора с тем, чтобы избежать повторных расчетов для тех баров, которые не изменились с предыдущего запуска этой функции.

Для этого обычно достаточно вернуть значение параметра rates_total, которое содержит количество баров при текущем вызове функции. Если с момента последнего вызова функции OnCalculate() ценовые данные были изменены (подкачана более глубокая история или были заполнены пропуски истории), то значение входного параметра prev_calculated будет установлено в нулевое значение самим терминалом.

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

 

Потеря связи не было, перерисовка на тиках, и чем больше ТФ тем реже.

А в методе расчета от начальной даты ло конечной (узнал что их 3) без

определения кол-ва баров, наверное такое и возникает (пересчитывает

все бары) но это пока размышления - будем проверять...

Может другой подход есть чтоб от этого изавиться...

 
alexluek:

Потеря связи не было, перерисовка на тиках, и чем больше ТФ тем реже.

А в методе расчета от начальной даты ло конечной (узнал что их 3) без

определения кол-ва баров, наверное такое и возникает (пересчитывает

все бары) но это пока размышления - будем проверять...

Может другой подход есть чтоб от этого изавиться...

Конечно, подход есть. Если if(prev_calculated==0), то проводим первоначальный расчёт для всех баров. Впоследствии, для каждого нового тика (если 0 < prev_calculated < rates_total) делаем расчёты типа for(int i=prev_calculated-1;i<rates_total;i++) только для последних появившихся баров.
 
Yedelkin:
Конечно, подход есть. Если if(prev_calculated==0), то проводим первоначальный расчёт для всех баров. Впоследствии, для каждого нового тика (если 0 < prev_calculated < rates_total) делаем расчёты типа for(int i=prev_calculated-1;i<rates_total;i++) только для последних появившихся баров.
Дельная мысля опробуем - ответим! Спасибки!
 

Хочу получить значение тайм-фрейма текущего графика в виде string. Пишу так:

ENUM_TIMEFRAMES period1=Period();
string periodStr;
periodStr=PeriodStr(period1);

А мне компилятор говорит, что 'PeriodStr' - function is not defined...

В чём собственно дело? Коллеги, будьте любезны, помогите :-)

Ведь в хэлпе есть такая функиця:

PeriodStr

Преобразует в строку значение перечисления ENUM_TIMEFRAMES.

string  PeriodStr(
   int  val      // значение
   )

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
 

Уважаемые разработчики, ответьте в чём неоднозначность вызова перегруженной функции(именно на это ругается компилятор):

'set' - ambiguous call to overloaded function

class CA
  {
public:
   void set(int i,int j,long n){Print("перегрузка long");};
   void set(int i,int j,int n){Print("перегрузка int");};
  };

void OnStart()
  {
//---
   CA a;
   int Int=3;
   long Long=4;
   a.set(1,2,Int);
   a.set(1,2,Long);
  }

ЗЫ опытным путём выяснил что если заменить постоянные в первом и втором параметре на переменные типа int то ругань прекращается.

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

Так почему же компилятор ругается, в чём неоднозначность вызова?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 
denkir:

Хочу получить значение тайм-фрейма текущего графика в виде string. Пишу так:

А мне компилятор говорит, что 'PeriodStr' - function is not defined...

В чём собственно дело? Коллеги, будьте любезны, помогите :-)

Ведь в хэлпе есть такая функиця:

PeriodStr

Преобразует в строку значение перечисления ENUM_TIMEFRAMES.

string  PeriodStr(
   int  val      // значение
   )

Странно, я поиском такой функции - PeriodStr - в справочнике не нашёл
 
denkir:

Хочу получить значение тайм-фрейма текущего графика в виде string. Пишу так:

А мне компилятор говорит, что 'PeriodStr' - function is not defined...

В чём собственно дело? Коллеги, будьте любезны, помогите :-)

Ведь в хэлпе есть такая функиця:

PeriodStr

Преобразует в строку значение перечисления ENUM_TIMEFRAMES.

string  PeriodStr(
   int  val      // значение
   )

Это метод Класса

https://www.mql5.com/ru/docs/standardlibrary/technicalindicators/cindicator

#include <Indicators\Indicator.mqh>

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