Общие вопросы

Примеры реализации индикаторов в TSLab

Введение

В данной статье представлены примеры реализации алгоритмов и индикаторов с помощью визуального редактора скриптов TSLab.

Для того чтобы запустить пример, Вам необходимо:

  1. Скачать пример скрипта на Ваш компьютер.

  2. Запустить программу TSLab.

  3. Выбрать пункт меню Лаб - Скрипты

  4. В открывшемся окне Скрипты

  5. В правой части окна Скрипты нажать на кнопку Загрузить из файла. Перейти в директорию со скачанным скриптом. Выбрать необходимый скрипт и нажать на кнопку Открыть.

  6. В списке доступных скриптов выбрать загруженный скрипт и дважды кликнуть на нем мышкой.

Примеры реализации индикаторов в TSLab

Примеры использования редактора блочного программирования, для создания индикаторов

Экспоненциальное скользящее среднее (EMA)

Экспоненциальное скользящее среднее (англ.EMA) — разновидность взвешенной скользящей средней, веса которой убывают экспоненциально и никогда не равны нулю.

При необходимости, пользователь может использовать вместо блока Константа блок Формула или другой индикатор для расчета Периода индикатора. Таким образом это пример создания индикаторов с управляемым периодом.

Скачать пример скрипта

Использованные блоки

Формула для расчёта EMA в примере: А | Блок "Формула"

(2/(period+1))

ema | Блок "Формула"

A * close + (1-A) * ema[i-1]

Параметры

  • close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент.

  • i - последний закрытый бар

  • ema - возвращает результат расчёта из блока Формула

  • period - возвращает значение блока Константа

Полезные ссылки

Индикатор Моментум (Momentum)

Индикатор Моментум вычисляется как разность между ценой закрытия бара и ценой n периодов назад. Моментум численно равен прибыли, которая могла быть получена при вложении в единицу данного инструмента за рассматриваемый период.

Скачать пример

Использованные блоки

Формула для расчёта индикатора Моментум в примере:

Momentum | Блок "Формула"

close - close[i-period]

Параметры

  • close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент.

  • i - последний закрытый бар

  • period - возвращает значение блока Константа

Полезные ссылки

Скорость изменения (RoC) - Нормированная

Нормированный RoC численно равен доходности от вложений в единицу данного инструмента за рассматриваемый период.

Скачать пример

Использованные блоки

Формула для расчёта индикатора Нормированный RoC в примере:

RoCnorm | Блок "Формула"

100*((close - close[i-period]) / close[i-period]

Параметры

  • close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент.

  • i - последний закрытый бар

  • period - возвращает значение блока Константа

Полезные ссылки

Скорость изменения (RoC) - Обычная

Скорость изменения показывает процентное изменение цены от одного периода к другому и рассчитывается, как сравнение текущей цены с ценой прошлого периода, отстоящего от текущего на n периодов.

RoC численно равен росту стоимости инструмента за рассматриваемый период.

Скачать пример

Использованные блоки

Формула для расчёта индикатора Обычный ROC в примере:

RoCnorm | Блок "Формула"

((close / close[i-period])*100)-100

Параметры

  • close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент.

  • i - последний закрытый бар

  • period - возвращает значение блока Константа

Полезные ссылки

Индекс товарного канала (CCI)

Индекс товарного канала рассчитывается, как приведённое отношение текущего отклонения типичной цены от её простого скользящего среднего к среднему абсолютному отклонению этой величины

Пример скрипта CCI содержит в себе два примера:

Скачать пример

Использованные блоки

  • Блок Формула

  • Блок Константа

  • Блок Сумма за

  • Блок Минимум

  • Блок Максимум

  • Блок Закрытие

  • Блок Один ко многим связанные параметры

Формула для расчёта индикатора Индекс товарного канала в примере:

CCI | Блок "Формула"

(1/0.015)*((TypicalPrice-SMA)/MAD)

TypicalPrice | Блок "Формула"

(Close+Low+High)/3

MAD | Блок "Формула"

SumIn(Math.Abs(TypicalPrice - SMA))/N

Параметры

  • High - Максимальная цена бара.

  • Low - Минимальная цена бара.

  • Close - Цена закрытия.

  • SumIn - Рассчитывается путем сложения входящих значений.

  • Math.Abs - Метод Math.abs() возвращает абсолютное значение числа.

Полезные ссылки

Преобразованный Индекс товарного канала (CCI_custom)

Индекс товарного канала рассчитывается, как приведённое отношение текущего отклонения типичной цены от её простого скользящего среднего к среднему абсолютному отклонению этой величины

Отличие от стандартного индикатора: вместо Typical Price используется EMA, а при расчете MAD встроенный в программу TSLab индикатор AMA.

Скачать пример

Использованные блоки

  • Блок Формула

  • Блок Константа

  • Блок Сумма за

  • Блок Индикатор AMA

  • Блок Индикатор EMA

  • Блок Закрытие

  • Блок Один ко многимсвязанные параметры

Формула для расчёта индикатора Индекс товарного канала в примере:

Formula | Блок "Формула"

Math.Abs(TypicalPrice - AMA)

CCI_ | Блок "Формула"

(1/0.015)*((TypicalPrice-AMA)/(MAD+0.000000000000001))

Параметры

  • TypicalPrice - Индикатор EMA.

  • AMA - Индикатор AMA.

  • MAD - Индикатор AMA.

  • Math.Abs - Метод Math.abs() возвращает абсолютное значение числа.

Полезные ссылки

Индекс относительной силы (RSI) - Модифицированный

В приведенном индикаторе есть пример выбора типа скользящего средней для расчета RSI. EMA, SMA или AMA. Выбор осуществляется с помощью Константы.

Применен оператор If Then Else

Скачать пример

Использованные блоки

  • Блок Формула

  • Блок Константа

  • Блок Связанный параметр

  • Блок EMA

  • Блок SMA

  • Блок AMA

Формула для расчёта индикатора Индекс относительной силы в примере:

U | Блок "Формула"

Close>Close[i-1] ? Close-Close[i-1] : 0

D | Блок Формула

Close[i-1]>Close ? Close[i-1]-Close : 0

RS | Блок Формула

СhoiceMovAver==2 ? amaU/(amaD+ 0.00000000000000000000000001) :
СhoiceMovAver==1 ? smaU/(smaD+ 0.00000000000000000000000001) :
Period/(emaD+ 0.00000000000000000000000001)

RSI | Блок Формула

100-(100/(1+RS))

Параметры

  • Close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент;

  • i - последний закрытый бар;

  • СhoiceMovAver - возвращает значение константы;

  • Period - Индикатор EMA.

  • smaU / smaD - Индикатор SMA.

  • amaU / amaD - Индикатор AMA.

  • emaD - Индикатор EMA.

Полезные ссылки

Индекс относительной силы (RSI)

Для расчета относительной силы выбираются все свечи выбранного промежутка времени, которые показали закрытие выше, чем предшествующая свеча (U) и определяется среднее значение прироста с помощью EMA.

Аналогичная операция производится для свечей, показавших закрытие ниже предшествующей (D). Отношение этих двух величин дает значение относительной силы (RS).

Скачать пример

Использованные блоки

  • Блок Формула

  • Блок Константа

  • Блок Связанный параметр

  • Блок EMA

Формула для расчёта индикатора Индекс относительной силы в примере:

U | Блок "Формула"

Close>Close[i-1] ? Close-Close[i-1] : 0

D | Блок "Формула"

Close[i-1]>Close ? Close[i-1]-Close : 0

RS | Блок "Формула"

emaU/emaD

RSI | Блок "Формула"

100-(100/(1+RS))

Параметры

  • Close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент;

  • i - последний закрытый бар;

  • emaU / emaD - Индикатор EMA.

Полезные ссылки

Индикатор Ишимоку (Ichimoku)

Индикатор Ишимоку — технический индикатор, разработанный в 1930-х годах японским аналитиком Гоичи Хосода, печатавшимся под псевдонимом Санджин Ишимоку, для прогнозирования движения фондового индекса Японии Nikkei. Индикатор Ишимоку сочетает в себе несколько подходов к анализу рынка и предназначен для выявления трендов, линий поддержки и сопротивления и генерации сигналов к покупке/продаже.

Скачать пример

Использованные блоки

  • Блок Формула

  • Блок Константа

  • Блок Связанный параметр

  • Блок Минимум за

  • Блок Максимум за

  • Блок Контрольная панель

Формула для расчёта индикатора Ишимоку в примере:

Tenkan | Блок "Формула"

(maxfast+minfast)/2

SenkouA | Блок Формула

(Tenkan+Kijun)/2

Kijun | Блок Формула

(maxmed+minmed)/2

SenkouB | Блок Формула

(maxslow+minslow)/2

ChikouT | Блок Формула

close[i-ChikT]

Buy | Блок Формула

Tenkan > Kijun && !KumoFlat

Sell | Блок Формула

Tenkan < Kijun && !KumoFlat

KumoFlat | Блок Формула

SenkouB > SenkouA && close<SenkouB && close>SenkouA || SenkouB < SenkouA && close>SenkouB && close<SenkouA

Параметры

  • Close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент;

  • i - последний закрытый бар;

  • Tenkan — короткая линия тренда, значения которой равны половине суммы самой высокой и низкой цены за короткий промежуток времени;

  • Kijun — среднее между максимум и минимум за средний промежуток времени;

  • Chikou — сдвинутое назад на средний промежуток времени значение цены;

  • Senkou A — среднее между Tenkan и Kijun, сдвинутое вперёд на средний временной промежуток;

  • Senkou B — среднее между максимумом и минимум за длинный промежуток времени, сдвинутое вперёд на средний промежуток времени;

  • Kumo — промежуток между Senkou A и Senkou B, показывающий волатильность рынка.

Полезные ссылки