Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Версия 4.00, билд 402
Пробуем вычислить EMA в индикаторе по формуле:
result[shift+1] + (source[shift] - result[shift+1])*2.0/(1+period)
для всех shift от Bars-IndicatorCounted()-1 до 0
и занести результат в буфер ema:
double ema[];
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ema);
Видим график, идем в начало графика - висим...
Все дело в том, что для
shift = Bars-IndicatorCounted()-1
result[shift+1] = EMPTY_VALUE (т.е. видимо 0x7FFFFFFF)
тогда result[shift+1] + что-то = огроменное число.
Если график выводить на экран (DRAW_LINE), то метатрейдер умирает. Если не выводить (DRAW_NONE), то в значениях выводятся огромные числа, но метатрейдер НЕ умирает (так и должно быть).
Что-то изменили в последних билдах метатрейдера, что он умирает при отрисовке графика по гигантским числам. Кто-нить знает, как с этим бороться? (Пришлось править все старые индикаторы - вставлять проверку на EMPTY_VALUE).
ЗЫ: SetIndexEmptyValue(0,0.0); не помогает