Artyom Kuraev:
Всем привет.
Столкнулся с такой особенностью индикатора. При установке на график он отрисовывает линии поддержки и сопротивления. Но я решил сменить таймфрейм без переустановки и получил непонятную картинку - значения буферов старого таймфрейма перерисовались на новый без пересчета. В результате получилась вот такая лажа. Как решить эту проблему?
Если бы prev_calculated была бы объявлена на глобальном уровне программы, то можно было бы ее обнулить и все бы само пересчиталось, но ведь в OnInit она вне области видимости... Рисовать какие-то конструкции с флагами как-то пока кажется единственным выходом...
Сделайте так:
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { if(prev_calculated==0) { // значит нужно принудительно обнулить все индикаторные буферы // таким образом не останется старых хвостов }
Vladimir Karputov:
Сделайте так:
Спасибо! Помогло!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем привет.
Столкнулся с такой особенностью индикатора. При установке на график он отрисовывает линии поддержки и сопротивления. Но я решил сменить таймфрейм без переустановки и получил непонятную картинку - значения буферов старого таймфрейма перерисовались на новый без пересчета. В результате получилась вот такая лажа. Как решить эту проблему?
Если бы prev_calculated была бы объявлена на глобальном уровне программы, то можно было бы ее обнулить и все бы само пересчиталось, но ведь в OnInit она вне области видимости... Рисовать какие-то конструкции с флагами как-то пока кажется единственным выходом...