Скачать MetaTrader 5

MATLAB rsi и MQL4 rsi дают разные результаты на одних и тех же данных

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть вопросы по сервису MQL5 Cloud Network? FAQ поможет!
ivan
505
ivan 2010.03.21 18:31 
В MATLAB есть rsindex вычисляющий RSI. Сравниваю с mql4 - разные результаты на одних и тех же данных. А именно, данные из терминала были выгружены в файл, по ним MATLAB построил rsi. В mql4 результат был вычислен посредством iRSI на том же самом графике, разумеется с тем же периодом (14) и по тем же ценам (ценам закрытия). Результаты сильно отличаются. Подобный тест был повторен много раз на разных интервалах данных.   

Прилагаю иллюстрирующую вычисления картинку. Верхний график: цены из терминала, отрисованные MATLABом (картинка полностью идентична окну терминала, включая линии Боллингера). Нижний - RSI. 

Для тех, кто захочет проверить, приведенный пример соответствует EURUSD, M1, 2010.1.18 6:30-10:30
ivan
505
ivan 2010.03.21 18:36  
techno
1226
techno 2010.03.21 18:42  

ну и что, что отличается? Да тут причин может множество быть, начиная от разных используемых формул вычисления до разных точностей вычисления. Одно не понятно, как все это поможет торговать, или эта "другая" линия чуть отличающаяся от стандартной сразу граальные результаты будет показывать?

Петр
6084
Петр 2010.03.21 18:55  
А вы попробуйте посчитать, например, стохастик с замедлением (Slowing)
1. Как сумма (сумма цен закрытия - сумма минимумов) / (сумма макс. - сумма мин.) // кол-во эклемнтов в сумме = Slowing
и
2. Как простую МА с периодом Slowing от сырого стохастика (цена - мин)/(мах-мин).

С т.зр. математики это - абсолютно одномайственно. Но результат будет ощутимо различаться. Видимо, из-за различий в точности.
И это в одной и той же проге.
А вы про Матлаб...)))
===
1-й алгоритм - стандартный в МТ, но не оптимальный. Простую МА можно оптимальней посчитать.
Vladimir Gomonov
8277
Vladimir Gomonov 2010.03.21 19:40  
Svinozavr >>:
С т.зр. математики это - абсолютно одномайственно. Но результат будет ощутимо различаться. Видимо, из-за различий в точности.
А вот и неправда. См. код стохастика. Внимательно смотри. И думай, думай, думай!
:)
Петр
6084
Петр 2010.03.21 19:50  
MetaDriver >>:
А вот и неправда. См. код стохастика. Внимательно смотри. И думай, думай, думай!
:)

Аж закоченел от внимательности и вспотел от размышлений.

Если тебе есть что сказать, говори. Что ты как эти, которые стейты шлют, темнишь.)))

Vladimir Gomonov
8277
Vladimir Gomonov 2010.03.21 21:05  
(x[1]+x[2]+ ... +x[n]) / (y[1]+y[2]+ ... +y[n]) != x[1]/y[1] + x[2]/y[2] + ..x[n]/y[n]
.......................slowing(n)......................... != ............MA(n)............................
// [MT5path]/MQL5/Indicators/Examples/Stochastic.mq5 . Lines 105..113 
      double sumlow=0.0;
      double sumhigh=0.0;
      for(k=(i-InpSlowing+1);k<=i;k++)
        {
         sumlow +=(Close[k]-ExtLowesBuffer[k]);   // x[1..InpSlowing]
         sumhigh+=(ExtHighesBuffer[k]-ExtLowesBuffer[k]);   // y[1..InpSlowing]   
        }
      if(sumhigh==0.0) ExtMainBuffer[i]=100.0;
      else             ExtMainBuffer[i]=sumlow/sumhigh*100;   // sum(x)/sum(y)*100
Петр
6084
Петр 2010.03.21 21:36  
MetaDriver >>:
(x[1]+x[2]+ ... +x[n]) / (y[1]+y[2]+ ... +y[n]) != x[1]/y[1] + x[2]/y[2] + ..x[n]/y[n]
.......................slowing(n)......................... != ............MA(n)............................

Угу. Согласен. Понял уже. Пример я неудачный привел - не додумал! )))

===

А чего ты мне алгоритм стохастика выложил? Я ж его в посте привел (1).

ivan
505
ivan 2010.03.21 21:39  

Господа гуру, будьте столь любезны, пишите друг другу письма в личку. За комментарии непосредственно по теме моего поста по-прежнему признателен. Я по-прежнему ищу (и не нахожу) ошибку у себя, т.к. поверить, что такой простой индикатор вычисляется по-разному (а если так, то один из алгоритмов просто неправилен, никак иначе) - сложно. И в MATLAB, и в MQL4 подсчет идет с данными типа double, данные я экспортировал с соблюдением типа double, так что непонятно, о какой потере точности может идти речь.

С уважением,
qomment 

Vladimir Gomonov
8277
Vladimir Gomonov 2010.03.21 21:40  
Svinozavr >>:

Угу. Согласен. Понял уже. Пример я неудачный привел - не додумал! )))

===

А чего ты мне алгоритм стохастика выложил? Я ж его в посте привел (1).

Та ты ж мени так пуганул, шо я без документов спужался соватца. :)

Vladimir Gomonov
8277
Vladimir Gomonov 2010.03.21 21:43  
qomment >>:

Господа гуру, будьте столь любезны, пишите друг другу письма в личку. За комментарии непосредственно по теме моего поста по-прежнему признателен. Я по-прежнему ищу (и не нахожу) ошибку у себя, т.е. поверить, что такой простой индикатор вычисляется по-разному (а если так, то один из алгоритмов просто неправилен, никак иначе) - сложно. И в MATLAB, и в MQL4 подсчет идет с данными типа double, данные я экспортировал с соблюдением типа double, так что непонятно, о какой потере точности может идти речь.

С уважением,
qomment


Ок. Сорить больше не буду. Однако несерьёзный у вас топик по моему. Сами понимаете что считает по разным алгоритмам (или сомневаетесь?). Ну так и сравните их досконально. И всё сразу обнаружится.

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий