Введение

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

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

  1. Скачать пример скрипта на Ваш компьютер.
  2. Запустить программу TSLab.
  3. Выбрать пункт меню Лаб - Скрипты
  4. В открывшемся окне Скрипты
  5. В правой части окна Скрипты нажать на кнопку Загрузить из файла. Перейти в директорию со скачанным скриптом. Выбрать необходимый скрипт и нажать на кнопку Открыть.
  6. В списке доступных скриптов выбрать загруженный скрипт и дважды кликнуть на нем мышкой.

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

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

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

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

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

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

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

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

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

А | Блок "Формула"
(2/(period+1)) 
ema | Блок "Формула"
A * close + (1-A) * ema[i-1]

Параметры

  • close - возвращает значение закрытия бара в скрипте. Блок Торгуемый инструмент. 
  • i - последний закрытый бар
  • ema -возвращает результат расчётета из блока Формула
  • period - возвращает значение блока Константа

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

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

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

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

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

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

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

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

Momentum | Блок "Формула"
close - close[i-period]

Параметры

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

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

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

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

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

Cкорость изменения (RoC) - Нормированная - Подробнее

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

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

RoCnorm | Блок "Формула"
100*((close - close[i-period])/ close[i-period]

Параметры

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

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

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

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

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

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

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

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

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

RoCnorm | Блок "Формула"
((close / close[i-period])*100)-100

Параметры

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

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

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

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

Пример скрипта 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.

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

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

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

  • Блок Формула
  • Блок Константа
  • Блок Сумма за
  • Блок Индикатор 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

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

RSI_calc.tscript


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

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

  • Блок Формула
  • Блок Константа
  • Блок Связанный параметр
  • Блок 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)

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

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

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

  • Блок Формула
  • Блок Константа
  • Блок Связанный параметр
  • Блок 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. Индикатор Ишимоку сочетает в себе несколько подходов к анализу рынка и предназначен для выявления трендов, линий поддержки и сопротивления и генерации сигналов к покупке/продаже.

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

Индикатор Ишимоку (Ichimoku) - Подробнее

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

  • Блок Формула
  • Блок Константа
  • Блок Связанный параметр
  • Блок Минимум за
  • Блок Максимум за
  • Блок Контрольная панель

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

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, показывающий волатильность рынка.

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

Индикатора с позицией внутри

Редактор Самодельных индикаторов не позволяет сделать Самодельный индикатор без выхода из позиции, но можно сделать Индикатор со входом в позицию и выходом. Данный пример иллюстрирует данную особенность.

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

  • No labels