Автоматизированные торговые системы интересуют множество людей, торгующих на бирже с появления первых компьютеров. Популярность такого подхода к торговле растет с каждым годом, но до конца еще не изучены все стороны построения эффективной торговой системы даже на сегодняшний день.
📈 Появляются новые инструменты и методы построения и описания торговых алгоритмов, более мощное программное обеспечение для автоматизированной торговли. Все это создает большой резонанс во взглядах на методы алгоритмической торговли.
📌 Как бы то ни было, существуют аспекты в данной сфере, без которых невозможно стабильное существование автоматизированной торговой системы. Одним из таких аспектов является оптимизация торговых алгоритмов, а также определения горизонтов их стабильной работы.
✅ ПОНЯТИЕ ОПТИМИЗАЦИИ ТОРГОВЫХ АЛГОРИТМОВ
Оптимизация – это процесс настройки исходной торговой системы путем корректировки ее параметров или группы параметров, которые в ней используются.
📊 Процесс оптимизации торговой стратегии представляет из себя перебор параметров из заданных границ внутри какого-либо временного диапазона исторических данных для конкретного финансового инструмента.
📚 Цель этого процесса – получение лучших результатов работы торговой системы для данного отрезка времени и финансового инструмента.
🤖 Результат оптимизации характеризуется значениями индикаторов / оценочных показателей работы системы для каждого значения оптимизируемых параметров. То есть видно при каких значения получались те или иные результаты работы системы. Другими словами, для каждого набора параметров производится тестирование торговой системы на определенном промежутке исторических данных и представляются результаты этого тестирования.
💻 Любой торговый алгоритм заключается в первую очередь в том, чтобы определить точки открытия и закрытия торговых позиций. Будь то анализ ситуации на рынке и оценка вероятностей направления движения цены, или любые случайные входы. Соответственно при любом изменении правил входа и выхода из позиции меняются и результаты работы торговой системы в целом. Также эффективность торгового алгоритма меняется в том числе и при изменении условий самого рынка и рыночных ситуаций. Это и создает предпосылки к оптимизации торговой системы для получения лучших результатов работы в текущем моменте или в ограниченном будущем.
📍 Под оптимизацией могут пониматься совершенно разные процедуры. Это может быть и учет особенностей финансового инструмента или его таймфрема (таймфрейм – это интервал времени группировки котировок при построении элемента ценового графика: бара, свечи или точки линейного графика), условий торговли предоставляемых брокером, изменение самого торгового алгоритма системы, добавление всякого рода фильтров или нахождение значений параметров той системы, которая уже создана.
✅ ИНСТРУМЕНТЫ ОПТИМИЗАЦИИ
Инструментами оптимизации представляются специальные программные продукты, которые имеют в себе встроенные инструменты описания торговых алгоритмов, выделения их параметров для оптимизации, а также средства тестирования и оптимизации этих алгоритмов.
📍 Существует действительно большое количество различных подобных программных продуктов. Их многочисленность во многом обусловлена следующими факторами:
✏ 1) Множество различных торговых площадок. Доступ к определенным площадкам обеспечивается различными провайдерами, которые имеют различные API (интерфейс прикладного программирования) для предоставления электронного доступа к торгам.
✏ 2) Множество языков описания торговых систем. Некоторые системы имеют внутренние специальные языки для описания торговых алгоритмов, другие могут использовать стандартные, такие как Python, C#, Java и др.
✏ 3) Различные подходы описания торговых систем. Существует два кардинально различных подходов описания торговых алгоритмов: текстовый и графический. Графический создан для тех трейдеров, которые не владеют навыками программирования, в таких программах код описания торгового алгоритма генерируется автоматически.
📊 Наиболее распространенные программные продукты для описания и оптимизации торговых систем:
📚 Для примера будем использовать программную платформу TSLab. Это программное обеспечение распространяется бесплатно, имеет встроенный мощный объектно-ориентированный язык программирования, а также средства оптимизации со всеми необходимыми возможностями. Доступ торговых площадок очень широк: криптовалютные биржи (Binance, OKX, Deribit, Bittrex, Bitfinex, Bitmex, Huobi, ByBit) с полным списком инструментов как SPOT так и фьючерсами или SWAP контрактами; один Forex брокер LMAX; Московская Биржа, СПб Биржа; брокер Interactive Brokers.
💻 Торговая платформа TSLab получила большую популярность среди трейдеров, брокеров разных бирж, более того, этот продукт для описания торговых систем является самым удобным в этом направлении, является одной из самых надежных, удобных и функциональных торговых платформ. Профессиональные разработчики автоматизированных торговых систем предпочитают именно TSLab, как готовый продукт для алгоритмической торговли.
📈 TSLab позволяет торговать одновременно неограниченным числом разных контрактов на разных рынках, а также с помощью мощного визуального редактора и набора графических инструментов можно без знаний программирования собрать свою торговую стратегию и протестировать ее, также делать полный технический анализ на графике как в обычном терминале, прогнозировать ситуацию на рынке и планировать сделки.
📍 Более того, данная платформа имеет встроенный язык программирования С#. Этот язык позволяет существенно расширять функциональность платформы, персонализировать ее под личные стратегии и автоматизировать рутинные операции. Что можно создавать в редакторе TSLab:
✒ 1) Торговые робота (Советники / Expert Advisor) – это по сути готовая механическая (автоматизированная) торговая система, которая позволяет анализировать рынок и совершать сделки согласно заложенному в ней торговому алгоритму. Этот робот при реализации может быть привязан к графику какого-либо финансового инструмента (а также к определенному таймфрейму) и работать только на нем. Торговый робот считывает рыночную информацию при каждом тике/ на каждой свече и прогоняет новую информацию по всему алгоритму. Также робот может просто информировать пользователя о торговых сигналах, например отправлять уведомления на почту или в Телеграм.
✒ 2) Пользовательский индикатор (Custom Indicator). Помимо множества встроенных технических индикаторов, TSLab позволяет писать собственные (как в визуальном редакторе, так и с помощью языка программирования C#), основанные на пользовательских алгоритмах анализа рынка. Индикаторы могут только выводить графическую и текстовую информацию на график и не могут торговать.
✒ 3) Скрипт (Script) – по сути может иметь структуру торгового робота, отличие состоит в том, что скрипты не срабатывают потиково, а лишь один раз исполняют алгоритм по запросу пользователя.
Тестирование и оптимизация торговых систем выполняются с помощью встроенного в TSLab «Тестера».
✅ ЭТАПЫ ОПТИМИЗАЦИИ
Для того чтобы оптимизировать торговую стратегию предлагается выполнить следующие этапы:
✏ 1) Описать стратегию на языке программирования, который позволит выполнить ее оптимизацию в выбранной программной среде. В нашем случае это будет выполнено в визуальном редакторе в среде разработки TSLab.
✏ 2) Далее следует подготовить написанную систему к тестированию. Подготовка заключается в том, что должны быть учтены все свойства выбранных торгового инструмента и таймфрейма для оптимизации. Это включает в себя размер спреда (для правильного учета затрат на проскальзывание), размер пункта, возможные размеры контрактов, волатильность, для некоторых систем это может быть время работы торговых площадок.
✏ 3) Предварительное тестирование системы на работоспособность. На данном этапе могут быть выявлены участки кода с ошибками и недочеты в описании торгового алгоритма.
✏ 4) Выбор промежутка исторических данных для тестирования. Для каждой системы это могут быть разные по величине промежутки.
✏ 5) Выбор источника исторических данных. TSLab в этом плане не только одна из наиболее гибких систем, которая позволяет добавить в тестер вашей стратегии любые данные извне, но также имеет свои настраиваемые поставщики данных, которе можно подключить к нужному брокеру или бирже и получить данные напрямую.
✏ 6) Выбор метода тестирования. Можно производить тестирование потиковое, но это занимает огромные ресурсы системы и большие временные затраты, что в итоге совсем не гарантирует стопроцентную достоверность значений котировок для каждого тика в истории. Если система построена так, что работает только с уже сформированными барами истории, то можно выбрать тестирование по ценам закрытия или по Open-High-Low-Close свечей, в таком случае тестирование будет проходить намного быстрее.
✏ 7) Тестирование выбранной стратегии на определенном интервале исторических данных котировок.
✏ 8) Подготовка системы для оптимизации, которая включает в себя определение участков и параметров, для которых необходима оптимизация. Все параметры, значения которых будут оптимизироваться помечаются специальной меткой, которая обеспечивает доступ к ним для тестировщика.
✏ 9) Определение границ перебора (промежутков значений) для оптимизируемых параметров. На данном этапе необходимо выбрать те возможные значения параметров, которые не будут давать абсурдные результаты.
✏ 10) Этап оптимизации, в котором отражается ход оптимизации и результаты работы системы при каждой комбинации параметров, что позволяет выявить проблемные участки работы системы и, возможно, условия сокращения промежутков возможных значений параметров.
✏ 11) После окончания оптимизации, выбираются наиболее приемлемые показатели работы системы и затем необходимо снова протестировать ее уже с новыми значениями оптимизируемых параметров.
✏ 12) На последнем этапе оценивается устойчивость системы. Существует множество способов оценки надежности системы и определения значимости полученных значений параметров, например форвард-тест, бек-тест, стресс-тест и т.п.
💻 После окончания процесса оптимизации, желательно выполнить контрольное тестирование на исторических данных о котировках, чтобы убедиться, что программой не были допущены ошибки в котировках. А также протестировать рабочую системы в реальных условиях рынка.
👉 Продолжение можно прочитать тут: https://daytradingschool.ru/optimizaciya-algoritmov-torgovli-na-finansovom-rynke/
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев