Страница 1 из 1

StochRSI - индикатор-гибрид RSI и SO

Добавлено: 18 май 2016, 17:24
evge
StochRSI является осциллятором, который измеряет уровень RSI (Индекс относительной силы) относительно его диапазона за установленный период времени. Индикатор берет за основу RSI и применяет к нему формулу для Stochastics (Стохастический осциллятор).

Параметры

PeriodRSI - период индикатора RSI
nK, nD, nS - параметры индикатора SO (Stochastic Oscillator)

Авторы

Тушард Чейнд и Стэнли Кролл

Автор (исходный код АД4)

AlfaDirect 2016. OX

Пример

StochRSI-01.png
StochRSI-01.png (49.14 КБ) 9300 просмотров

StochRSI-01.png
StochRSI-01.png (49.14 КБ) 9300 просмотров


Код: Выделить всё

function Initialize()
{
IndicatorName = "StochRSI";
AddInput("Input", Inputs.Candle);
PriceStudy = false;   
AddParameter("PeriodRSI", 20, 1);
AddParameter("nK", 20, 1);
AddParameter("nD", 10, 1);
AddParameter("nS", 10, 1);

AddSeries("sK", DrawAs.Line, Color.Gray, false);   
AddSeries("sD", DrawAs.Line, Color.Blue);   
AddSeries("Signal", DrawAs.Line, Color.Gray);   

AddLevel(20, Color.Gray, "Signal");
AddLevel(80, Color.Gray, "Signal");
}

function Evaluate()
{
// AlfaDirect 2016. OX
// RSI
var s = RSI(Input.Close, PeriodRSI);
// SO
var i = 0;
var eMax = 0.0;
var eMin = 100000000.0;

if (CurrentIndex < (nK + nD + nS))
{
sK = 0.0;
sD = 0.0;
Signal = 0.0;
}
else
{
for (i=0; i < nK; i++)
{
if (s[-i] > eMax)
eMax = s[-i];
if (s[-i] < eMin)
eMin = s[-i];
}
var a = (eMax - eMin);
if (a > 0.0)
sK = (s[0] - eMin) / (eMax - eMin) * 100.0;
else
sK = 100.0;
sD = sD[-1] - (sK[-nD] - sK[0])/nD;
Signal = Signal[-1] - (sD[-nS] - sD[0])/nS;
}

}


Скачать исходный текст

StochRSI.zip
(935 байт) 1113 скачиваний