Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1233

Добавлено: evge » 26 окт 2017, 15:44

Тема: TSI (True Strength Index) - индекс истинной силы

Текст сообщения:

Индикатор TSI (True Strength Index) - это дважды сглаженный Моментум. График в этом случае получается более плавным, поскольку резкие и незначительные изменения не учитываются.

Для построения необходим Momentum с периодом 1 и Momentum по модулю с периодом 1. т.е. разность между Close текущего и Close предыдущего бара и она же по модулю.

Формула

TSI = 100 * EMA(EMA(Momentum, First_R), Second_S) / EMA(EMA(|Momentum|, First_R), Second_S)

Параметры

First_R – период первого сглаживания EMA;
Second_S – интервал второго усреднения EMA.

Код индикатора можно собрать в 1 строку если бы был индикатор Momentum по модулю.
Поэтому для упрощения создано 2 индикатора. Недостающий Momentum по модулю и собственно сам индикатор TSI, основной код которого уместился в 1 строку.

Пример

TSI.zip
(39.46 КБ) 988 скачиваний


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

function Initialize()
{
IndicatorName = "MomentumR";
AddInput("Input", Inputs.Price);
AddParameter("Period", 20, 1);
PriceStudy = false;
AddSeries("Momentum", DrawAs.Line, Color.Coral);
AddLevel(0, Color.Gray, "Momentum");
}

function Evaluate()
{

// evge 26.10.2017 http://alfadirect4.ru

if (CurrentIndex <= Period)
   Momentum = 0.0;
else
   Momentum = Math.Abs(Input[0] - Input[Period]);
}


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

function Initialize()
{
IndicatorName = "TSI";
PriceStudy = false;
AddInput("I", Inputs.Candle);
AddSeries("TSI", DrawAs.Line, Color.Red);
AddParameter("First_R", 20);
AddParameter("Second_S", 30);
}

function Evaluate()
{

// evge 26.10.2017 http://alfadirect4.ru

TSI[0] = 100 * EMA(EMA(MOMENTUM(I.Close, 1), First_R), Second_S)[0] / EMA(EMA(MY.MomentumR(I.Close, 1), First_R), Second_S);
}


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

TSI-01.png
TSI-01.png (40.71 КБ) 11063 просмотра