1 0
3 092 посетителя

Блог пользователя algolaba

Алготрейдинг

Алгоритмическая торговля на финансовых рынках
19.02.2013, 17:52

Карта начинающего алготрейдера

Алготрейдинг в целом

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

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

2) Второй аргумент можно обозначить знакомыми с детства строчками:

«..Позабыты хлопоты, остановлен бег, вкалывают роботы, а не человек.»

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

На другой чаше весов достоинств и недостатков алгоритмического подхода лежит сложность его освоения. Нельзя прийти на рынок и через несколько дней стать алготрейдером. Это требует гораздо большего времени, а также последовательного прохождения определенного набора этапов для получения самых базовых знаний и навыков. Во многом благодаря своей сложности относительно «ручного подхода», подход алгоритмический окутан ореолом загадочности. Вряд ли вы найдете курсы «Как стать успешным алготрейдером», т.к. проводить их долго, сложно и просто не выгодно. Как ответил в свое время один опытный «алгоритмист» в ответ на просьбу научить: «А зачем? Зачем мне тратить свое время на обучение будущего конкурента? Как ни крути на бирже деньги перетекают из одного кармана в другой, и ничего с этим не сделать..». Поэтому все постигают эту науку методом проб и ошибок, кто-то сразу встает на верную дорогу, кто-то медленно бредет к «болоту», быть может даже сам того и не подозревая. Мы попробуем дать несколько указателей, которые, на наш субьективный взгляд, способны помочь начинающему трейдеру сделать несколько шагов в верном направлении.

Этап 1 - Сбор полезной информации

В подавляющем большинстве случаев первый вопрос звучит так: «с чего начать?». Наш ответ - с поиска и анализа полезной информации. Ключевое слово в данном случае - «полезной», ибо куча псевдоуспешных людей со своими брошюрами полными элементов НЛП из серии «Как стать успешным трейдером» или «Заработай на бирже миллион за 3 дня» просто в прямом смысле замусорили эфир. Помните, что вы пришли за конкретными знаниями о рынке, а не в группу психологической поддержки: мысли, возможно, в некоторых ситуациях и могут материализовываться (как утверждают все тренеры по достижению успеха), но, поверьте, фондовый рынок - это не тот случай. Из книг мы рекомендуем освоить методологию системного трейдинга с помощью трудов А.Кургузкина «Биржевой трейдинг: системный подход» и бюллетеней Ч. Лебо. Также пригодиться могут книги и статьи об общем устройстве рынка, о составе и функциях участников торгов. Например, Larry Harris «Trading & Exchanges.Market Microstructure for Practitioners». Не стоит проходить и мимо опыта уже состоявшихся трейдеров - книга Джека Швагера «Новые маги рынка. Беседы с лучшими трейдерами Америки». Из интернет ресурсов огромная кладезь полезной информации (подтвержденная не одним десятком состоявшихся алготрейдеров) находится на форуме «паука». Иногда полезная информация проскакивает и на других трейдерских ресурсах или в личных блогах, но именно на «пауке» ее концентрация самая высокая. Основная задача на данном этапе - собрать максимально возможное количество полезной информации о рынке, понять как он функционирует, кто и как на нем торгует. Это понадобится в будущем для разработки своих алгоритмов.

Этап 2 - Создание торгового алгоритма

