График RSI в TSlab и QUIK

Автор: VladCh

График RSI в TSlab и QUIK - Wed Feb 14 2018 02:18 PM

Всем привет!

Ранее на форуме видел тему в которой обсуждалось, что в TSLab и в QUIK различаются значения RSI на одних и тех же данных.

Я хотел бы разобраться с этим.

Для чего это мне нужно - у меня есть робот на LUA под QUIK и есть его аналог на TSLab для тестирования и оптимизации переменных параметров.

Так вот, по итогам проведенной оптимизации и запуска робота с оптимизированными параметрами через QUIK, я обнаружил, что QUIK и TSLab по разному считают значение RSI, причем достаточно существенно.

Пример ниже (период - 60):



На картинке выше, видно, что кривые RSI в целом выгядят похоже, но в TSLab отклонение значения RSI больше чем в QUIK, причем существенно. В QUIK коридор от 38 до 63, а в TSLab - от 33 до 69.

Если картинку плохо видно, то вот прямая ссылка: http://pixs.ru/showimage/RSIQUIKvsT_8010196_29368886.jpg

Мой вопрос заключается в следующем, как в TSLab вопроизвести логику расчета RSI по формуле из QUIK:
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)
.

Возможно уже кто-то данную логику вопроизводил и может поделиться результатом.

P.S. Также пробовал использовать в TSLab RSI Катлера, однако расхождение с QUIK все равно остается.

Спасибо.
Автор: Alex11

Re: График RSI в TSlab и QUIK - Wed Feb 14 2018 05:36 PM

Вот здесь ,некоторое объяснение этой разницы
http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=79584#Post79584
Автор: ViL

Re: График RSI в TSlab и QUIK - Wed Feb 14 2018 07:49 PM

А вот здесь полное объяснение как считается и пример, как посчитать по другому:
https://blog.tslab.ru/pages/viewpage.action?pageId=7012425
Автор: VladCh

Re: График RSI в TSlab и QUIK - Thu Feb 15 2018 01:16 AM

Спасибо за ваши ответы.

Я понял, что QUIK для RSI по умолчанию использует ни SMA или EMA, a MMA.

Код MMA:

"--[[Modified Moving Average (MMA)
MMA = (MMAi-1*(n-1) + Pi) / n]]
function F_MMA()
local sum = {}
local tmp = {pp=nil, p=nil}
local it = {p=0, l=0}
return function(I, P, VT, ds)
if I == 1 then
sum = {}
tmp = {pp=nil, p=nil}
it = {p=0, l=0}
end
if CandleExist(I,ds) then
if I~=it.p then
it = {p=I, l=it.l+1}
tmp.pp = tmp.p
end
local Ip,Ipp,Ippp = Squeeze(it.l,P),Squeeze(it.l-1,P),Squeeze(it.l-P,P)
if it.l <= P + 1 then
sum[Ip] = (sum[Ipp] or 0) + GetValueEX(it.p,VT,ds)
if (it.l == P) or (it.l == P + 1) then
tmp.p = (sum[Ip] - (sum[Ippp] or 0)) / P
end
else
tmp.p = (tmp.pp*(P-1) + GetValueEX(it.p,VT,ds)) / P
end
if it.l >= P then
return tmp.p
end
end
return nil
end
end"

Честно говоря в первый раз столкнулся с MMA.

Уточните, пожалуйста, в TSLab есть индикатор MMA (Modified Moving Average)? Например, в сборнике пользовательских индикаторов.

Для того, чтобы изменить метод сглаживания RSI в QUIK на текущий момент я скачал с форума квика
(https://forum.quik.ru/forum17/topic1157/) индикаторы на LUA, которые позволяют выбирать метод сглаживания.

Получется, что TSLab по умолчанию использует EMA для сглаживания U и D при расчете RSI.
Автор: VladCh

Re: График RSI в TSlab и QUIK - Thu Feb 15 2018 03:20 PM

Получил ответ от службы поддержки QUIK - RSI сглаживается на основании SMA.
Пример расчета и сравнение с данными из QUIK во вложении.

Сейчас будут сверять данные с TSLab.
Автор: VladCh

Re: График RSI в TSlab и QUIK - Tue Feb 20 2018 11:50 PM

Получилось воспроизвести в TSLab аналогичные значения RSI QUIK используя в качестве метода сглаживания U и D блок "Wilder's MA".