Rus
Общие вопросы
Powered By GitBook
Пример разработки торгового алгоритма в TSLab

Разработка торгового алгоритма в TSLab

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

Открытие скрипта в редакторе

В предыдущей статье Пример создания скрипта в TSLab был создан скрипт под названием Первый. Воспользуемся данным скриптом для создания нового алгоритма.
Откройте скрипт Первый, двойным щелчком левой кнопки мыши или нажатием кнопки Редактировать, на панели с кнопками.
Перейдите на вкладку Редактор (Скрипт).

Выбор индикатора SMA

В окне Панель инструментов установите указатель мыши в поле поиска. Введите текст SMA. Под строкой поиска отобразится индикатор SMA.
Выберите индикатор SMA и, зажав левую кнопку мыши, перетащите его в Редактор.
Блок
Описание
Изображение
Блок: SMA
Простое (арифметическое) скользящее среднее. Рассчитывается путем сложения входящих значений, например, цен закрытия инструмента за определенный период, затем полученная сумма делится на значение периода.

Соединение блоков

Соедините блок SMA с блоками Закрытие и графиком Главная. Для соединения блоков необходимо:
    1.
    Навести указатель мыши на значок входа/выхода блока
2. Зажать левую кнопку мыши.
3. Держа зажатой левую кнопку мыши протянуть соединительную линию до другого блока, с которым необходимо организовать связь.
Для вашего удобства вы можете изменить цвет и толщину отображаемых на графике линий. Для этого вам необходимо нажать на линию соединяющую блок SMA с блоком графика Главная.
После выбора соединительной линии вам станет доступно меню Свойства. В качестве примера мы изменим толщину и цвет линии.

Отображение индикатора SMA на графике

Сохраните и выполните скрипт.
После того как скрипт будет скомпилирован, результаты будут отображены на графике.
SMA берется от закрытия бара, по условиям стратегии, однако SMA можно взять от любых данных бара. Максимум, Минимум, Открытие.
Или от любых других вещественных значений в алгоритме.
Для вашего удобства все вкладки можно переносить относительно друг друга. Зажмите левой кнопкой ярлык вкладки и потяните вниз. В центре страницы появится выбор, где закладку можно прикрепить. Если у Вас несколько мониторов, закладки можно выносить на другие мониторы. Расположим вкладку Редактор правее Графика.

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

Для реализации нашей стратегии необходимо добавить в скрипт ещё один индикатор SMA. Соединим блок SMA с блоком Закрытие и графиком Главная. Так как SMA на данный момент имеют одинаковый период, и на графике они слились в единую линию.
Одной из средних присвоим имя SMAFast. Значения средних выведем на блок Контрольная панель и настроим ее.
Блок
Описание
Изображение
Блок: Контрольная панель
Панель, на которую можно добавлять контрольные элементы, регулирующие параметры оптимизации блоков.
Подробнее в статье: Контрольная панель

Настройка блоков индикаторов SMA

Выполним настройку блоков SMA и SMAFast. Для этого необходимо дважды кликнуть на блоке Контрольная панель.
Для блоков SMA и SMAFast необходимо включить опцию Пересчитывать (активирует функцию пересчета скрипта при каждом изменении параметров.)
Для блоков SMA и SMAFast необходимо установить Тип элемента управления. Выберите опцию Число с управлением.
Для примера, в индикаторе SMA установите значения:
    Текущее значение = 200
    Шаг = 1
Для индикатора SMAFast установите значения полей:
    Текущее значение = 50
    Шаг = 1
Сохраните настройки, нажав на кнопку ОК. Сохраните и выполните скрипт.

Блоки Открытие/закрытие позиции по рынку. Блоки Пересечение сверху/снизу

Добавим в редактор скриптов блоки:
Блок
Описание
Изображение
Блок: Пересечение сверху
Функция определяет моменты, когда второй вход (сигнал) пересекает опорную линию (первый вход) сверху вниз. Верхняя связь - что пересекаем. Вторая связь блока - чем пересекаем.
Блок: Пересечение снизу
Функция определяет моменты, когда второй вход (сигнал) пересекает опорную линию (первый вход) снизу вверх. Верхняя связь - что пересекаем. Вторая связь блока - чем пересекаем.
Блок: Открытие позиции по рынку
Открытие позиции по первым предложенным на рынке ценам. В расчетах на истории используется цена открытия следующего бара.
Первая связь от блока Открытия позиции по рынку всегда соединяется с Источником, так как в редакторе может быть много источников.
Если навести курсор на связи в блок, каждый вход подписан, таким образом в редакторе всегда можно определить какой именно тип данных требуется Блоку для расчета.
Блок: Закрытие позиции по рынку
Закрытие позиции по первым предложенным на рынке ценам. В расчетах на истории используется цена открытия бара, следующего за сигналом.
Соединим блоки:
    Выходы блоков SMA и SMAFast со входами блоков Пересечение сверху и Пересечение снизу
    Вход блока Открытие позиции по рынку с выходом блока Источник1
    Вход блока Открытие позиции по рынку с выходом блока Пересечение снизу
    Выход блока Открытие позиции по рынку с входом блока Закрытие позиции по рынку
    Вход блока Закрытие позиции по рынку с выходом блока Пересечение сверху
Вы можете настроить отображение полезной информации на графике. Для этого нажмите на кнопку Меню, расположенную в верхнем левом углу. Отключим название Инструмента(пункт меню тикер).

Оптимизация скрипта

Выполним оптимизацию созданного скрипта. Так как в этих данных, образованных случайной величиной, объем постоянен, то блок Объем можно удалить, чтобы не мешался на графике.
Затем необходимо открыть вкладку Оптимизация. Зададим Максимальный и Минимальный период для блоков SMA и SMAFast. Выберем шах изменения значений периода равный 10. Целью оптимизации является подбор наилучших параметров индикаторов, алгоритма, на загруженной выборке данных.
В нижнем левом углу окна Оптимизации установим максимальное количество проходов для расчетов. Для запуска нажмите на кнопку Старт.
После завершения процесса оптимизации результаты можно посмотреть на вкладке Результаты оптимизации.
Отсортируем результаты по столбцу Чистый П/У. Строка с наибольшим значением в данном столбце может принести наибольшую прибыль. Для того чтобы записать в скрипт значения полученные в ходе оптимизации дважды кликникете мышкой по верхней строке. Процесс оптимизации для нашего примера завершен.
Описанный пример можно скачать в готовом виде и подгрузить в программу:
2MA.tscript
24KB
Binary
Сохраните файл на компьютер, Откройте в программе Лаб - Управление скриптами - Нажмите кнопку "Загрузить из файла", укажите место нахождения скачанного файла.
Last modified 4mo ago