Учитывайте, что IndicatorRelease() не работает в тестере.
Чтобы правильно рассчитать рси с периодом 14 нужно баров 300.
Такой вариант: писать свой рси, параметр передавать через глобальную переменную, чтобы не загружалась куча индикаторов. Чтобы из-за пересчета не тормозило, ограничить количество обсчитываемых баров. Только надо поэкспериментировать, исходя из максимального периода, сколько потребуется баров.
Вообще РСИ считается вот так:
Формула RSI следующая:RSI = 100 - [100/1 + RS],
где RS - среднее значение положительных изменений цены закрытия за определенное число дней, деленное на среднее значение отрицательных изменений цены закрытия за то же число дней.
Т.е. 300 баров обсчитывать не надо. Но такой расчет не совпадает со значением индикатора.
Вообще РСИ считается вот так:
Формула RSI следующая:RSI = 100 - [100/1 + RS],
где RS - среднее значение положительных изменений цены закрытия за определенное число дней, деленное на среднее значение отрицательных изменений цены закрытия за то же число дней.
Т.е. 300 баров обсчитывать не надо. Но такой расчет не совпадает со значением индикатора.
Гы гы гы... расскажите лучше про формулу скользящей средней.
Можете и не обсчитывать 300 баров, тогда не удивляйтесь, почему значение не совпадает.
Самый простой вариант - взять исходник рси из примеров, ограничить количество обсчитываемых баров (еще сделать, чтобы всегда на все бары пересчет был) и сделать параметры из глобальной переменной.
Гы гы гы... расскажите лучше про формулу скользящей средней.
Можете и не обсчитывать 300 баров, тогда не удивляйтесь, почему значение не совпадает.
Обана и вот это да! Это когда и с чего вдруг RSI стал рассчитываться с использованием просто го сглаживания? Он всегда рассчитывался с использованием экспоненциального сглаживания Уйлдера (период 14 соответствует периоду EMA 27).
Точно, не обратил внимания. Тогда история нужна.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Для MQL4.
Появилась идея сделать совтеника на RSI с динамически изменяемым периодом.
вызвал индикатор
double x = iRSI (_Symbol,0,din_pereriod,PRICE_CLOSE,0);
При оптимизации получил сообщение. что не хватает памяти.
2015.03.26 06:32:25.393 Not enough memory for indicator Relative Strength Index (EURGBP,M1)
2015.03.26 06:32:25.393 Memory handler: cannot allocate 3641080 bytes of memory
Ну решил расчитать RSI прямо в советнике. А он выдает результаты отличные от стандартного РСИ. Расчет брался для периода 14.
Помогите правильно расчиать РСИ !