Следующий этап - создание торгового алгоритма. Поиск идеи, которая будет лежать в основе алгоритма, процесс достаточно нетривиальный. У всех он происходит по-разному, поэтому здесь сложно дать какие-то «правильные» советы. Лучше рассмотрим основные виды существующих алгоритмов, это может подсказать направление для поиска идеи. Высокочастотные алгоритмы (HFT) способны генерировать десятки тысяч сделок в течение одной торговой сессии, для них характерны самые стабильные показатели доходности. Весь топ участников самого популярного конкурса трейдеров «ЛЧИ» из года в год занимают представители именно этого класса стратегий. Именно из-за своей стабильности HFT-алгоритмы имеют самый низкий срок жизни (это промежуток времени, через который стратегия перестает генерировать положительный результат) и самую высокую конкуренцию среди себе подобных. Начинать осваивать рынок в одиночку с «высокочастотников» затея по меньшей мере глупая и нерациональная. Следующий тип - это трендследящие алгоритмы, которые зарабатывают благодаря сильным однонаправленным движениям (трендам). Это одни из самых простых и понятных для разработки систем, главным недостатком которых являются нестабильные результаты: в годы с сильными трендами алгоритм будет демонстрировать трехзначные цифры доходности, в то время как при отсутствии на рынке тенденции может сработать в существенный убыток. Впрочем, существует мнение, что для новичков именно с трендовых алгоритмов имеет смысл осваивать азы алготрейдинга. Следующим видом является торговля разного рода ценовых (а порой и не только ценовых) моделей или так называемых «паттернов». Это огромный пласт для поиска идей, т.к. различных «паттернов» можно придумать великое множество, причем некоторые из них способны давать стабильный устойчивый прирост доходности абсолютно на любой рыночной стадии. Единственная проблема - заметить, понять и формализовать эти модели задача крайне сложная и зачастую требует нестандартного подхода. Торговля «паттернов» вполне может стать логичным развитием трендовых систем. Существуют и другие виды стратегий, однако, описание каждого из них - это тема для отдельной не менее интересной статьи. Самое главное на данном этапе развития помнить, что не нужно прятать и всячески оберегать свой первый алгоритм. С вероятностью 99,99% ничего нового и уникального в нем не будет, при этом реально высок шанс, что он и вовсе будет иметь незамеченные автором ошибки (например, «заглядывание в будущее» или «нулевые транзакционные издержки»). Поэтому не стесняйтесь показать свой алгоритм более опытным трейдерам, обсудить возможные ошибки и улучшения. В сообществе алготрейдеров много хороших людей, которые всегда будут рады помочь советом страждующему.

Этап 3 - Историческое тестирование

После того как в голове сложилась примерная картинка собственной стратегии (ну или как вариант позаимствованной на каком-нибудь форуме), пришло время перейти к историческому тестированию. Софта для тестирования сейчас достаточно много на любой цвет и вкус. Из наиболее популярных: Wealth-Lab, Omega Research, Amibroker, TSLab, Metastock. Практически все программы имеют одинаковый функционал (разве что Wealth-Lab выделяется наличием хорошего портфельного тестера), а вся разница состоит лишь во встроенном языке программирования и стоимости лицензии. Наиболее простой язык - EasyLanguage «зашит» в Omega Research, на его изучение уйдет немногим больше нескольких недель. Язык AFL встроен в Amibroker и также достаточно прост в изучении. Основным достоинством TSLab является интегрированный визуальный редактор, процесс обучения построению стратегий на нем вообще занимает считаные дни. В Wealth-Lab для построения стратегий можно использовать или язык С#, или строить стратегии с помощью специальных встроенных шаблонов (это также достаточно просто освоить). Вариантов доступно много, более подробные описания и инструкции можно найти на том же «пауке». Единственный полезный совет в данном случае - это начинать изучать именно ту платформу и тот язык программирования, на котором в будущем планируется запустить «боевого» робота на рынок. Это позволит здорово сэкономить время в дальнейшем. Автор данной статьи в конечном итоге (после опробирования как минимум 4 платформ) остановился на программе TSLab, которая в настоящий момент лучше всего адаптирована к российским реалиям. Второй основной момент в исторических тестах - это получение корректных данных, на которых, собственно, все тесты и планируется проводить. Для российских биржевых инструментов достаточно корректный и глубокий архив с данными можно найти на сайте www.finam.ru (раздел «Экспорт данных»), эти данные легко загружаются во все обозначенные выше платформы. Если тестирование планируется осуществлять не на российских инструментах, здесь ситуация немного сложнее - полный спектр исторических данных по зарубежным активам бесплатно достать вряд ли получится. И, как правило, приходится платить за подписку в каком-нибудь eSignal или IQfeed, и затем уже выкачивать нужные «тикеры».

Этап 4 - Запуск в реальную торговлю

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

1. Quik. Самый популярный в настоящий момент терминал для интернет-трейдинга (а доступ к «квику» сейчас предоставляет 99% отечественных брокеров) появился на рынке с незапамятных времен, тогда же появился и встроенный скриптовый язык «qpile», призванный решить задачу автоматизации торговых операций. Когда-то «qpile» действительно всерьез использовался трейдерами, ввиду фактического отсутствия альтернатив, однако те времена безвозвратно прошли. Сейчас альтернатив великое множество, и безнадежно устаревший «qpile» подавляющим большинством давно уже списан в архив. О преимуществах автоматизации через «квик» сказать сложно, а вот недостатков достаточно много: язык программирования «qpile» не универсальный -больше нигде не встречается и не используется, отсутствие удобного компилятора, готовые скрипты получаются очень громоздкие и тд.

2. Quik + коннектор + Wealth-Lab / Omega Research / Amibroker. Данная связка предполагает загрузку данных в режиме реального времени из «квика» в одну из обозначенных выше платформ, затем после генерации сигнала на открытие позиции - он будет через специальную программу - коннектор передан и исполнен в «квике». На первый взгляд схема может показаться сложной, однако еще несколько лет назад каждый второй алготрейдер осуществлял автоматизацию именно так. Главным преимуществом в данном случае является универсальность - стратегии, разработанные на изученной ранее платформе для исторического тестирования, без всяких модификаций и доработок (как-то перекодирование на другой язык и адаптация под другую платформу) отправляются в «боевой» режим. На самом деле это здорово экономит время и нервы, особенно для малознакомых с особенностями написания программного кода людей. Недостатков у «связки» также не мало: это и низкая отказоустойчивость, обусловленная наличием в цепи сразу трех элементов, и высокая цена (к примеру лицензионный Wealth-Lab обойдется трейдеру в $799 + один из предлагаемых коннекторов для «квика» в $500).

3. TSLab. Это платформа российских разработчиков, начала активно развиваться относительно недавно - с 2009 года. Сейчас организовано сотрудничество практически со всеми ведущими российскими брокерами (Финам, Алор, IT Invest, Открытие), благодаря чему «реал-тайм» торговлю можно осуществлять через брокеров-партнеров прямо из терминала TSLab, также имеется возможность прямого подключения к шлюзу биржи. Сильных сторон у TSLab достаточно много: простота освоения (благодаря удобному графическому редактору, написать робота способен человек без опыта программирования), оперативная бесплатная техподдержка на русском языке, для людей с опытом есть возможность работать сразу на языке C# используя TSLab API, высокая функциональность. Из недостатков, пожалуй, выделим невозможность эффективной реализации быстрых высокочастотных алгоритмов, также платформа имеет множество встроенных функций и, как следствие, достаточно требовательна к компьютерному «железу». Ежемесячная «реал-тайм» торговля через TSLab обойдется пользователю в 850 - 1250 рублей (в зависимости от выбранного брокера).

4. Stock#. Многими платформа «Стокшарп» воспринимается как конкурент TSLab, что в целом недалеко от истины. Но есть и ряд существенных отличий между двумя проектами. Платформа Stock# является в первую очередь библиотекой для создания торговых роботов на .NET (язык C#), что изначально предполагает уже наличие хороших навыков программирования. Stock# не предлагает готового решения - пользователь имеет возможность самостоятельно собрать собственного уникального робота с необходимым набором функций из готовых модулей библиотеки. Именно это и является ключевым отличием между двумя конкурентными проектами: TSLab больше располагает к себе далеких от «коддинга» людей, а Stock# привлекает уже «матерых» программистов. Из преимуществ отметим высокую функциональность, для физических лиц библиотека является бесплатной (впрочем, если вам нужна техподдержка, тут уже придется «раскошелиться»), возможность реализации быстрых «HFT-алгоритмов» и возможность их тестирования на тиковой истории. Из недостатков, как уже отмечалось ранее, сложность в освоении для непрофессионала, а также отсутствие хорошей бесплатной техподдержки.

5. Собственноручно написанный софт. Этот вариант используют уже профессиональные трейдеры, которым необходимо получить преимущество в скорости или функциональности, а кто-то просто таким образом удовлетворяет собственное стремление к идеалу. Для новичка польза в трате времени на создание собственного софта с нуля весьма сомнительна, особенно учитывая широкий выбор на рынке уже готовых решений. На наш всзляд лучше потратить его непосредственно на придумывание и реализацию торговой стратегии.

Вместо заключения

Конечно рассмотренные варианты не покрывают даже 1/3 от уже существующих на рынке платформ для автоматизации торговли. Тем не менее именно упомянутые варианты являются сейчас самыми распространенными. В целом же важно понимать, что алгоритмический трейдинг не является панацеей от всех проблем. Войдя в ряды алгоритмических трейдеров, вы не начнете сразу зарабатывать стабильные деньги, но как минимум на шаг к этому приблизитесь. Финансовый рынок является одной из самых конкурентных в мире сред, чтобы выжить здесь необходимо постоянно бежать, не отставая от оппонентов. Поэтому будьте готовы постоянно совершенствоваться и развиваться. Один раз сделав робота, потом всю жизнь отдыхать на островах на его доходы - совершенно точно не получится.

Если Вам понравилась статья, Вы можете поддержать нас в ТОПе финансовых блогов, просто кликнув по ссылке.

www.algolaba.com

0 0