Пропадает индикатор MT5 при синхронизации данных - страница 2

 
левые значения в double массивах - больная тема

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

2. желательно делать индикатор как можно более чувствительным к изменениям, т.е. ставить кол-во знаков после запятой, INDICATOR_DIGITS = 8, причина - если индикатор меняется от 0.000001 до 0.000005, то поставив INDICATOR_DIGITS = 5, не будет видим, так как значения будут отсекаться

3. желательно отрисовывать только ту часть индикатора, которая уже заполнена данными, PLOT_DRAW_BEGIN и скрывать буферы, которые не используются PLOT_DRAW_TYPE = DRAW_NONE

4. при авто-сдвиге на сл. свечу надо чем-то заполнять только что появившееся место вменяемым значением, иначе может появиться миллиардный мусор, пока идет синхронизация
int OnCalculate(const int bars, const int counted, const int start, const double &price[])
{
  if (iPosition == 0)  // First call
  {
    ZeroMemory(Buffer1);
    return bars;
  }
  
  if (bars != counted)  // Every shift
  {
    Buffer1[0] = 0;
  }

  return bars;
}
особенно критично для индикатор, где время погрузки данных значительно, например, мультивалюта
это уже хардкод, но иногда может прояснить проблему установка границ индикатора - макс верх и низ
 
...:
левые значения в double массивах - больная тема

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

2. желательно делать индикатор как можно более чувствительным к изменениям, т.е. ставить кол-во знаков после запятой, INDICATOR_DIGITS = 8, причина - если индикатор меняется от 0.000001 до 0.000005, то поставив INDICATOR_DIGITS = 5, не будет видим, так как значения будут отсекаться

3. желательно отрисовывать только ту часть индикатора, которая уже заполнена данными, PLOT_DRAW_BEGIN и скрывать буферы, которые не используются PLOT_DRAW_TYPE = DRAW_NONE

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

Спасибо! Очень ценная инфа! У меня как раз при авто сдвиге на новый бар в 0 индекс буфера падал мусор, ваше пояснение решило проблему. Индикатор стрелочник.

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