Помогите написать индикатор для грааля, пишу простую вещь. Все должно работать, не могу понять что не так в коде.
Нужно просто умножить Volume[i]*(Close[i]-Close[i-1]) и положить в первый буфер Buffer1[i]
Затем взять ImaOnArray.
Что не так? Подскажите пожалуйста.
Потому, что бар i-1 существует только на истории. А если сделать Volume[i+1]*(Close[i+1]-Close[i]) будет запаздывание.
Потому, что бар i-1 существует только на истории. А если сделать Volume[i+1]*(Close[i+1]-Close[i]) будет запаздывание
нет, проблема не в этом
В коде написано
for(int i=limit-1; i>=0; i--) { Buffer1[i]=volume[i]*(close[i]-close[i+1]); } for(int i=limit-1; i>=0; i--) { Buffer2[i]=iMAOnArray(Buffer1,0,period1,0,MODE_EMA,i); }
но!
Buffer1[] - тип double
а значение volume[] - тип long
Данные просто не выводятся в буфер.
Так ли это? Вы можете посмотреть файл в приложении?
нет, проблема не в этом
В коде написано
но!
Buffer1[] - тип double
а значение volume[] - тип long
Данные просто не выводятся в буфер.
Так ли это? Вы можете посмотреть файл в приложении?
Зачем мне его смотреть? Мне достаточно того что я вижу здесь. Увидел проблему, дальше смотреть не интересно пока не исправите.
Вторая подсказка
Buffer1[i]=double(volume[i]*(close[i]-close[i+1]));должно сработать.
Всё-таки я посмотрел код.
Почему-то выбивает на volume[i]
Неоднократно встречал темы о проблеме значений i-того бара, даже если бар существует, но результатов этих обсуждений не знаю.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите написать индикатор для грааля, пишу простую вещь. Все должно работать, не могу понять что не так в коде.
Нужно просто умножить Volume[i]*(Close[i]-Close[i-1]) и положить в первый буфер Buffer1[i]
Затем взять ImaOnArray.
Что не так? Подскажите пожалуйста.