Пример разработки торгового алгоритма в TSLab
Last updated
Last updated
В приведенном примере мы рассмотрим процесс создания алгоритма торговой стратегии "Пересечение двух скользящих средних".
При пересечении двух средних снизу, входим в длинную позицию, при пересечении сверху выход из позиции.
В предыдущей статье Пример создания скрипта в TSLab был создан скрипт под названием Первый. Воспользуемся данным скриптом для создания нового алгоритма.
Откройте скрипт Первый, двойным щелчком левой кнопки мыши или нажатием кнопки Редактировать, на панели с кнопками.
Перейдите на вкладку Редактор (Скрипт).
В окне Панель инструментов установите указатель мыши в поле поиска. Введите текст SMA. Под строкой поиска отобразится индикатор SMA.
Выберите индикатор SMA и, зажав левую кнопку мыши, перетащите его в Редактор.
Соедините блок SMA с блоками Закрытие и графиком Главная. Для соединения блоков необходимо:
Навести указатель мыши на значок входа/выхода блока
2. Зажать левую кнопку мыши.
3. Держа зажатой левую кнопку мыши протянуть соединительную линию до другого блока, с которым необходимо организовать связь.
Для вашего удобства вы можете изменить цвет и толщину отображаемых на графике линий. Для этого вам необходимо нажать на линию соединяющую блок SMA с блоком графика Главная.
После выбора соединительной линии вам станет доступно меню Свойства. В качестве примера мы изменим толщину и цвет линии.
Сохраните и выполните скрипт.
После того как скрипт будет скомпилирован, результаты будут отображены на графике.
SMA берется от закрытия бара, по условиям стратегии, однако SMA можно взять от любых данных бара. Максимум, Минимум, Открытие.
Или от любых других вещественных значений в алгоритме.
Для вашего удобства все вкладки можно переносить относительно друг друга. Зажмите левой кнопкой ярлык вкладки и потяните вниз. В центре страницы появится выбор, где закладку можно прикрепить. Если у Вас несколько мониторов, закладки можно выносить на другие мониторы. Расположим вкладку Редактор правее Графика.
Для реализации нашей стратегии необходимо добавить в скрипт ещё один индикатор SMA. Соединим блок SMA с блоком Закрытие и графиком Главная. Так как SMA на данный момент имеют одинаковый период, и на графике они слились в единую линию.
Одной из средних присвоим имя SMAFast. Значения средних выведем на блок Контрольная панель и настроим ее.
Выполним настройку блоков SMA и SMAFast. Для этого необходимо дважды кликнуть на блоке Контрольная панель.
Для блоков SMA и SMAFast необходимо включить опцию Пересчитывать (активирует функцию пересчета скрипта при каждом изменении параметров.)
Для блоков SMA и SMAFast необходимо установить Тип элемента управления. Выберите опцию Число с управлением.
Для примера, в индикаторе SMA установите значения:
Текущее значение = 200
Шаг = 1
Для индикатора SMAFast установите значения полей:
Текущее значение = 50
Шаг = 1
Сохраните настройки, нажав на кнопку ОК. Сохраните и выполните скрипт.
Добавим в редактор скриптов блоки:
Соединим блоки:
Выходы блоков SMA и SMAFast со входами блоков Пересечение сверху и Пересечение снизу
Вход блока Открытие позиции по рынку с выходом блока Источник1
Вход блока Открытие позиции по рынку с выходом блока Пересечение снизу
Выход блока Открытие позиции по рынку с входом блока Закрытие позиции по рынку
Вход блока Закрытие позиции по рынку с выходом блока Пересечение сверху
Вы можете настроить отображение полезной информации на графике. Для этого нажмите на кнопку Меню, расположенную в верхнем левом углу. Отключим название Инструмента(пункт меню тикер).
Выполним оптимизацию созданного скрипта. Так как в этих данных, образованных случайной величиной, объем постоянен, то блок Объем можно удалить, чтобы не мешался на графике.
Затем необходимо открыть вкладку Оптимизация. Зададим Максимальный и Минимальный период для блоков SMA и SMAFast. Выберем шах изменения значений периода равный 10. Целью оптимизации является подбор наилучших параметров индикаторов, алгоритма, на загруженной выборке данных.
В нижнем левом углу окна Оптимизации установим максимальное количество проходов для расчетов. Для запуска нажмите на кнопку Старт.
После завершения процесса оптимизации результаты можно посмотреть на вкладке Результаты оптимизации.
Отсортируем результаты по столбцу Чистый П/У. Строка с наибольшим значением в данном столбце может принести наибольшую прибыль. Для того чтобы записать в скрипт значения полученные в ходе оптимизации дважды кликните мышкой по верхней строке. Процесс оптимизации для нашего примера завершен.
После того как вы проведете оптимизацию вашего скрипта, вы можете сохранить набор значений оптимизированных параметров. Данные наборы будут сохранены на вкладке Параметры скрипта. Подробнее о вкладке Параметры вы можете прочесть в статье Вкладка Параметры.
После того как вы создадите новый набор параметров нажмите на кнопку Сохранить скрипт
Описанный пример можно скачать в готовом виде и подгрузить в программу:
Сохраните файл на компьютер, Откройте в программе Лаб - Управление скриптами - Нажмите кнопку "Загрузить из файла", укажите место нахождения скачанного файла.
На вкладке Параметры для вашего удобства вы можете добавить каталог, в котором будет, например, храниться набор параметров для выбранного инструмента. Для этого нажмите на кнопку . Введите название для нового каталога.
Далее нажмите на кнопку (Сохранить набор из текущих параметров). Будут сохранены параметры, которые в данный момент заданы в окне Оптимизация в столбце Значение:
Блок
Описание
Изображение
Блок: SMA
Простое (арифметическое) скользящее среднее. Рассчитывается путем сложения входящих значений, например, цен закрытия инструмента за определенный период, затем полученная сумма делится на значение периода.
Блок
Описание
Изображение
Блок: Контрольная панель
Панель, на которую можно добавлять контрольные элементы, регулирующие параметры оптимизации блоков.
Подробнее в статье: Контрольная панель
Блок
Описание
Изображение
Блок: Пересечение сверху
Функция определяет моменты, когда второй вход (сигнал) пересекает опорную линию (первый вход) сверху вниз. Верхняя связь - что пересекаем. Вторая связь блока - чем пересекаем.
Блок: Пересечение снизу
Функция определяет моменты, когда второй вход (сигнал) пересекает опорную линию (первый вход) снизу вверх. Верхняя связь - что пересекаем. Вторая связь блока - чем пересекаем.
Блок: Открытие позиции по рынку
Открытие позиции по первым предложенным на рынке ценам. В расчетах на истории используется цена открытия следующего бара.
Первая связь от блока Открытия позиции по рынку всегда соединяется с Источником, так как в редакторе может быть много источников.
Если навести курсор на связи в блок, каждый вход подписан, таким образом в редакторе всегда можно определить какой именно тип данных требуется Блоку для расчета.
Блок: Закрытие позиции по рынку
Закрытие позиции по первым предложенным на рынке ценам. В расчетах на истории используется цена открытия бара, следующего за сигналом.