Алгоритмический трейдинг

5 сентября 2012 г.

Сохранить ru.trade :
Алгоритмический трейдинг

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

Основное отличие алгоритмического подхода от "ручной", "интуитивной" торговли заключается в полной автоматизации совершения сделок, а значит, исключении человеческого фактора в принятии торговых решений.

Алгоритмическая торговля прочно обосновалась на всех мировых биржевых площадках, и сегодня уже ни у кого не возникает вопроса – применять ли алгоритмы в трейдинге или торговать по старинке, интуитивно.

Вопрос стоит иначе: какие алгоритмы торговать.

Применение простых и незатейливых алгоритмов, которые еще совсем недавно хорошо работали, сегодня не оправдывают себя.

Каждый алгоритм эксплуатирует какую-либо конкретную неэффективность рынка. Поиск таких неэффективностей и их формализация в алгоритм и составляет основное содержание алгоритмического подхода к торговле.  Такие неэффективности – весьма ограниченный ресурс, и их поиск напоминает поиск бриллианта в огромной массе пустой породы. Но если поиск увенчался успехом – это потом долгое время позволяет зарабатывать на хлеб алгоритмическому трейдеру. Главная беда с простыми алгоритмами – их простота,  а следовательно, доступность большому числу страждущих, и если вчера эту "булку хлеба" кушали единицы, то сегодня – тысячи, и поскольку рынки работают как система сообщающихся сосудов, в результате каждому достается уже по крошке. Так в конечном итоге заканчивает свою жизнь любой, даже самый успешный алгоритм – это только вопрос времени.

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

Для тестирования и оптимизации торговых стратегий, построенных на таких алгоритмах, компания Церих, например, использует платформу WealthLab .NET, MS Visual Studio, а также технологию массивно-параллельных расчетов CUDA.

Использование технологии CUDA в финансах и трейдинге – это не дань моде, а требование времени. Дело в том, что использование этой технологии открывает пути решения очень многих ранее недоступных задач, и в конечном итоге определяет конкурентное преимущество.

Одна из допускающих эффективное распараллеливание задач алгоритмической торговли, – это расчет технических индикаторов на длинных рядах данных в реальном времени. Стратегии, исполняющиеся на малых таймфреймах (вплоть до тиковых) и использующие в своей логике текущие значения индикаторов, требуют ресурсоемких вычислений. Приемлемой скорости можно достичь с помощью CUDA. Например, распараллеливание на CUDA расчета такой популярной характеристики временных рядов, как среднеквадратическое отклонение, позволяет достичь увеличения скорости вычисления в ~100 раз. В отличие от среднеквадратического отклонения, вычисление параметра Хёрста временного ряда – более амбициозная задача. Этот параметр характеризует степень персистентности (трендовости) рынка, позволяя получить основания для переключения между трендоследящими и контртрендовыми стратегиями. Расчет параметра Хёрста также производится на графических ядрах параллельно.

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

Корректное решение состоит в тестировании стратегии на множестве псевдорядов, порожденных подходящей (и оцененной по реальным данным) модели  (метод Монте-Карло). Церих  сделал ставку на модели класса ARFIMA, алгоритмы оценивания и генерации которой исполняются на графических CUDA-ядрах. Целесообразность использования CUDA в тестировании стратегий объясняется тем, что вполне ясное представление о распределении доходностей стратегии можно получить, исполняя стратегию на тысячах, а то и сотнях тысяч сгенерированных рядов.

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

CUDA не только позволяет тестировать существующие стратегии, но и фактически вносит вклад в создание новых: задачи оптимизации параметров стратегий требуют не меньше вычислительных мощностей, чем тестирование стратегий.

Современные алгоритмы роботизированной торговли, как правило, зависят от нескольких параметров, каждый из которых может принимать значения из определенного диапазона. Допустимые множества для некоторых параметров могут включать тысячи элементов. Процедура оптимизации стратегии состоит в исполнении стратегии на множестве всех допустимых комбинаций параметров и выявлении наилучшего (с точки зрения доходности, риска и т. п.) сочетания параметров. Без оптимизации невозможно представить работу алгоритмического трейдера, однако если число параметров велико, а диапазоны допустимых значений параметров широки, то время оптимизации может исчисляться в днях, неделях и даже месяцах счета. И здесь на помощь приходит CUDA. Сегодня можно не просто оптимизировать параметры стратегий однократно, но и делать это динамически, в реальном времени, адаптируясь под изменяющееся поведение рынка.

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

Уже сегодня алгоритмическую торговлю невозможно представить себе без ресурсоемких вычислений, требующих значительного времени исполнения.

Тенденция к обработке все больших массивов данных в трейдинге только нарастает, а значит, технология CUDA будет иметь все больше сторонников среди алгоритмических трейдеров, а процесс торговли – все больше зависеть от массивно-параллельных расчетов.
Ru.Trade - Биржевая торговля и Инвестиции на Финансовых рынках.

0 коммент.:

Отправить комментарий