Введение

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

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

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

Simple Indicators Example

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

Экспоненциальное скользящее среднее (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) - Модифицированный - Подробнее

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

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

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

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

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

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

Simple Scripts Example 

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

Manual Trading with automatic stop-loss

Пример применения логических констант.
Вход в позиции осуществляется кнопками на контрольной панели.
Выход из позиций блоками трейлинг и стоп-лосс или по кнопкам drop
Рекомендуемый пересчет для скрипта Пересчеты по событиям или пересчет Сделка.

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

2MA_customStop

Пример применения индикатора EMA

Вход в позицию Long при пересечении снизу вверх EMA с коротким периодом расчета(ema2) и EMA с длинным периодом расчета(ema1).

Выставляется стоп-лосс на закрытие позиции. Cтоп-лосс рассчитывается с применением Блока Обновляемое значение по формуле

entry*(1+(Profit-stopValue)/100)

Где

  • Profit - MFE% максимальное отклонение цены от цены входа в лучшую сторону.
  • stopValue - Константа
  • entry - Цена входа

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

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

ADX

Пример применения индикатора ADX

Вход в позицию Long, если DI+ больше DI- и значение ADX на последнем закрытом баре больше, чем значение ADX на предыдущем баре. adx[i-1] < adx[i]

Закрытие позиции, если DI+ меньше DI- и adx[i-1] > adx[i]

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

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

Alligator

Cтратегия Аллигатор, с применением Smoothed Moving Average (SMMA)

— «Челюсти Аллигатора».(Jaw) Первая скользящая средняя с самым длинным периодом;

— «Зубы Аллигатора»,(teeth) Вторая скользящая средняя с периодом меньше, чем Jaw;

— «Губы Аллигатора»(lips) — самая быстрая с периодом, меньше, чем teeth.

Вход в позицию Long, когда Медианная цена (mp) > lips & lips > teeth & teeth > jaw
Вход в позицию Short, когда mp < lips & lips < teeth & teeth < jaw

Выход из позиций осуществляется по TrailStop.

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

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

Hi_lo

Пример применения индикаторов "Максимум За период" и "Минимум За период".

Система построена на пробой уровней максимальных и минимальных цен за период времени.

При пробитии текущей ценой вверх верхней линии канала Максимум За , вход в позицию Long.

При пробитии текущей ценой вниз нижней границы канала, вход в позицию Short.

Выход из позиций также осуществляется по каналу Дончиан, с другими периодами.

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

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

Hi_Lo_pre-set intervals

Пример Hi_Lo с применением блока Сжать.

Данный пример решает проблему выбора таймфрейма(интервала баров).

В источнике интервал 1 минута. В сжатии может быть любой интервал больше и кратный минуте.

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

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

MACD

Пример построен на индикаторе MACD, с применением фильтрации сигналов входа в позицию.

Вход в позицию Long , если Macd больше Константы фильтра или меньше -Константа, при пересечении сигнальной линией индикатора MACD

Выход из позиции при обратном пересечении.

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

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

Momentum

Применение индикатора CMO

Chande Momentum Oscillator (CMO) — модификация индикатора Momentum.
Вход в позицию Long, при пересечении CMO нуля снизу вверх.
Вход в позицию Short, при пересечении CMO нуля сверху вниз.
Для выхода из позиций применен трейлинг стоп.
Предполагает наличие двух разнонаправленных позиций.

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

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

Spot+Fut

Пример построения "Premium" графика. Один инструмент минус второй инструмент.

Данный подход применяется для арбитражных стратегий. В данном случае пространственный арбитраж.

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

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

StochK

Пример применения индикатора StochK

В программе TSLab все индикаторы считаются "Как в книге", Стохастик не исключение. Т.е. не применяются какие либо сглаживания цены, перед расчетом индикатора.

В примере применено сглаживание SMA индикатора Stoch.

Для входа в позицию используются константы.

Вход в позицию long при пересечении SMA нижней константы снизу вверх.

Закрытие позиции при пересечении SMA верхней константы сверху вниз.

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

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

Strategies

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

ADX

Стратегия основана на индикаторе ADX

  • Для длинных позиций:

    • Купить, если +DI > -DI и ADX растёт.

    • Выйти из позиции, если +DI < -DI или ADX падает.

  • Для коротких позиций:

    • Войти в короткую позицию, если +DI < -DI и ADX растёт.

    • Закрыть короткую позицию, если +DI > -DI или ADX падает.

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

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

Aroon

Стартегия основана на индикаторе Aroon

Если AroonUp больше AroonDown - входим в позицию Long и закрываем позицию Short;
Если AroonUp ниже AroonDown - входим в позицию Short и закрываем позицию Long;
А если AroonUp и AroonDown приблизительно равны - это период консолидации.

Фильтр консолидации для входа в позицию построен на разнице двух индикаторов, в качестве уровня фильтрации используется Константа

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

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

CCI_100

Стратегия основана на индикаторе CCI

Покупаем, когда CCI поднимается выше 100.
Продаем, когда CCI опускается ниже 100.

Продаем (коротко), когда CCI опустится ниже -100.
Закрываем короткую позицию, когда CCI поднимется выше -100.

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

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

CCI_Zero

Стратегия основана на индикаторе CCI
Покупать (открывать длинную, закрывать короткую позицию), когда Индекс товарного канала поднимается выше нуля.

Продавать (закрывать длинную, открывать короткую позицию), когда CCI опустится ниже нуля.

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

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

CCIwiki_And_CCIcustom_simle

Сравнение индикаторов/

Встроенный в программу TSLab CCI

Индикатор CCI из wiki

Модифицированный индикатор CCI

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

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

Strategy without parameters

Если цена прошла много, вероятно рынок трендовый. Т.е. если бар большой и цена двигалась наверх, то покупаем, если бар маленький, то выходим из позиции.

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

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

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

RSI_

Стратегия основана на индикаторе RSI, если индикатор высоко, то продаем, если индикатор низко - покупаем.

С коротким профитом. И стоплоссом, цена которого расчитывается трейлстопом в относительных значениях.

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

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

RSI_counter trend

Продаем и закрываем лонг, если индикатор высоко.

И покупаем и закрываем шорт, если индикатор низко.

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

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

RSI_calc

Иллюстрирует работу блока Сжать и дневные диапазоны индикатора.

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

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

StDev_channel_5min_optim

Стратегия построена на стандартном отклонении.

Верхняя граница канала 3*Стандартных отклонения

Нижняя граница канала -3*Стандартных отклонения от SMA

Для входа в позицию Short выставляется лимитная заявка на уровень верхней границы канала.

Для входа в позицию Short выставляется лимитная заявка на уровень нижней границы канала.

Выход из позиций лимитными заявками на средней SMA.

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

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

Donchiano_with_stop

Стратегия торговли, с применением индикаторов "Максимум За период" и "Минимум За период".

Система построена на пробой уровней максимальных и минимальных цен за период.

При пробитии текущей ценой вверх верхней линии канала Максимум За , вход в позицию Long.

При пробитии текущей ценой вниз нижней границы канала, вход в позицию Short.

Выход из позиции осуществляется по индикатору AMA Запрещено одновременное существование противоположных позиций.

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

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

Ludoman

Стратегия управления позицией. С ограничением набора макимального количества лотов.

Пример применения блоков формул и индикатора EMA. Пример применения блоков "Изменить По"

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

  • No labels