В этом разделе я буду выкладывать совершенно бесплатно скрипты, дополнительные кубики, торговые роботы для терминала TSLab. 

Поэтому, уважаемые трейдеры, скачиваем, тестируем, наслаждаемся торговлей!



 

Роботы, скрипты, кубики и стратегий для TSLab

 


Скачать кубик для TSLab Индикатор: PMA
PMA-скользящая
PMA (Prosvirin Moving Average) — Индикатор скользящей средней, построенной на основе линии линейной регрессии. На примере PMA рядом с SMA и EMA. Периоды построения у всех одинаковые.
Изначально была идея такая- взять ряд данных (цена Close) на каком-то участке, построить по этим данным линию линейной регрессии. ЛЛР строим следующим образом. По оси Y будут цены Close, по оси X будут порядковые номера баров. Угловой коэффициент (A) и коэффициент смещения (В) простой линейной регрессии y=A*x+B можно найти с помощью метода наименьших квадратов.
Далее была идея — посмотреть в конце участка, как цена Close отклоняется от ЛЛР. Для этого надо построить ЛЛР и найти координату Y(цена) по координате X(N бара).
Построил одну точку-> надо построить остальные. Сказано, сделано. Для каждой цены Close(ось Y) рассчитываем коэффициенты простой линейной регрессии за определенный период и смотрим, какое значение ЛЛР (ось Y) будет на последнем баре(ось X) рассматриваемого участка. Все значения собираем в список. В результате получилась скользящая средняя, рассчитанная на основе линии линейной регрессии.
Файлы необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: IsReadyForTrade
ПримерИспользования-IsReadyForTrade
Кубик предназначен для контроля готовности инструмента к реальным торгам. В режиме лаборатории всегда выдает True. Контролирует ряд параметров, которые при необходимости можно отключать.
У кубика имеются следующие настройки:
— IsRealTime. Контролирует находится ли агент скрипт в режиме агента.
— IsPortfolioReady. Контролирует подготовлены ли данные по инструменту, то есть получены ли все позиции от брокера и отображены в окне «Позиции».
— IsConnected. Контролирует подключен ли коннектор счета, по которому торгуется инструмент на входе в кубик.
— IsDataReady. Контролирует подгружены ли все необходимые данные по торгуемому инструменту.
— AreCandlesExists. Контролирует имеются ли свечи по данному инструменту. Фактически причиной отсутствия свечей может быть как отсутствие их загрузки от брокера, так и неверные настройки скрипта (ограничено на ноль баров, «дата от» больше «дата к» и т.д., то есть фактически проверяется, чтобы кол-во баров в агенте было больше нуля.
— IsLastBarDateTimeCorrect. Контролирует, что принятое с сервера время не более, чем на 1 используемый тайм-фрейм расходится с временем последнего закрытого бара.
Писать данные в лог-файл. При установленной опции все контролируемые параметры будут записаны в лог на каждом пересчете, что позволяет отследить работу кубика в динамике. По умолчанию отключено. Лог пишется в файл по адресу: C:\Users\UserName\AppData\Local\TSLab\TSLab 2.0\DataStorage\Logs\.
Файлы необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: CheckTradeSettings
Подключение_кубика
При запуске агента кубик проверяет соответствие настроек агента настройкам кубика и если данные расходятся, то по каждому параметру выводится сообщение в лог о неверной настройке. На выходе кубика в случае если настройки правильные true, если настройки неверные, то есть настройки агента не соответствуют настройкам кубика, на выходе false. Данный сигнал можно использовать в качестве одного из условий запрета на торговлю.
ВНИМАНИЕ!!! кубик работает только в режиме агента, то есть в режиме лаборатории сигнал всегда True, но если вывести сигнал на график и открыть данный скрипт в составе агента, то условие будет либо False (если есть хотя бы одна ошибка настройки), либо True (если все настройки агента совпадают с установленными в кубике).

Кубик сделан, чтобы снять с себя «груз внимательности», зачастую одна неверная «галочка» в торговых настройках может привести к неверному исполнению входов/выходов, особенно когда вопрос касается ситуаций, когда цена коснулась условной заявки и ушла в другую сторону, когда при фактическом выставлении условной заявки в рынок цена уже стала хуже рынка и так далее. Т.к. в ТСЛаб приличное количество настроек, не говоря уже об их возможных комбинациях, то имхо данный кубик будет полезен в торговле. Таким образом, подключаем кубик от инструмента и заводим сигнал на входы в позицию, чтобы при неверных настройках не было торговли.

Дополнительно в кубик добавлена опция «Установить все настройки агента автоматически», как следует из названия, при включенной опции настройки агента будут установлены автоматически в соответствии с тем, что указано в настройках кубика. Это исключает необходимость делать настройки вручную. В данный момент не реализована автоустановка событий.

Добавлен контроль настройки агента «Экспирация новых заявок, дней». Данная опция устанавливает срок действия условных заявок, выставленных в торговую систему брокера, то есть ведущихся не на стороне ТСЛаб. Опция полезна, к примеру, при отсутствии коннекта к брокера по каким-либо причинам. В этом случае можно быть уверенным, что позиция защищена от неблагоприятных последствий неисполнения логики. Примечание: надо понимать, что в некоторых режимах даже наличие ордера в торговой системе брокера не гарантирует его исполнения, например, при значительных движения рынка стоп может не отработать если цена уйдет намного ниже, чем цена активации минус проскальзывание.
Файлы необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: BarDate
BarDate
Понадобилось узнавать дату бара, задача была такая — узнавать после изменения позиции дату бара, на котором изменилась позиция. Кубик «Номер бара входа в измененную позицию» в ТСЛаб имеется, а вот «дата входа в измененную позицию» что-то не нашел. Чтобы можно было применять и в других случаях по-быстрому написал кубик. Возможно будет полезным не только мне. Кубик выдает дату конкретного бара формате ТСЛаб. На вход подаем инструмент и номер бара. Работает как с потоковыми кубиками, так и не с потоковыми кубиками. В случае если номера бара меньше нуля, больше номера последнего или текущего бара (в случае если номер подается с непотокового кубика), то кубик выдает ноль. В случае если дата бара раньше чем 01.01.2021 00:00:00, то выдает ноль.
Файлы необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: AddSubtractTime
AddSubtractTime
В ТСЛаб с учетом особого представления формата времени порой очень трудно производить операции с датой и временем, в связи с чем по мотивам кубика «AddSubtractDate» был написан настоящий кубик. Кубик принимает на вход время формата ТСЛаб и число минут, которые надо вычесть или прибавить от/к указанного времени. Если на вход в качестве времени поступает число имеющее дробную часть, число больше 235959, отрицательное число, то кубик вернет значение «ноль». В качестве минут можно подавать как положительные, так и отрицательные числа. Дробная часть значения минут откидывается и в расчете используется только целая часть, например, если подать 22.47 минут, то в расчете будет использовано 22 минуты. Формат кубика для версии 2.2
Кубик имеет следующие входы:
Дата — время, над которым будет производиться операция сложения или вычитания
Дни — количество минут, которые надо прибавить или вычесть из времени
Кубик имеет следующие настройки:
Тип операции. Определяет необходимое действие с временем
Файлы необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: TradesDistribution-ServiceLib
Блок-TradesDistribution
Кубик строит гистограмму распределения доходности сделок исходя из дохода по каждой сделке в процентах. По оси «х» отложены доходности сделок, по оси «Y» — частота повторения доходности соответствующей величины (диапазона величины).
Параметры
• ID — По умолчанию устанавливается единица. В случае если необходимо вывести несколько распределений с разных инструментов, то будет конфликт названий объектов. К сожалению, в ТСЛаб нет метода контекста, чтобы получить коллекцию открытых дополнительных окон и автоматически добавить другой ID, поэтому придется контролировать данный процесс вручную посредством текущей настройки.
• HistogramBars — Данная опция задает количество баров гистограммы (столбиков), по умолчанию стоит 100. Однако в некоторых случаях потребуется «поиграться» данным значением для корректного отображения данных, например, если хочется большей дискретизации значений по группам (большего кол-ва баров). Максимальное кол-во баров в методе построения гистограммы равно 200, то есть если даже указать бОльшее значение, то в любом случае выведется только 200 баров.
• HistogramBarsColor — Цвет баров гистограммы на случай использования темной темы, по умолчанию гисрограмма строится черным цветом, но если включена черная тема, то данных построения не будет видно. Данная настройка позволяет менять цвет построения, например, на желтый.
Входы
• Фин. инструмент.
Файлы gaaCommon_ServiceLib.dll и gaaGraphs_TradesDistribution.dll необходимо поместить в папку Handlers.
Файл TradesDistribution.cs — открытый код на C#, доступен для редактирования.


Скачать кубик для TSLab Блок: TradesLoger
Блок-TradesLoger
Данный блок Записывает данные о сделках в файл. Один и тот же файл может использоваться для записи сделок нескольких агентов.
ВАЖНО, использование в сигналах входа/выхода, имени агента и т.д. символа | может привести к не верной записи данных.
Работает только в режиме агента, записывает данные о сделках закрытых на последнем баре.
Записываются следующие данные: «Имя агента; Tag1; Tag2; Направление; Инструмент; Максимальный размер позиции; Сигнал входа; Дата входа; Время входа; Цена входа; Сигнал выхода; Дата выхода; Время выхода; Цена выхода; Комиссия; Прибыль(пункты); Прибыль(ден.); Прибыль %; Счет;»
Параметры
FilePath — Путь к файлу. Вместо \ необходимо писать \\
TradeAgentName — Trade agent name
Tag1 — Дополнительный столбец для группирования агентов для удобства фильтрации сделок. Например ‘трендовые’ и ‘контртрендовые’
Tag2 — Дополнительный столбец для группирования агентов для удобства фильтрации сделок. Например ‘трендовые’ и ‘контртрендовые’
Входы
• Фин. инструмент.
Файл TradesLoger.dll необходимо поместить в папку Handlers.
Файл TradesLoger.cs — открытый код на C#, доступен для редактирования.


Скачать кубик для TSLab «InterRecalcMemorizer»
InterRecalcMemorizer
Периодически в процессе сборки скриптов возникает необходимость сохранять и восстанавливать данные из кеша. В ТСЛаб имеется штатный функционал «Загрузить из локального кеша», «Сохранить в локальный кеш», однако, он требует, чтобы данные кубики были разнесены по разным скриптам. Чтобы использовать данный функционал в рамках одного скрипта были написаны 2 кубика: InterRecalcBoolMemorizer, InterRecalcDoubleMemorizer, соответственно, первый запоминает между пересчетами логическое значение, второй — число типа double.

Кубик InterRecalcBoolMemorizer представляет «запоминатель» сигналов между пересчетами. Работает в двух режимах, либо просто запоминает сигнал и переносит его на следующий пересчет, либо увеличивает значение сигнала на 1 и переносит на следующий пересчет, таким образом либо осуществляется просто запоминание, либо счет количества событий. Значение запоминается на последнем баре, то есть если на последнем баре было True, то на следующем пересчете кубик будет выдавать 1, на следующем 2 и т.д. (в режиме счетчика) будет 1. Значение, выданное на первом баре будет неизменно до окончания пересчета. Как только значение на последнем баре станет false, то на следующем пересчете кубик выдаст 0 и так далее по кругу. В случае если в кеше не содержится никакого значения, то возвращается ноль. На выходе кубик выдает тип double, то есть число, для преобразования в логическое значение необходимо использовать дополнительную формулу после кубика, например, «InterRecalcBoolMemorizer==1? true: false». Для запоминания данных кубик использует локальный кеш. В случае если данных в кеше не оказалось (то есть кеш пустой), то кубик возвращает ноль.

Кубик InterRecalcDoubleMemorizer представляет «запоминатель» значений между пересчетами. Значение запоминается на последнем баре, то есть если на последнем баре было 1000, то на следующем пересчете кубик будет выдавать 1000. Значение, выданное на первом баре будет неизменно до окончания пересчета. Как только значение на последнем баре изменится, то на следующем пересчете кубик выдаст измененное значение и так далее по кругу. В случае если в кеше не содержится никакого значения, то возвращается ноль. Для запоминания данных кубик использует локальный кеш. В случае если данных в кеше не оказалось (то есть кеш пустой), то кубик возвращает ноль.

Параметры
ID. Дополнительный идентификатор, используется если в одном скрипте задействовано более одного кубика «запоминателя», в этом случае необходимо для каждого указать свой уникальный ID. В противном случае каждый кубик будет перетирать данные другого кубика при сохранении информации в кеш (при одинаковых ID перетираться будут данные только однотипных «запоминателей», то есть данные InterRecalcDoubleMemorizer не перетираются данными InterRecalcBoolMemorizer и наоборот).
Режим счетчика. Только для кубика InterRecalcBoolMemorizer. При установке данной опции кубик будет работать в режиме счетчика, при снятой опции в режиме запоминания.
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: SystemTime
Кубик-SystemTime
Блок: SystemTime На последнем баре возвращает системное время. На остальных 0
Иногда нужно получить системное время либо в сообщение, либо для каких-то других целей, но в штатном комплекте ТСЛаб такой кубик отсутствовал. Кубик выдает время в формате ТСЛаб.
Кубики со сходным функционалом: Кубик «SystemDate», Кубик «SystemDayOfWeek»
Параметры:
Формат времени. Настройка задает формат выдаваемого времени: с секундами, без секунд. По умолчанию время выдает без секунд.
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab Блок: DateTimeConstant
ПримерИспользования-1
Кубик выдает дату или время в формате ТСЛаб. Если выбран тип выхода «Дата», то кубик выдает дату в формате ГГММДД, например, если ввести 01.02.2020 14:50, то на выходе будет 200201, при этом время не учитывается, и наоборот, если выбран тип выхода «Время» то на выходе будет только время в формате ЧЧММ00, то есть, если ввести 01.02.2020 14:50, то на выходе будет 145000.

У кубика имеются следующие настройки:
Дата. Время в формате ДД.ММ.ГГГГ чч:мм:cc. Примечание: секунды всегда «00».
Тип выхода. Тип выхода: дата/время.
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab Коэффициент корреляции Пирсона
коэффициента-корреляции-Пирсона
Кубик для коэффициента корреляции Пирсона для кривой зафиксированной прибыли. Считается довольно быстро.
Просто добавить кубик в скрипт, и он выводит в результаты оптимизации коэффициент, а также во вкладку результаты.
Блок: CorrelationCoef
Коэффициент корреляции Пирсона, умноженный на 100. Рассчитывается для кривой зафиксированной прибыли
Необходимо поместить в папку Handlers.


Скачать кубики Два Метронома с синхронизацией времени
Метраномы-для-TSLab
Метроном с выравниванием контролируемый, без входов. Можно задавать интервал пересчета, при этом он выравнивается по системному времени.

Alignmented heartbeat — Метроном 2 с синхронизацией с системным временем
Параметры
• Interval — Интервал
• Value — Округление

Controllable Heartbeat — Управляемый метроном 2
Параметры
• Interval — Интервал
Входы
• BOOL — логическое значение

Необходимо поместить в папку Handlers.


Скачать кубики Интервалов между датами (IntervalsBetweenDates)
Интервал-между-Датами-ТСЛаб-пример
Интервал-между-Датами-ТСЛаб
 
Если вам нужно вычислить количество дней / часов / минут между двумя указанными датами, то можно воспользоваться готовым кубиком Интервалов между датами (IntervalsBetweenDates). Данный кубик автоматически рассчитывает необходимое кол-во интервалов между двумя датами, для чего необходимо на вход №1 подать дату начала интервала, на вход №2 — дату окончания интервала. В кубике имеется выбор необходимо интервала для расчета: дней, часов, минут. В зависимости от настройки будет выдаваться необходимо значение.

Кубик не потоковый, что говорит о том, что кубик рассчитывается в торговом цикле и оперирует конкретными значениями, а не списками значений, однако это не мешает вывести данные значения на график и обратиться к предыдущим данным через индекс, например, [i-1] или [-1], ТСЛаб достаточно умен, чтобы обыграть этот момент автоматически созданием и заполнением списка необходимых данные, которые будут рассчитаны и добавлены в данный список на каждом баре.

Входные параметры проверяются по следующим критериям:
Дата начала и дата окончания не должны быть равны нулю
Дата начала и дата окончания не могут быть менее 10101, то есть 01.01.2001 года
Дата начала не может быть больше даты окончания
Дата начала и дата окончания не могут иметь дробные части, несмотря не то, что имеют тип Double
Длина числа не может быть менее 5-ти символов
Во всех вышеуказанных случаях кубик будет выдавать ноль.

Считает количество интервалов: Дней, Часов, Минут между датами
Параметры
• IntType — Интервал: Дней, Часов, Минут
Входы
• StartDate (меньшая дата) — число
• EndDate (бОльшая дата) — число
Тип выхода
• Число
Необходимо поместить в папку Handlers.


Скачать кубики FinamRiskData и GetTicketRiskData
кубик-данные-с-Финама
 
Сразу скажу, кубики только под брокер ФИНАМ
Чтобы сделать расчеты данных по плечу на весь портфель с учетом имеющихся у брокеров параметров риска по инструментам, нужны данные по мин.риску по торгуемым инструментам. Текущие данные имеются, например, у брокера «Финам» для клиентов со стандартным уровнем риска КСУР и с повышенным уровнем риска КПУР. У другого брокера могут быть свои данные.

Кубик «FinamRiskData» собирает данные с сайта \»Финам\» по ставке мин. риска и мин. резерва. Кубик НЕ требует подключения к инструменту, делает запрос на ресурс «Финам» один раз за пересчет. Все полученные данные автоматически записываются в глобальный кеш и файл «FinamRiskData.csv» (файл с данными располагается папке: C: \Users\UserName\AppData\Local\TSLab\TSLab 2.0\DataStorage\MarketData\). Кубик парсит только текущий формат страницы, при изменении формата страницы работоспособность кубика будет нарушена, о чем будет выведено сообщение в лог, которое при необходимости может быть настроено для отправки в телеграмм средствами платформы. В случае, если не удается загрузить информацию с сайта, то будет использована ранее полученная информация из вышеуказанного файла.

Кубик получает и сохраняет следующие данные:
* Ставка риска начальной маржи для лонга;
* Ставка риска начальной маржи для шорта;
* Ставка резерва начальной маржи для лонга;
* Ставка резерва начальной маржи для лонга.

У кубика имеются следующие настройки:
* Тип клиента по риску. Выбор одного из двух типов обозначается адрес страницы, с которой будут парситься данные (КСУР или КПУР). По умолчанию в качестве адреса используется страница для клиентов с увеличенным уровнем риска: https://www.finam.ru/documents/commissionrates/marginal/kpur.

Кубик «TicketRiskData» получает данные из глобального кеша, куда их предварительно должен транслировать кубик «FinamRiskData», то есть принимает данные по конкретному тикету (инструменту), который подается на вход кубика. В случае если в исходных данных отсутствует информация по инструменту, то кубик выдает -1. Кубик работает только в режиме агента. В режиме лаборатории на выходе всегда ноль.

У кубика имеются следующие настройки:
* Тип риск-данных (Тип необходимых риск-данных по инструменту).

Необходимо поместить в папку Handlers.


Скачать кубик Торговый интервал
Торговый-интервал-перевод-в-минуты
Блок: Торговые интервалы
При выборе соответствующего торгового интервала на выходе кубика будет его значение в минутах
Параметры
• Interval — Торговый интервал
Входы
Без входов.
Тип выхода
• Число (целое)
Необходимо поместить в папку Handlers.


Скачать кубик «IsPositionLong» и «IsPositionShort»
Узнать-лонг-или-шорт
Кубик на вход получает позицию от блока открытия позиции и показывает тип позиции. Для кубика Кубик «IsPositionLong» выдается True если позиция лонговая, False — если позиция шортовая или позиция отсутствует, для кубика «IsPositionShort», соответственно, выдается True если позиция шортовая, False — если позиция лонговая или позиция отсутствует.
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab Профит за период
Скачать-кубик-Доход-за-период-для-TSLab
Кубик отображает в отдельном окне профит за определенный период времени: год/месяц. Цель использования: ВИЗУАЛЬНОЕ определение равномерности доходности стратегии по годам/месяцам
Параметры
• PeriodTypeValue — Тип выхода: год/месяц
• CalcBaseTypeValue — Тип базы расчета: Abs/Prc. Abs — расчет в абсолютных величинах (рублях, пунктах и т.д.), Prc — расчет в процентах, при расчете в процентах кубик рассчитывает процентное приращение капитала к капиталу на начало соответствующего периода. Начальный общий капитал стратегии берется либо из настройки «Начальный депозит» скрипта, либо рассчитывается как сумма входа в первую сделку скрипта
• ShowProfitPane — Выводит/скрывает панель профита за период
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab Обновление -Профит за период
Доход-за-период
Блок: Period Profit
Кубик отображает в отдельном окне профит за определенный период времени: год/месяц. Цель использования: ВИЗУАЛЬНОЕ определение равномерности доходности стратегии по годам/месяцам
Параметры
PeriodTypeValue — Тип выхода: год/месяц
CalcBaseTypeValue — Тип базы расчета: Abs/Prc. Abs — расчет в абсолютных величинах (рублях, пунктах и т.д.), Prc — расчет в процентах, при расчете в процентах кубик рассчитывает процентное приращение капитала к капиталу на начало соответствующего периода. Начальный общий капитал стратегии берется либо из настройки «Начальный депозит» скрипта, либо рассчитывается как сумма входа в первую сделку скрипта
MaxDDDaysToOptimization — При установленной опции параметры просадки и доходности рассчитываются в процесс оптимизации и в результаты оптимизации выводится параметр MaxDD (максимальная продолжительность просадки
ShowProfitPanes — Выводит/скрывает панель профита за период
BarColor — Цвет свечей графика инструмента
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab Обновление №2 -Профит за период + Обновление от 31.03.2021г.
кубик-Статистика-для-TSLab
Блок: Period Profit
Можно вывести в результаты оптимизации и ранжировать по кривизне системы. если 100.000, то это сразу «в помойку» — это те, которые уходят в минус или болтаются около нуля
Есть один интересный момент: если медиана сначала была ниже нуля, то в большинстве случаев такие эквити будет ранжированы хуже, несмотря на то, что остальная часть эквити может быть довольно
Блок: Period Statistic
Кубик отображает различную торговую статистику
Параметры
PeriodTypeValue — Тип выхода: год/месяц
CalcBaseTypeValue — Тип базы расчета: Abs/Prc. Abs — расчет в абсолютных величинах (рублях, пунктах и т.д.), Prc — расчет в процентах, при расчете в процентах кубик рассчитывает процентное приращение капитала к капиталу на начало соответствующего периода. Начальный общий капитал стратегии берется либо из настройки «Начальный депозит» скрипта, либо рассчитывается как сумма входа в первую сделку скрипта
MaxDDDaysToOptim — При установленной опции в процессе оптимизации рассчитываются параметры просадки и доходности и выводятся в результаты оптимизации и в пользовательские параметры таблицы «результаты»
DDDurDaysToOptim — При установленной опции в процессе оптимизации рассчитываются параметры общей длительности просадкиза весь период тестирования и выводятся в результаты оптимизации и в пользовательские параметры таблицы «результаты»
MARToOptim — При установленной опции в процессе оптимизации рассчитывается коэффициент MAR и выводится в результаты оптимизации и в пользовательские параметры таблицы «результаты»
WLBarsRatioToOptim — При установленной опции в процессе оптимизации рассчитывается коэффициент WLBarsRatio (отношение длины средей профитной к длине средней убыточной сделки) и выводится в результаты оптимизации и в пользовательские параметры таблицы «результаты»
PTMKoefToOptim — При установленной опции в процессе оптимизации рассчитывается коэффициент ProfitToMedianeKoefToOptim (плотность распределения доходности вокруг медианы, чем выше коэффициент, тем более плотно распределена доходность, например, коэф.10 соответствует среднему отклонению 10%, коэф.20 — 5%, коэф.40 — 2.5%) и выводится в результаты оптимизации и в пользовательские параметры таблицы «результаты»
PTMPeriodDays — Данная опция задает период между расчетными точками ProfitToMedianeKoefToOptim для контроля отклонения кривой эквити от медианы в днях, по умолчанию 7 дней. Настройка сделана для целей уменьшения нагрузки на ПК и увеличения скорости расчетов. На медленных ПК необходимо увеличивать данную настройку до получения примлемых результатов. В случае установки значения, меньше чем 7 или большего, чем 50% от кол-во дней в загруженной истории, автоматически применяется 7
PTRMOnlyBelowMedianeValues — При установке данной опции для оценки ровности по ProfitToMedianeKoefToOptim будет использоваться только те значения кривой доходности, которые ниже медианы, при снятой опции для оценки качества кривой используются отклонения в обе стороны от медианы
PTRMCalculateOnlyWhenMedianeHigherThenZero — При установке данной опции расчет оценки ровности будет производиться только в том случае, если медиана выше нулевого значения доходности, когда медиана ниже нуля, то расчет не производится. Побочным эффектом такого расчета будет то, что системы, которые определенное время находились в просадке и их медиана не поднималась выше нуля будут ранжированы выше, чем если бы ранжировалось на «общих основаниях», т.к. в этом случае их негативный период попросту не анализируется. В отдельных случаях оценка может наоборот уменьшиться, т.к. в расчет будет получен только период когда медиана была выше нуля, в котором будет большое количество просадок
ShowProfitPanes — Выводит/скрывает панель профита за период
BarColor — Цвет свечей графика инструмента
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab SmirnovCoef
Коэффициент-Смирнова
Чем больше кривая доходности похожа на прямую (если только она не лежит) — тем лучше и тем больше денег можно загрузить. Это можно оценить визуально, а можно математически. По кривой доходности строятся две скользящие с разными периодами и счетчик сколько времени быстрая скользящая находиться ниже медленной. Чем ниже этот показатель — тем больше кривая похожа на прямую.
Кубик необходимо поместить в папку Handlers.


Скачать кубик для TSLab PositionsInfo
описание-кубика-PositionInfo
Кубик отправляет в лог, для дальнейшей пересылки через менеджер уведомлений, данные из окна позиции по выбранному тикеру.
Если указанный тикер не найдется, то шлет по каждому тикеру, что есть в окне позиции на этом счету.
Шлет следующие данные: тикер, НП/У, П/У(дн), текущая позиция, чистая стоимость.
Предполагается, что это может быть удобно для контроля того, что происходит на вашем счету, если вы не находитесь рядом с терминалом.
Кубик шлет в лог. Как кубик сообщение. А из лога пересылку в телеграм или на почту можно организовать через менеджер уведомлений.
Такое вот сообщение для последующей пересылки менеджером уведомлений:
«Тикер: {balance.SecurityName}, НП/У: {balance.ProfitVolume}, П/У(дн) {balance.DailyPl}, текущая позиция: {balance.RealRest}, чистая стоимость: {balance.Balance} «,
Данные берет из окна позиции.
Параметры
• Tiker — Тикер
• Type — Важность сообщения (Info, Warning, Error)
• Tag — Дополнительная пользовательская метка
Необходимо поместить в папку Handlers.


Скачать кубик для TSLab BalanceControl
ПримерИспользования-Different_BalanceControl
Кубик разработан для контроля резких изменений данных по счету, которые поступают от брокера. У многих трейдеров размер позиции завязан на размер свободных средств на «депо» и в случае если брокер передаст существенно больший размер, а такая вероятность не исключена, то если в скрипте дополнительно не ограничен максимальный размер позиции, то робот может набрать очень «неприличную» позу, что в дальнейшем скорее всего выльется в определенные фин.убытки. Чтобы этот момент контролировать разумно сверять текущую информацию с ранее принятой и если есть большая разница, то использовать ранее принятую информацию. Кубик работает только в режиме агента, в режиме лаборатории всегда возвращается ноль. Данный кубик получает данные со входа, сравнивает их суммой полученной на прошлом пересчете и если разница составляет более указанного процента, то возвращается ранее полученную сумму. Таким образом, предотвращается передача в систему существенно неверных данных, присутствие которых может привести к покупке активов на сумму, выходящую за имеющиеся «свободные средства. Кубик рекомендуется запускать в отдельном агенте с пересчетом по метроному и передавать данные в другие агенты через механизм глобального кеша, таким образом, у всех агентов будет актуальная и отфильтрованная информация о текущем балансе счета. Кубик для хранения прошлых данных использует локальный кеш и файл на диске по указанном пути. Обращение к файлу происходит только в случае если кеш пустой, в остальных случаях кубик использует кеш. В файл данные записываются 1 раз в 5 минут (настройкой «периодичность записи в файл» можно изменить интервал перезаписи). Данные сохраняются в файл, расположенный в папке: C:\Users\UserName\AppData\Local\TSLab\TSLab 2.0\DataStorage\AccountData\
Параметры
ID Контроллера. Произвольный текст. ID необходимо указывать в случае если в рамках одного скрипта работает два и более контроллера баланса, т.к. они оба используют локальный кеш, то при наличии одной и той же ID-метки будут перетирать данные друг друга.
% несоответствия баланса. Процент, на который различается текущий и получаемый на вход баланс. В случае если разница больше указанного процента, то система использует ранее сохраненный баланс.
Писать в файл. При установке данной опции с указанной периодичностью (по умолчанию 5 минут) данные по входной величине будут писаться в файл, откуда будут браться в случае если в локальном кеше нет данных или данные равны нулю. Данная настройка по сути является избыточной, т.к. у локального кеша есть функционал сохранения на диск даже при отключении ТСЛаб, но когда вопрос стоит о деньгах, то лишняя «страховка» не помешает. Если такая необходимость отсутствует, то данную настройку можно отключить. По умолчанию настройка включена.
Период перезаписи файла. Время в минутах между перезаписью данных в файл.
Писать данные в лог-файл. При установленной опции система будет писать данные по получаемому из вне, из кеша и выдаваемому на выход значению, что позволяет отследить работу кубика в динамике. По умолчанию отключено. Лог пишется в файл по адресу: C:\Users\UserName\AppData\Local\TSLab\TSLab 2.0\DataStorage\Logs\.
Необходимо поместить в папку Handlers.


Скачать кубик SystemDate
ПримерИспользования
Блок: SystemDate
Иногда нужно системное время, например, чтобы на всякий случай в агенте ограничить любые торговые движения, если дата «машины» не совпадает с датой инструмента. Кубик потоковый. На входе инструмент, на выходе текущая системная дата в формате «ГГММДД», то есть в формате ТСЛаб.
Необходимо поместить в папку Handlers.


Скачать кубик FuturesExpDate и в открытом виде
Дата-экспирации-Оповещение
Блок: FuturesExpDate
В режиме агента выдает дату экспирации по фьючерсу. Если подключить другой инструмент или ТСЛаб находится в режиме лаборатории, то в качестве даты экспирации всегда будет выдаваться 01.01.2050, чтобы если не снята галочка закрытия позиций по дате экспирации, то дата была далеко от текущей даты

Кубик можно вывести на контрольную панель и будет показана дата экспирации по инструменту.
Можно сделать схему по примеру ниже на скрине. Будет напоминать о дате экспирации. Система сама ее получает из инструмента и за 2-3 начинает делать сообщения в телеграмм. Если сам не сменил, то сама выходит за день до экспирации и продолжает сигнализировать уже о том, что экспирация прошла и надо сменить инструмент.
Это сам кубик. Логику уведомления уже каждый сам соберет как хочет.
Логика-уведомлений-при-экспирации
Необходимо поместить в папку Handlers.


Скачать кубик Сообщение на бар
кубик-сообщения-накаждом-баре
Блок: Сообщение на бар
При появлении на входе блока значения True выводит в лог программы пользовательское сообщение, работает для каждого бара. При необходимости можно принудительно отключить вывод собщения на баре
Параметры:
• Message — Пользовательское сообщения для выдачи на каждом баре с учетом условия на входе
• Type — Важность сообщения (Info, Warning, Error)
• Use — Выводить сообщения или не выводить (принудительный запрет на вывод)
Необходимо поместить в папку Handlers.


Скачать кубик Сообщение-MessageAdv
Кубик-Сообщение-в-ТСЛаб
Блок: Сообщение (MessageAdv)
При появлении на входе блока значения True выводит в лог программы пользовательское сообщение, работает для каждого бара. При необходимости можно принудительно отключить вывод сообщения на баре. Также можно выводить какое-либо внешнее пользовательское значение и/или имя скрипта (в режиме агента — имя агента). Имя скрипта выводится только в том случае, если установлена соответствующая опция. В случае если разрешение на вывод имени скрипта установлено, но на вход №3 не подано никакое значение, то будет использовано фактическое имя скрипта/агента
Параметры
• Message — Пользовательское сообщения для выдачи на каждом баре с учетом условия на входе.
• Type — Тип выводимого сообщения: Debug, Info, Warning, Error.
• Use — Выводить сообщения или не выводить (принудительный запрет на вывод при снятии опции).
• UseOnlyOnLastBar — При установленной опции выводит только на последнем баре, при снятой опции сообщение будет выводиться на каждом баре.
• ShowAgentName — Выводить/не выводит имя агента. В качестве имя агента используется либо торговое имя скрипта (имя агента в режиме реальной торговли, либо произвольный текст, подаваемый на 3-й вход кубика. Последний случай нужен тогда, когда торговое имя агента по каким-либо причинам было сброшено (агент переименован), но прим этом необходимо, чтобы сообщения приходили с тем же именем. В этом случае на вход подаем нужное имя с кубика «Текст» или любого иного кубика и получаем имя агента, не зависящее от его фактического названия в ТСЛаб.
• ShowDigitEnterTwo — В случае если опция снята, то даже при подключенном входе №2 его значение не будет выводиться в сообщение.
• ShowBarNumber — Выводить/не выводить номер текущего бара при выдаче сообщения в лог.
• Tag — Пользовательская метка, которая может быть использована в дальнейшем для отбора в менеджере сообщений.
Входы
• Сигнал — логическое значение
• Число
• Имя Агента — строка
Необходимо поместить в папку Handlers.


Скачать кубики Делители
общий-Делители
Применение-делителей
 
С целью уменьшить количество связей на графике, есть кубики, которые как разветвитель могут работать.
Предназначение кубика — деление одного «сигнала» на несколько. Для чего может использоваться, например, собирается какая-либо конструкция, в которой имеется несколько кубиков, которые должны получить данные с одного единственного кубика. В штатной реализации придется протянуть от одного единственное блока несколько связей ко всем остальным блокам, что ухудшает восприятие скрипта, а также является довольно муторным в части последующего подключения блока при его копировании в другой скрипт. В случае использования делителя все необходимые блоки соединяются с делителем, а он — с единственным блоком, выдающим «сигнал», таким образом, при копировании собранной конструкции в другой скрипт будет достаточно сделать только одно соединение вместо протягивания множества связей. Предусмотрено 4 вида делителей: инструмента, числа, логического значения и позиции.

Примечание: Нет возможности соединить делитель с блоками открытия позиции, т.к. механизм генерации кода ТСЛаб «не заточен» под работу с другими блоками, кроме источника, о чем скрипт сообщит в виде ошибке при попытке его запуска. В иные случаях делитель инструмента можно использовать.

Три кубика:
— один для связей, подключаемых к источнику (Делитель Sec);
— второй для связей, подключаемых к блоку открытия позиции (Делитель Pos);
— третий для связей, подключаемых к числовому значению (Делитель Double)
Файл gaaDividers.dll поместить в папку Handlers


Скачать индикатор из кубиков ATR_RMA.tscript
Индикатор-ATR-через-RMA-как-в-TW
Индикатор ATR, такой используется в TradingView. Рассчитывается так же — по RMA (MMA), но не по EMA.


Скачать кубик PriceLimits
кубик-Лимиты
В ТСЛабе в разделе «Вид» — «Котировки», там при подключенном поставщике показывается информация нужная для правильной работы агента. Особенно важны Лимиты, т.к. без них могут не выставляться правильно заявки.
Кубик выдает значения лимитов, если лимитов не приходит выдает 0
Необходимо поместить в папку Handlers.
Котировки-Лимиты


Скачать кубик Write To File
пример
Кубик позволяет записывать в текстовый файл все, что подаем на него.
Необходимо поместить в папку Handlers.
запись-в-файл


Скачать кубик DoubleToTextD
Дата-в-нормальном-виде
Кубик «DoubleToTextD» принимает на вход шести или пятизначное число без дробной части и возвращает текстовое представление даты для вывода на контрольную панель, например, при поступлении на вход 90101 кубик вернет 01.01.2009. Если на вход поступает число больше 6-ти или меньше 5-ти цифр, либо имеющее дробную часть, либо число меньше 10101, то кубик вернет значение «NoDate»
Необходимо поместить в папку Handlers.


Скачать Исходный код кубика Пример Расчета Комиссии
Пример-расчета-комиссии
Это кубик на API в исходном коде, как пример, в котором показано как считать комиссию от расчётной цены. Данную цену нам брокер не присылает в данных, но она равна полу сумме верхнего и нижнего лимита. А их мы получаем в терминале. Это метод расчёта комиссии по сделке.


Скачать бота для Телеграм TSLab_alarm_bot
аларм-бот-для-тслаб
Бот создан на Питоне, есть исходники.
Принцип работы бота следующий: в TSlab работает агент, который регулярно шлет в канал в телеграм сообщения. Если сообщения от агента поступают значит TSlab не завис, виртуалка/ПК работают и доступ к интернету у них есть. Для контроля того, что сообщения регулярно поступают, на другой машине, не на той, где запущен TSLab, работает простенький бот. Если время с последнего сообщения из TSlab превысит заданное, то он начнет регулярно сообщать об этом.

Настройка отправки сообщений в TSlab:
— загружаем скрипт CrashAlarm.tscript. В кубике «внешний скрипт» необходимо указать путь к файлу crashAlarm.cs. Интервал пересчета скрипта установлен равным 1 дню, но он пересчитывается при помощи метронома через интервал, задаваемый в минутах на контрольной панели (рекомендуемы интервал 1 минута). Скрипт очень маленький и почти не нагружает машину. Кроме того, его пересчет происходит не в начале минуты, когда нагрузка на машину максимальна, а на 37 секунде.
— создаем на основе скрипта CrashAlarm агента и запускаем его в работу
— через менеджер уведомлений настраиваем пересылку сообщения Still alive в отдельный, вновь созданный, телеграм канал.


Скачать Исходный код кубика SMA с Адаптивным периодом
SMA-с-адаптивным-периодом
Это кубик на API в исходном коде с пояснениями внутри кода. Изначально это кубик был написан компанией RusAlgo.


Скачать Исходный код кубика Пример «Кубик с двумя выходами»
два-выхода-из-кубика-на-API
Это кубик на API в исходном коде, как пример, в котором показано как сделать два выхода из кубика. Потому что обычно в классах Execute имеет строгий вид с 1 возвращаемой серией.


Скачать скрипт для TSLab Индекс Волатильности
Индекс-волатильности-1
Скрипт для проверки относительной волатильности в процентах за неделю. Очень удобно, если надо из сотни графиков выбрать парочку для своих целей. Подстроить можете под свои нужды.


Скачать собранные из кубиков индикатор VWAP для TSLab
индикатор-VWAP


Скачать собранные скрипты по стратегии Стратегия «BANDITOS» для TSLab
Стратегия-Banditos-база-Доход-сделки
Переходите и внизу статьи рассказано как можно получить скрипты!


Скачать собранные скрипты по стратегии Пробой бара уровня неправоты — БУН для TSLab
proboj-bara-urovnya-nepravoty-bun-test-v-tslab
Переходите и внизу статьи рассказано как можно получить скрипты!


Скачать собранные скрипты по стратегии «KWU» адаптация для TSLab
strategiya-kwu-adaptaciya-dlya-tslab
Переходите и внизу статьи рассказано как можно получить скрипты!


Скачать собранные скрипты по стратегии «Кортик» для 3-х экранов» в TSLab
strategiya-kortik-dlya-3-x-ekranov
Переходите и внизу статьи рассказано как можно получить скрипты!


Скачать собранные скрипты по стратегии «13 часовых свечей» в TSLab
strategiya-13-chasovyx-svechej
Переходите и внизу статьи рассказано как можно получить скрипты!


Скачать собранные скрипты по стратегии «Метод входа М. Риваланда» в TSLab
strategiya-metod-vxoda-m-rivalanda-vtslab
Переходите и внизу статьи рассказано как можно получить скрипты!


Скачать собранные скрипты по стратегии «УНИВЕРСАЛЬНЫЙ СЕТОЧНИК ДЛЯ КРИПТОВАЛЮТЫ» в TSLab
Сеточник-для-ТСЛаб-крипта
Переходите и внизу статьи рассказано как можно получить скрипты!
 
 
 


ВСЕ МАТЕРИАЛЫ предоставлены для ознакомления, скачивание материала с целью дальнейшей продажи или распространения запрещено.