У вас не стоит Flash Player
Настройки
#5791 - Wed May 19 2010 06:16 AM RSI на API
Frend Offline
Pooh-Bah

Registered: Sat Jan 09 2010
Записи: 2054
Можно ли получить код?
_________________________
Помогу с реализацией вашей идеи, оценкой системы. Консультации
frendwork@rambler.ru

Наверх
#5792 - Wed May 19 2010 10:14 AM Re: RSI на API [Re: Frend]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
Code:
        public static IList<double> RSI(IList<double> candles, int period)
        {
            var res = new double[candles.Count];
            if (candles.Count > 0)
            {
                var u = new double[candles.Count];
                var d = new double[candles.Count];
                u[0] = 0;
                d[0] = 0;
                for (int i = 1; i < candles.Count; i++)
                {
                    double tu = 0, td = 0;
                    if (candles[i - 1] < candles[i])
                    {
                        tu = candles[i] - candles[i - 1];
                    }
                    else if (candles[i - 1] > candles[i])
                    {
                        td = candles[i - 1] - candles[i];
                    }
                    u[i] = tu;
                    d[i] = td;
                }
                var eu = EMA(u, period);
                var ed = EMA(d, period);
                for (int i = 0; i < candles.Count; i++)
                {
                    if(ed[i] == 0.0)
                    {
                        res[i] = 100;
                    }
                    else if (eu[i] / ed[i] == 1.0)
                    {
                        res[i] = 0;
                    }
                    else
                    {
                        res[i] = 100 - 100 / (1 + eu[i] / ed[i]);
                    }
                }
            }
            return res;
        }


Наверх
#5795 - Wed May 19 2010 12:34 PM Re: RSI на API [Re: Nektodron]
Frend Offline
Pooh-Bah

Registered: Sat Jan 09 2010
Записи: 2054
спасибо
_________________________
Помогу с реализацией вашей идеи, оценкой системы. Консультации
frendwork@rambler.ru

Наверх
#6030 - Thu May 27 2010 08:41 AM Re: RSI на API [Re: Nektodron]
Frend Offline
Pooh-Bah

Registered: Sat Jan 09 2010
Записи: 2054
Originally Posted By: Nektodron
Code:
        public static IList<double> RSI(IList<double> candles, int period)
        {
            var res = new double[candles.Count];
            if (candles.Count > 0)
            {
                var u = new double[candles.Count];
                var d = new double[candles.Count];
                u[0] = 0;
                d[0] = 0;
                for (int i = 1; i < candles.Count; i++)
                {
                    double tu = 0, td = 0;
                    if (candles[i - 1] < candles[i])
                    {
                        tu = candles[i] - candles[i - 1];
                    }
                    else if (candles[i - 1] > candles[i])
                    {
                        td = candles[i - 1] - candles[i];
                    }
                    u[i] = tu;
                    d[i] = td;
                }
                var eu = EMA(u, period);
                var ed = EMA(d, period);
                for (int i = 0; i < candles.Count; i++)
                {
                    if(ed[i] == 0.0)
                    {
                        res[i] = 100;
                    }
                    else if (eu[i] / ed[i] == 1.0)
                    {
                        res[i] = 0;
                    }
                    else
                    {
                        res[i] = 100 - 100 / (1 + eu[i] / ed[i]);
                    }
                }
            }
            return res;
        }



А соответствует ли это это такой формуле?
RSI = 100 / (1 + D(P,N) / U(P,N)),

где

U(P,N) - скользящее среднее роста цены P за N периодов,
D(P,N) - скользящее среднее падения цены P за N периодов.
Параметры настройки:
«Кол-во периодов» - количество периодов N для расчета скользящих средних,
«Поле цены» - используемое для P значение цены интервала (Open, High, Low, Close, Median, Typical).
_________________________
Помогу с реализацией вашей идеи, оценкой системы. Консультации
frendwork@rambler.ru

Наверх
#6033 - Thu May 27 2010 10:54 AM Re: RSI на API [Re: Frend]
Nektodron Offline

Carpal Tunnel

Registered: Thu Oct 23 2008
Записи: 5492
а разве нет?

Наверх
#31465 - Fri Sep 23 2011 10:40 PM Re: RSI на API [Re: Nektodron]
skon Offline
stranger

Registered: Fri Sep 23 2011
Записи: 6
Здравствуйте,
проводили ли сверку результатов расчетов RSI с другими системами?

У меня похоже различаются значения с Метастоком. возможно из-за строчек
var eu = EMA(u, period);
var ed = EMA(d, period);

Предполагаю, что в Метастоке считают так (логика расчета):
eu = (пред.значение eu * (period -1) + u) / period

это соответствует описанию Элдера в "Trading for a living".
и использует не экспоненциальное сглаживание, а сглаживание Уайлдера.

ссылка на пример RSI с сайта метастока:
http://www.equis.com/customer/resources/formulas/formula.aspx?Id=51

Наверх
#31488 - Mon Sep 26 2011 11:20 AM Re: RSI на API [Re: skon]
Denis Offline
member

Registered: Tue Jul 21 2009
Записи: 152
В TSLab есть две имплементации этого индикатора

http://www.tslab.ru/docs/online/quickguide.htm

RSI(int Период) и Cutler's RSI(int Период)

Взгляните на описания пожалуйста

Наверх


Moderator:  ViL, sar