RSIt = 100 – 100/(1+RSt), RSt = Post / Negt,
Где
Post = Post-1 (N-1) / N + Upt / N – среднее положительных изменений цены Upt за N периодов.
Negt = Negt-1 (N-1) / N + Dnt / N – среднее отрицательных изменений цены Dnt за N периодов.
Таким образом, данный индикатор показывает направленность движения за выбранный период. При боковых движениях RSI будет находиться около 50%. При направленном движении цены индикатор будет стремиться в зоны «перекупленности» (уровень выше 70%) или «перепроданности» (уровень ниже 30%).
Типовые параметры
Типовыми параметрами индикатора RSI являются N = 7 или 14 на дневном тайм-фрейме.
UpperLevel = 70 – верхний уровень, BottomLevel = 30 – нижний уровень.
Понимая формулу RSI можно оценить, что означают типовые параметры индикатора на дневном тайм-фрейме. В случаях, когда по инструменту происходит 7 дней роста, то с высокой вероятностью индикатор RSI будет находиться в зоне «перекупленности» (т.е. выше 70%). Таким образом, период следует выбирать исходя из статистически достоверной длины трендов.
Параметры данного индикатора не могут быть пересчитаны (т.е. перемасштабированы) с одного тайм-фрейма на другой.
Сигналы
- Пересечение индикатора с уровнем 50 соответствует трендовым сигналам для определения направления движения.
- При выходе индикатора в зону выше 70 считается, что рынок «перекуплен», т.е. он уже прошел стандартную величину направленного движения, и можно ожидать замедления тренда. Начало коррекционного движения определяется как пересечение индикатором сверху вниз уровня 70. При падении ниже уровня 30 все наоборот.
- Анализ дивергенций между экстремумами индикатора и цены на крупных тайм-фремах.
Для работы с RSI применяется не только стандартный осцилляторный набор сигналов, но и графический анализ с линиями поддержки и сопротивления.
Автор: Уэллс Уайлдер (Welles Wilder).
Первоисточник: Welles Wilder. New Concepts in Technical Trading Systems. 1978.
Пример:
Исходный текст:
Код: Выделить всё
function Initialize()
{
IndicatorName = "RSI";
PriceStudy = false;
AddInput("Input", Inputs.Price);
AddParameter("Period", 14, 2);
AddSeries("RSI", DrawAs.Line, Color.LightBlue);
AddSeries("PosBuffer", DrawAs.Line, Color.Red, false);
AddSeries("NegBuffer", DrawAs.Line, Color.Red, false);
AddLevel(30, Color.Gray, "RSI");
AddLevel(70, Color.Gray, "RSI");
}
function Evaluate()
{
// AlfaDirect. 2014.
// RSI (Relative Strength Index) - индекс относительной силы
// Автор - Уэллс Уайлдер (Welles Wilder).
if (CurrentIndex < 1)
{
RSI = 0.0;
PosBuffer = 0.0;
NegBuffer = 0.0;
}
else
{
var sump = 0.0;
var sumn = 0.0;
var rel = Input[0]-Input[-1];
if (rel > 0)
sump = rel;
else
sumn =-rel;
var positive = (PosBuffer[-1]*(Period - 1.0) + sump)/Period;
var negative = (NegBuffer[-1]*(Period - 1.0) + sumn)/Period;
PosBuffer = positive;
NegBuffer = negative;
if (negative == 0.0)
RSI = 0.0;
else
RSI = 100.0 - 100.0 / (1.0 + positive/negative);
}
}
Индикатор является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла.