Обзор кода индикатора Stochastic

Рассмотрим код индикатора Stochastic, являющийся осцилятором. В отличие от рассмотренных выше индикаторов, он располагается не на ценовом графике, а в отдельном окне под графиком. Полный код индикатора:

list_range[id] = [0, 100]; Для того, чтобы вычисленные данные отрисовывались в новом окне, необходимо ввести массив list_range и элементу с индексом текущего индикатора id присвоить значение массива с минимальным и максимальным возможными значениями индикатора. В случае с индикатором Stochastic это будет [0, 100]. Ввод этого массива является условием для отрисовки индикатора в новом окне.

var max_high = high[i]; var min_low = low[i]; Вводим переменные для нахождения максимальной цены high и минимальной цены low. Присвоиваем соотвествующие цены текущего бара.

for (var j = i + 1; j < i + period; j++) {...} Для баров, начиная со следующего бара (i + 1) до бара с индексом i + period находим max_high и min_low.

buff_curves[id][i] = 100 * ((close[i] - min_low) / (max_high - min_low)); По формуле находим значения индикатора для соответсвующего бара.

Вид индикатора на графике:

Доработка кода 1: добавление средней линии

Доработаем код индикатора добавлением скользящей средней линии. Сравните код с первоначальным. Обратите внимание на добавление новых параметров, введение новых массивов для, а также на цикл для подсчёта средней линии.

Вид доработанного индикатора на графике:

Доработка кода 2: добавление уровней перепроданности и перекупленности

Добавим отрисовку двух горизонтальных линий. Задача решается добавлением новых параметров: значения уровней и их цвет. Также вводятся дополнительные массивы. Далее в последнем цикле добавляются 2 строчки:
buff_curves[id3][i] = level1;
buff_curves[id4][i] = level2;

На протяжении всего цикла значения кривых с индексами id3 и id4 имеют неизменные значения, что приводит к отрисовки прямых горизонтальных линий с установленными значениями.

Вид доработанного индикатора на графике:

Эта информация была полезной?

29 people found this page helpful so far!