Как сделать опережение double rsi=iRSI(NULL,0,i_dev_period,PRICE_CLOSE,shift); что бы shift работал?
вставил input int shift = 10; редактор матерится....declaration of shift hides global variable
в чем причина?
вставил input int shift = 10; редактор матерится....declaration of shift hides global variable
в чем причина?
У iRSI - НЕТ shift
Вам надо - скорее всего, так записать
double rsi=iRSI(NULL,0,i_dev_period,PRICE_CLOSE);
https://www.mql5.com/ru/docs/indicators/irsi

- www.mql5.com
Как это нет???
всё может быть!
а тут нет
int iRSI( string symbol, // имя символа ENUM_TIMEFRAMES period, // период int ma_period, // период усреднения ENUM_APPLIED_PRICE applied_price // тип цены или handle );
Как это нет???
кодобазе нашёл этот код, и там, да! есть
https://www.mql5.com/ru/code/14977

- www.mql5.com
кодобазе нашёл этот код, и там, да! есть
https://www.mql5.com/ru/code/14977
Прописал вот так SetIndexShift(0,shift); заработало!
Теперь понятно. Вам надо было не этот shift
void ProcessBar(int barIndex,int total) { double curHigh=0.0,curLow=0.0; double bullPower=0.0,bearPower=0.0; for(int i=0; i<i_dev_period; i++) { int shift=i+barIndex; double rsi=iRSI(NULL,0,i_dev_period,PRICE_CLOSE,shift);
а другой наверное. Тот который вписан в коде не переменной...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования