Избранное трейдера Кирилл Глухов
Не подумайте плохого в части нормальности, речь пойдет не о психиатрии, а об известном в теории вероятностей нормальном распределении
А точнее даже не о нем самом, а об известной центральной предельной теореме (ЦПТ) применительно к ценам. Что такое центральная предельная теорема в ее классическом виде?
Пусть нам дана некоторая сумма большого числа случайных величин Х=х1+…+хN где каждое слагаемое имеет конечную и ненулевую дисперсию (как мы увидим далее в приложении к ценам это условие выполняется). Человечество давно еще с 18 века (Муавр и Лаплас) заинтересовал вопрос распределения случайной величины Х или хотя бы его более-менее точного приближения.
Не будем слишком строги в определениях всяких сходимостей и их скоростей, а сформулируем классическую ЦПТ в виде интуитивно понятного, но нестрогого термина «близости». Так вот, если xi – независимы (кто хочет может посмотреть строгое определение независимости, а для менее пытливых скажу только, что корреляция двух независимых случайных величин с конечными дисперсиями – нуль, хотя и обратное не верно), то распределение Х при достаточно больших N практически не отличается от нормального распределения со средним А и дисперсией D, где А – сумма средних x
Решил начать писать небольшие заметки по алгоритмической торговле и всему что с ней связано. Возможно, когда-нибудь расширю, склею и опубликую в виде книжки. Пока же это просто наброски заметок, сделанные на скорую руку.
Можно часто слышать от тех, кто торгует алгоритмически, да и просто систематически, такие понятия как «оверфиттинг», «курвафиттинг», «зафит» и прочие ругательства с корнем «фит». Что все это значит?
На самом деле, все эти слова, как правило, используются для описания одного и того же явления, являющегося врагом всех трейдеров, торгующих систематически и пытающихся оценить исторический перформанс своих торговых логик — а именно, что «живой» аут-оф-сампл перформанс на реальном счете, как правило, хуже ожиданий, полученных ими при проверке своих идей на истории. Например, при тестировании торговой логики на истории трейдер с помощью своей модели «зарабатывал» 30% годовых, а в реале может в среднем иметь 10% годовых. Разница 20% годовых — может объясняться именно оверфиттингом (если нет других факторов — например, некорректный учет комиссионных и проскальзываний, или ошибка в торговом коде; но прочие факторы легко устранить, в отличие от оверфиттинга). На картинке в начале статьи — пример перформанса некоторого фонда в бэктесте и в реальности, наглядно иллюстрирующий написанное выше.
Оверфиттинг является следствием комбинации одного или нескольких из следующих факторов, положительно влияющих на бэктест (результаты прогонки модели на истории), что и создает у трейдера завышенные ожидания от своей модели. В этой части мы рассмотрим основные источники оверфиттинга, в следующей — поговорим о способах избежания или минимизации оверфиттинга при историческом тестировании моделей.
Торгую на Американском фондовом рынке с Interactive Brokers (IB) более трех лет на сегодняшний день используя разные стратегии. До недавнего времени все это было вручную, внутридневка и средний срок. Моя торговая жизнь изменилась, когда я, закончив курсы по созданию и алгоритмизации торговых систем с использованием платформы TSLab, решила выйти на Америку со своими роботами.
Вооружившись знаниями с курса по поиску рыночных закономерностей и отточив навык по нахождению смещения вероятности в своей торговой системе, я создала портфель из десятка роботов и горела нетерпением запустить их на своем боевом счету у Interactive Brokers. В процессе обучения на курсе я проходила практику на Российском срочном рынке в течение нескольких месяцев, поэтому сложности как настроить и запустить агентов в платформе TSLab не возникало. Меня интересовало другое- как сконнектировать TSLab с платформой брокера Trader Workstation (TWS), так как она не является особо user-friendly, достаточно громоздка и не совсем интуитивно понятна, а для алготрейдинга нужно только торговать через эту платформу. Вот тут-то и оказалось, что кроме краткого руководства по подключению TSLab к брокеру IB особо ничего и нет. Перелопатив сотни страниц интернета, русско- и англоязычных блогов и сайтов, я нашла часть необходимой информациии, а недостающая часть была получена методом тыка, путем проб и ошибок в процессе запуска и работы на реале.
Доклад «Оптимизация портфеля алгоритмических стратегий»
1. Введение
В чем состоит цель подобной оптимизации? Представим, что у нас есть набор алгоритмов, каждый из которых обладает некоторыми статистическими свойствами, из которых наиболее важными для нас являются доходность и максимальная величина просадки. В основе каждого из алгоритмов лежат разные стратегии, которые, тем не менее, могут быть коррелированы между собой в разной степени, торговля также может вестись на разных инструментах. В качестве примера приведу характеристики стратегий, которые были разработаны нашей командой и применяются в боевых торгах в настоящее время:
Так как свойства каждого из алгоритмов отличаются, возникает проблема: каким образом распределить между ними доступный капитал для того чтобы:
1. Максимизировать доход при заданном уровне риска ( то есть максимальной величине просадки)
2. Минимизировать риск при заданной доходности
Если дать, например равные доли капитала каждому алгоритму, то, очевидно, что такое распределение не будет оптимальным, так как мы не учитываем характеристики, присущие стратегиям. Не будет оптимальным и тот случай, когда мы, например, выделяем капитал пропорционально относительной доходности каждого алгоритма, здесь мы игнорируем значения волатильности, то есть риска, стратегий.
2. Модель Марковица
Задачу оптимизации попробуем решить, применив теорию оптимального портфеля, разработанную Марковицем, точнее некоторые последующие ее модификации. Обычно данная теория применяется для долгосрочного инвестиционного портфеля, состоящего из различных активов, например акций. Кратко суть теории.
Метод ГП по своим свойствам потенциально мог бы являться универсальным методом поиска алгоритма оптимизирующего заданную целевую функцию. И я как любитель эволюционной оптимизации не мог пройти мимо такой заманчивой идеи.
Торговый алгоритм ищу в виде набора элементарных функционалов. Каждый функционал может иметь любое количество входов и по крайней мере один выход. Вход и выход характеризуется типом данных. Выход одного функционала может быть подан на вход другого при условии, что тип данных входа и выхода совпадает.
Например, функционал вычисления минимума/максимума в заданном окне получает на вход интересующую величину и значение размера окна, а также имеет 4 выхода: минимум/максимум, позиция точки минимума/максимума в окне.
ГП должен подобрать функционалы и связать их входы и выходы так, чтобы в итоге получился единственный выход типа сигнал (сигнал есть либо нет), который и будет являться сигналом на покупку/продажу. Связанные функционалы с общем случае образуют граф. Целевой функцией является критерий Шарпа с поправкой — наказанием за информационную сложность алгоритма.
Я никогда раньше не торговал по Camarilla Equation, и совсем недавно только прочитал про эти уровни. Перед открытием торгов, начертил уровни H3 L3, было любопытно посмотреть как будет цена себя вести относительно них.
...
Поставил заявку по Камарилла, и через некоторое время был удивлён, как точно цена сходила!
Результат: на 300п. профит больше. Приятно. Жаль только, что всего 10 лотами зашёл… Сегодня буду изучать Camarilla Equation :)
P.S. — спасибо Gugenot!