Доброй ночи.
После отпуска я много размышлял о том, почему же я, при таких отличных результатах на тестах, да ещё и с кучей перекрёстных проверок, никак не решусь запустить торговлю на всю котлету. А потому что не хочу быть слившим :) далее — подробнее.
Собрал в кучку мысли об этом, и фиксирую их для моей истории.
Граница между уверенностью и самоуверенностью
В том, что разработанный мною подход работает в краткосрочной перспективе — у меня нет сомнений, это было проверено на живом рынке и живыми торгами. Однако, тут самое время
собирать камни вспомнить о моей цели: абсолютно автономная торговая система, за которой не нужно присматривать месяцами или даже годами. И вот в том, что я этой цели достиг — я вовсе не уверен. Ибо подход слишком сложен, и как бы хорошо выдуманная мной система ни зарабатывала на тестах и даже в первое время реальной торговли — сливать она будет ещё быстрее, если звёзды (ха-ха-ха, и тут астрология) образуют, скажем так, новую конфигурацию. Эта самая ситуация регулярно происходит и с трейдерами, и, тем более, алготрейдерами, которые тем более не имеют возможности так же оперативно подстроиться под изменения в окружающей действительности, как и человеческий мозг.
Почему же тогда люди сливают депозиты, если это так? Думаю, потому что самоуверенны слишком, особенно, «живущие с рынка» — мне прямо покорябало слух, когда я такое издевательство над языком услышал; так их с тех пор и зову — «срыночные». Самоуверенность проистекает от незнания и от неспособности / невозможности увидеть всю картину целиком. Действительно, если некто придумал торговую систему и начал ей торговать — без разницы, руками или алгоритмом, — и она приносит прибыль — возникает сильный соблазн влить в неё побольше. И чем дольше она торговала прибыльно, тем больше доверия к ней и терпимости к просадкам, которые, увы, могут оказаться не просадками, а потерей капитала. Маржин-колл близок тогда, когда его совсем не ждёшь.
Собственно, я ищу эту уверенность. Может оказаться и так, что на рынках её не найти, но в это нужно поверить и убедиться лично. Время такое — верить никому нельзя, хотя это утверждение справедливо для любого времени. Огромное количество людей убеждает себя и других в обратном — что заработать на рынках легко и просто. Эпизодически — скорее «да», но 50/50, а систематически всё куда хуже. Кто-то говорит, что вопрос слива — это вопрос времени, а другие продолжают бодать стаканы и свечные графики. Первые поверили, что стабильно и долговременно зарабатывать на рынках невозможно, вторые пока ещё не разочаровались в своей обратной вере.
Подгонка и overfitting
Нет никаких сомнений в том, что мои торговые системы, как и подавляющее большинство торговых систем и прочих трейдеров, вне зависимости от того, как они торгуют, суть подгонка под определённый рынок и его условия. Даже если торговая система одинаково хорошо зарабатывает на нескольких различных инструментах, это не меняет сути — просто она подогнана под несколько. Всё это ставит меня перед очевидным фактом: рано или поздно возникнет ситуация, когда ТС, найденная методом подгонки, перестанет работать в прибыль. Может, временно, а может, и навсегда. Впрочем, и за «временно» она вполне справится с тем, чтобы слить всё, что нажито непосильным трудом. Своевременно отправлять в хоспис умирающую и запускать свеженькую — это отдельная грань трейдерского искусства, и по этому пути я только начал движение, и не очень уверен, что хочу продолжать. Почему? Потому что отключать и включать торговые системы по их статистическим параметрам — это очередная подгонка, только более высокого уровня. Всё ещё больше запутывается, и кто меня потом будет распутывать?
Отсюда и растут рожки и хвостики моих желаний поиска адаптивных систем, которые подстраиваются под рынок.
Подробнее о подгонке
Чтобы понять, как можно — и возможно ли — построить ТС, которая заведомо не будет подогнана под рынок / инструмент, нужно понять суть вопроса. Для себя я определил критерий «подгоночного» класса торговых систем, про который уже писал и ещё раз упомяну ниже. А чтобы было яснее, возьму такой пример.
Допустим, есть некоторая ТС, для которой жёстко определены условия входа в позицию и выхода из неё. Не важно, чем эти условия определены — подойдёт пример из классики со средними скользящими и их пересечениями. Что бы там на рынке ни происходило, торговые сигналы будут детерминированы поведением этих скользящих. Я для себя называю такие системы линейными. Их алгоритмы входа и алгоритмы выхода не меняются в зависимости от состояния рынка и движения цены. Меняются лишь точки входа, но сами алгоритмы являются константой.
Подгоняй мы лишь точку входа или точку выхода — это было бы полбеды, но, оптимизируя такую торговую систему, мы подгоняем
и точку входа, и точку выхода. Это и является проблемой, на мой взгляд, потому что мы одну вероятность (допустим, 0.5) умножаем на другую (допустим, 0.5) и результат движется совсем не в том направлении, который нам интересен, а ровно наоборот (0.25).
В этом же, кстати говоря, и проблемы применения НС и ML в трейдинге. Они предскажут точку совершения сделки
без связи с парной точкой фиксации сделки.
Если убрать из такой системы детерминированное правило выхода (как в случае со средними скользящими), заменив его на стоп, то получим уже систему, которую я называю полу-нелинейной. Если стоп будет скользящим, получим уже (условно) нелинейную систему. Эта классификация спорна, а я хочу лишь подчеркнуть, что если правила входа и выхода — статические, то такие торговые системы я бы называл линейными, а если динамические — то нелинейными.
Более и менее подгоняемые системы
Суть в том, что когда мы на этапе тестирования торговой системы на истории детерминировали правила входа и выхода, то такая система будет более подгоняема, чем если бы мы детерминировали только правило входа или (пусть и звучит безумно) только правило выхода. Если мы знаем, когда мы войдём в сделку и когда выйдем из неё, как в случае скользящих, вероятность подогнать параметры будет выше, а вероятность поломки такой системы на реальных данных — выше. А если у нас детерминирован только вход, а выход обусловлен динамикой позиции, то тогда у нас больше шансов найти повторяемые рыночные паттерны, вход на которых даёт большую вероятность успеха.
Не подгоняемых систем я не знаю. А вы?
Итого и цели
Наверное, уже понятно, что я хочу сказать. Успешность сделки зависит от входа и выхода, но только лишь хороший вход не гарантирует успешность сделки. Быть может, вероятность распределена в ином соотношении, а не 0.5 на вход и 0.5 на выход, и очевидно, что вход влияет на выход, но по дороге из баров от входа до выхода у детерминированных линейных систем есть, как правило, несколько возможностей, которые они — эти системы — неминуемо пропустят в силу своей детерминированности.
Изложенное выше — продукт моего желания получить кривую эквити, которая больше похожа на лестницу, чем на забор.
Минутка философии
Не так, чтобы было сильно сложно предсказывать точки входа, вероятность выхода в прибыль или в ноль для которых существенна. Но это совершенно другая архитектура мышления — она не про «заработать больше», а про «не закрыться в убыток». И она в другой парадигме мышления, которой вроде как не учат. А чему учат? Планируйте вход и выход одновременно. Рассчитывайте соотношение прибыль/риск. Выставляйте стоп-лоссы и тейк-профиты. Видите ли, если бы мы сразу начали торговать алгоритмически — возможно, это было бы по-другому. Но вначале были ручные трейдеры. И они не могли думать о том, что делать с позицией после того, как вошли в неё. В голове всё быстро не посчитаешь, да и позиций, видимо, не одна. Алготрейдеру хорошо бы вынести из головы все парадигмы ручной торговли и начать с чистого листа или хотя бы залить прошивку без багов, но увы. Имеем то, что имеем.
Про сливы и мои опасения
У меня уже были и недельные обороты в 60 млн от алготорговли акциями, и ежедневная прибыль около 15к на депо 2млн, и сотни сделок на одном минутном баре туда-обратно с минусом в 40-50 тысяч, и проскальзывания от всаживания в одну акцию 6 млн, и многое другое, и это в 20 и 21 году. Так что я не то, что бы не торгую — я не торгую тем капиталом, которым бы хотел. Я никогда не сливал и у меня нет вот этих душещипательных историй из прошлого, и мне хотелось бы в таком состоянии и остаться, даже если торговать в том режиме, в котором мне хочется, и не получится. Значит, трейдинг не для меня и попробуем что-нибудь другое.
Более 15% от депо у меня просадок не было и хочется, чтобы дальше было только лучше. А для этого нужна уверенность, а не самоуверенность, и минимизация влияния подгонки. То ощущение, когда на собственном опыте понимаешь, что лучше долго запрягать, чтобы потом быстро ехать.
И, как обычно, доброй ночи вам и приятных снов и берегите капитал — он у вас один! :)
«Computer Analysis of the Futures Market»
Charles LeBeau and David W.Lucas.
Эти Друзья утверждают, что в тестах мы тестируем не входы, а Выходы и далее по тексту.
Книжка не плохая, для любителей навного тестирования.
Чтобы дальнейшие мои мысли были наглядно-понятны, прокомментирую их в терминах вот такой простенькой задачи: едет авто и надо определять его координаты, только мы знаем лишь уравнение равномерного движения с постоянной скоростью. Вход/выход — банально получить 2 координаты.
1. Авто едет равномерно и по нашей оси X. Идеальный вариант. Все считается верно. Аналогия для биржи — наш алгоритм дает прибыль.
2. Авто продолжает равномерно ехать, но не по оси X. Достаточно ввести поправочный коэффициент в расчеты и они вновь верны. Аналогия для биржи — оптимизация параметров того же алгоритма.
Оба первых пункта — это область линейного решения. Проблема вовремя понять изменение движения. И никто не гарантирует, что даже эти два банальных случая не перемешиваются неизвестным нам способом.
3. Авто продолжает равномерно ехать, но не по оси X и вдобавок — дорога начинает петлять. Если знать последовательность и продолжительность изгибов — то можно ввести динамические корректирующие коэффициенты и получить приемлемый результат. Если знать. Аналогия для биржи — смена интервала, оптимизация параметров того же алгоритма для нового интервала. Точность решений снижается.
4. Авто начинает ускоряться дискретным образом. Все ваши линейные расчеты вместе с оптимизированными параметрами, динамическими коэффициентами, разными интервалами и проч. — идут в топку. Аналогия для биржи — оптимизация параметров того же алгоритма по сути ничего не дает, произносятся слова «рынок изменился», «мои боты сломались», «волатильность неправильная», «мои стопы выносят — это заговор».
5. Ну и самый красивый и реальный вариант — авто совмещает все перечисленные выше действия, плюс иногда водителю просто хочется (аналог новостей) получить драйв или подрезать кого-то. Аналог для биржи простой — это и есть движение цены.
Последние три случая — это нелинейная область решений. Просто коэффициентом, оптимизацией, интервалом и проч. здесь решение не улучшить, требуется именно нелинейный член (в хорошем смысле этого слова) в расчетах. Аналог для биржи возможен в прямом смысле, но требует корректного выбора интервала и понимания что точность расчета изменилась.
Получилось много текста, ограничусь этими мыслями, хотя хотел сказать немного больше и еще немного в бок...
Какие же выводы?
— в алго нужен инициируемый дискретно блок, определяющий текущий характер движения цены
— одной линейной областью (в моей классификации) не обойтись, и риск-менеджмент для нелинейной области иной
— по хорошему: нельзя зацикливаться на конкретном интервале, это тоже параметр (за исключением совсем коротких фреймов), надо иметь несколько типов расчета под разные характеры движения цены; как вариант это можно отсекать фильтром и банально не торговать
— система из большого количества инструментов, интервалов и проч. смягчает часть нюансов, но одновременно и уменьшает управляемость от них по той же причине.