Расчет РСИ

165

Местный знаток
Помогите разобраться с функцией iRSIOnArray. По идеи это тоже самое, что и iRSI

вообщем делаю массив aPriceArray[x] куда заношу цены закрытия
далее делаю расчет по iRSIOnArray и iRSI и значения получаются разными. ПОЧЕМУ???
 

Вложения

  • I_Rsi.mq4
    2,2 КБ · Просмотры: 22

puzan

Заблокирован
Помогите разобраться с функцией iRSIOnArray. По идеи это тоже самое, что и iRSI

вообщем делаю массив aPriceArray[x] куда заношу цены закрытия
далее делаю расчет по iRSIOnArray и iRSI и значения получаются разными. ПОЧЕМУ???

_http://docs.mql4.com/ru/array/arraysetasseries

В том смысле, а остальные массивы?
 
Последнее редактирование модератором:

165

Местный знаток
http://docs.mql4.com/ru/array/arraysetasseries
И что?
данную функцию использовал в индикаторе. Когда использую, то получаю хоть похожие результаты (получается значение РСИ расходятся на единицу-двойку. Но главное, что расходятся). Если данную функцию не использую, то получается вообще большое расхождение.
 

puzan

Заблокирован
И что?
данную функцию использовал в индикаторе. Когда использую, то получаю хоть похожие результаты (получается значение РСИ расходятся на единицу-двойку. Но главное, что расходятся). Если данную функцию не использую, то получается вообще большое расхождение.

Переверни все массивы, а не только тот, который CLose заполняешь
 

165

Местный знаток
Переверни все массивы, а не только тот, который CLose заполняешь

А в каком месте переворачивать? до присвоения значений или после?

Подожди причем здесь другие массивы. если я получаю всего одно значение???
 
Последнее редактирование:

puzan

Заблокирован
А в каком месте переворачивать? до присвоения значений или после?

Подожди причем здесь другие массивы. если я получаю всего одно значение???

Оказалось намного проще
Данных для рассчета не хватает
Код:
if (d_timeopen0 != Time[0]){
      d_timeopen0 = Time[0];
      double aPriceArray[300], aRSI[30],aRSI2[30];
      int x;
  
      ArraySetAsSeries( aPriceArray, true );
        
      for( x = 0; x < 300; x++ )
         aPriceArray[x] = iClose(NULL, 0, x );

      for( x = 0; x < 10; x++ ) {
         aRSI[x] = iRSIOnArray( aPriceArray, 0, 14, x ); // Calculate using array
         aRSI2[x] = iRSI( NULL, 0, 14, PRICE_CLOSE, x ); // Calculate using chart data
         Print( "bar: ", x ,", RSI: " + aRSI[x] + ", RSI2 " + aRSI2[x] );
      }   
   }
 
  • Like
Реакции: 165
Верх