1. Почему Вы не возьмёте за основу пользовательский индикатор RSI.mq4 - он в точности повторяет встроенный RSI? В представленном Вами варианте я вижу накопление положительных и отрицательных сумм, но не вижу сглаживания.
2. Чему равно значение rsi2 в случае, когда neg==0?
2. Чему равно значение rsi2 в случае, когда neg==0?
Ну если используется сглаживание, то Бог с ним. Когда neg==0, RSI2[i]=0.0; - кажется...
Спасибо за ответы.
Спасибо за ответы.
Учтите, что в книжках индикаторы описываются поверхностно и там пропущены многие тонкости.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У Вас в расчете индикатора RSI, возможно допущены неточности.
Вот я привожу код в котором RSI считается и по стандартной функции из комплекта МТ4 и по обычной методике со всеми циклами.
В результатах порядочное различие.
//***************************************** #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 DodgerBlue #property indicator_color2 Red #property indicator_level1 70 #property indicator_level2 30 #property indicator_width1 2 #property indicator_width2 2 //================================== extern int hrRSI=36; //------------------------ double RSI[],RSI2[]; double dcn,pos,neg,rsi2; int p; //************************************* int init() { SetIndexBuffer(0,RSI); SetIndexBuffer(1,RSI2); return(0); } //************************************************************** int start() { int cbi,IC=Bars-IndicatorCounted()-1; if (IC<2) cbi=IC; else { p=hrRSI*60/Period(); cbi=Bars-p-1; } //--------------------------------------------------- for(int i=cbi; i>=0; i--) { RSI[i]=iRSI(NULL,0,p,0,i); pos=0.0; neg=0.0; for (int n=i; n<i+p; n++) { dcn=Close[n]-Close[n+1]; if (dcn>0) pos+=dcn; if (dcn<0) neg-=dcn; } if (neg!=0) rsi2=100.0-100.0/(1+pos/neg); RSI2[i]=rsi2; } //--------------------------------------------------- return(0); } //************************************************************