Сигнальная линия строится как простое среднее от основной линии стохастика.
Signal = SMA(SO, N3).
N1 – период поиска максимального и минимального значения, N2 – период сглаживания быстрого стохастика, N3 – период сигнальной линии
Сигналы
- Шорт – индикатор пересекает вниз уровень «80»; лонг – индикатор пересекает вверх уровень «20».
- SO пересекает сигнальную линию вверх или вниз.
- Анализ дивергенций между экстремумами индикатора MFI и ценой.
Автор: Джордж Лэйн (George Lane).
Источник: Стивен Б. Акелис, Технический анализ от А до Я.
Пример:
Исходный текст:
Код: Выделить всё
function Initialize()
{
IndicatorName = "SO";
AddInput("Input", Inputs.Candle);
PriceStudy = false;
AddSeries("sK", DrawAs.Line, Color.White, false);
AddSeries("sD", DrawAs.Line, Color.Green);
AddSeries("Signal", DrawAs.Line, Color.Gray);
AddParameter("nK", 5);
AddParameter("nD", 3);
AddParameter("nSignal", 3);
AddLevel(20.0 , Color.Gray, "sD");
AddLevel(80.0 , Color.Gray, "sD");
}
function Evaluate()
{
// AlfaDirect. 2015. OX
// SO - Совпадает со встроенным SO AlfaDirect
var i = 0;
var eMax = 0.0;
var eMin = 100000000.0;
if (CurrentIndex < (nK + nD + nSignal))
{
sK = 0.0;
sD = 0.0;
Signal = 0.0;
}
else
{
for (i=0; i < nK; i++)
{
if (Input.High[-i] > eMax)
eMax = Input.High[-i];
if (Input.Low[-i] < eMin)
eMin = Input.Low[-i];
}
var a = (eMax - eMin);
if (a > 0.0)
sK = (Input.Close[0] - eMin) / (eMax - eMin) * 100.0;
else
sK = 100.0;
sD = sD[-1] - (sK[-nD] - sK[0])/nD;
Signal = Signal[-1] - (sD[-nSignal] - sD[0])/nSignal;
}
}
Индикатор является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла.