Links

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

Введение

В данной статье представлены примеры реализации алгоритмов и индикаторов с помощью визуального редактора скриптов TSLab.
Для того чтобы запустить пример, Вам необходимо:
  1. 1.
    Скачать пример скрипта на Ваш компьютер.
  2. 2.
    Запустить программу TSLab.
  3. 3.
    Выбрать пункт меню Лаб - Скрипты
  4. 4.
    В открывшемся окне Скрипты
  5. 5.
    В правой части окна Скрипты нажать на кнопку Загрузить из файла. Перейти в директорию со скачанным скриптом. Выбрать необходимый скрипт и нажать на кнопку Открыть.
  6. 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, показывающий волатильность рынка.
Полезные ссылки