bascomo
bascomo личный блог
17 декабря 2023, 00:04

Почти всё есть курвафиттинг

Доброй ночи.

После отпуска я много размышлял о том, почему же я, при таких отличных результатах на тестах, да ещё и с кучей перекрёстных проверок, никак не решусь запустить торговлю на всю котлету. А потому что не хочу быть слившим :) далее — подробнее.

Собрал в кучку мысли об этом, и фиксирую их для моей истории.

Почти всё есть курвафиттинг

Граница между уверенностью и самоуверенностью
В том, что разработанный мною подход работает в краткосрочной перспективе — у меня нет сомнений, это было проверено на живом рынке и живыми торгами. Однако, тут самое время собирать камни вспомнить о моей цели: абсолютно автономная торговая система, за которой не нужно присматривать месяцами или даже годами. И вот в том, что я этой цели достиг — я вовсе не уверен. Ибо подход слишком сложен, и как бы хорошо выдуманная мной система ни зарабатывала на тестах и даже в первое время реальной торговли — сливать она будет ещё быстрее, если звёзды (ха-ха-ха, и тут астрология) образуют, скажем так, новую конфигурацию. Эта самая ситуация регулярно происходит и с трейдерами, и, тем более, алготрейдерами, которые тем более не имеют возможности так же оперативно подстроиться под изменения в окружающей действительности, как и человеческий мозг.
Почему же тогда люди сливают депозиты, если это так? Думаю, потому что самоуверенны слишком, особенно, «живущие с рынка» — мне прямо покорябало слух, когда я такое издевательство над языком услышал; так их с тех пор и зову — «срыночные». Самоуверенность проистекает от незнания и от неспособности / невозможности увидеть всю картину целиком. Действительно, если некто придумал торговую систему и начал ей торговать — без разницы, руками или алгоритмом, — и она приносит прибыль — возникает сильный соблазн влить в неё побольше. И чем дольше она торговала прибыльно, тем больше доверия к ней и терпимости к просадкам, которые, увы, могут оказаться не просадками, а потерей капитала. Маржин-колл близок тогда, когда его совсем не ждёшь.

Собственно, я ищу эту уверенность. Может оказаться и так, что на рынках её не найти, но в это нужно поверить и убедиться лично. Время такое — верить никому нельзя, хотя это утверждение справедливо для любого времени. Огромное количество людей убеждает себя и других в обратном — что заработать на рынках легко и просто. Эпизодически — скорее «да», но 50/50, а систематически всё куда хуже. Кто-то говорит, что вопрос слива — это вопрос времени, а другие продолжают бодать стаканы и свечные графики. Первые поверили, что стабильно и долговременно зарабатывать на рынках невозможно, вторые пока ещё не разочаровались в своей обратной вере.

Подгонка и overfitting
Нет никаких сомнений в том, что мои торговые системы, как и подавляющее большинство торговых систем и прочих трейдеров, вне зависимости от того, как они торгуют, суть подгонка под определённый рынок и его условия. Даже если торговая система одинаково хорошо зарабатывает на нескольких различных инструментах, это не меняет сути — просто она подогнана под несколько. Всё это ставит меня перед очевидным фактом: рано или поздно возникнет ситуация, когда ТС, найденная методом подгонки, перестанет работать в прибыль. Может, временно, а может, и навсегда. Впрочем, и за «временно» она вполне справится с тем, чтобы слить всё, что нажито непосильным трудом. Своевременно отправлять в хоспис умирающую и запускать свеженькую — это отдельная грань трейдерского искусства, и по этому пути я только начал движение, и не очень уверен, что хочу продолжать. Почему? Потому что отключать и включать торговые системы по их статистическим параметрам — это очередная подгонка, только более высокого уровня. Всё ещё больше запутывается, и кто меня потом будет распутывать?
Отсюда и растут рожки и хвостики моих желаний поиска адаптивных систем, которые подстраиваются под рынок.

Подробнее о подгонке
Чтобы понять, как можно — и возможно ли — построить ТС, которая заведомо не будет подогнана под рынок / инструмент, нужно понять суть вопроса. Для себя я определил критерий «подгоночного» класса торговых систем, про который уже писал и ещё раз упомяну ниже. А чтобы было яснее, возьму такой пример.
Допустим, есть некоторая ТС, для которой жёстко определены условия входа в позицию и выхода из неё. Не важно, чем эти условия определены — подойдёт пример из классики со средними скользящими и их пересечениями. Что бы там на рынке ни происходило, торговые сигналы будут детерминированы поведением этих скользящих. Я для себя называю такие системы линейными. Их алгоритмы входа и алгоритмы выхода не меняются в зависимости от состояния рынка и движения цены. Меняются лишь точки входа, но сами алгоритмы являются константой.
Подгоняй мы лишь точку входа или точку выхода — это было бы полбеды, но, оптимизируя такую торговую систему, мы подгоняем и точку входа, и точку выхода. Это и является проблемой, на мой взгляд, потому что мы одну вероятность (допустим, 0.5) умножаем на другую (допустим, 0.5) и результат движется совсем не в том направлении, который нам интересен, а ровно наоборот (0.25).
В этом же, кстати говоря, и проблемы применения НС и ML в трейдинге. Они предскажут точку совершения сделки без связи с парной точкой фиксации сделки.
Если убрать из такой системы детерминированное правило выхода (как в случае со средними скользящими), заменив его на стоп, то получим уже систему, которую я называю полу-нелинейной. Если стоп будет скользящим, получим уже (условно) нелинейную систему. Эта классификация спорна, а я хочу лишь подчеркнуть, что если правила входа и выхода — статические, то такие торговые системы я бы называл линейными, а если динамические — то нелинейными.

Более и менее подгоняемые системы
Суть в том, что когда мы на этапе тестирования торговой системы на истории детерминировали правила входа и выхода, то такая система будет более подгоняема, чем если бы мы детерминировали только правило входа или (пусть и звучит безумно) только правило выхода. Если мы знаем, когда мы войдём в сделку и когда выйдем из неё, как в случае скользящих, вероятность подогнать параметры будет выше, а вероятность поломки такой системы на реальных данных — выше. А если у нас детерминирован только вход, а выход обусловлен динамикой позиции, то тогда у нас больше шансов найти повторяемые рыночные паттерны, вход на которых даёт большую вероятность успеха.
Не подгоняемых систем я не знаю. А вы?

Итого и цели
Наверное, уже понятно, что я хочу сказать. Успешность сделки зависит от входа и выхода, но только лишь хороший вход не гарантирует успешность сделки. Быть может, вероятность распределена в ином соотношении, а не 0.5 на вход и 0.5 на выход, и очевидно, что вход влияет на выход, но по дороге из баров от входа до выхода у детерминированных линейных систем есть, как правило, несколько возможностей, которые они — эти системы — неминуемо пропустят в силу своей детерминированности.

Изложенное выше — продукт моего желания получить кривую эквити, которая больше похожа на лестницу, чем на забор.

Минутка философии
Не так, чтобы было сильно сложно предсказывать точки входа, вероятность выхода в прибыль или в ноль для которых существенна. Но это совершенно другая архитектура мышления — она не про «заработать больше», а про «не закрыться в убыток». И она в другой парадигме мышления, которой вроде как не учат. А чему учат? Планируйте вход и выход одновременно. Рассчитывайте соотношение прибыль/риск. Выставляйте стоп-лоссы и тейк-профиты. Видите ли, если бы мы сразу начали торговать алгоритмически — возможно, это было бы по-другому. Но вначале были ручные трейдеры. И они не могли думать о том, что делать с позицией после того, как вошли в неё. В голове всё быстро не посчитаешь, да и позиций, видимо, не одна. Алготрейдеру хорошо бы вынести из головы все парадигмы ручной торговли и начать с чистого листа или хотя бы залить прошивку без багов, но увы. Имеем то, что имеем.

Про сливы и мои опасения
У меня уже были и недельные обороты в 60 млн от алготорговли акциями, и ежедневная прибыль около 15к на депо 2млн, и сотни сделок на одном минутном баре туда-обратно с минусом в 40-50 тысяч, и проскальзывания от всаживания в одну акцию 6 млн, и многое другое, и это в 20 и 21 году. Так что я не то, что бы не торгую — я не торгую тем капиталом, которым бы хотел. Я никогда не сливал и у меня нет вот этих душещипательных историй из прошлого, и мне хотелось бы в таком состоянии и остаться, даже если торговать в том режиме, в котором мне хочется, и не получится. Значит, трейдинг не для меня и попробуем что-нибудь другое.
Более 15% от депо у меня просадок не было и хочется, чтобы дальше было только лучше. А для этого нужна уверенность, а не самоуверенность, и минимизация влияния подгонки. То ощущение, когда на собственном опыте понимаешь, что лучше долго запрягать, чтобы потом быстро ехать.


И, как обычно, доброй ночи вам и приятных снов и берегите капитал — он у вас один! :)
26 Комментариев
  • _sg_
    17 декабря 2023, 01:16

    «Computer Analysis of the Futures Market»
    Charles LeBeau and David W.Lucas.

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

    Книжка не плохая, для любителей навного тестирования.

  • MatrixLis
    17 декабря 2023, 01:18
    Какие такие «отличные результаты на тестах»? Какой фактор восстановления? 
  • Владимиров Владимир
    17 декабря 2023, 05:42
    Проблемы, о которых ты пишешь, обусловлены простой причиной — нет ТОЧНОГО решения для движения цены. Той волшебной формулы, закодив которую мы получили бы кнопку БАБЛО. 
       Чтобы дальнейшие мои мысли были наглядно-понятны, прокомментирую их в терминах вот такой простенькой задачи: едет авто и надо определять его координаты, только мы знаем лишь уравнение равномерного движения с постоянной скоростью. Вход/выход — банально получить 2 координаты.
       1. Авто едет равномерно и по нашей оси X. Идеальный вариант. Все считается верно. Аналогия для биржи — наш алгоритм дает прибыль. 
       2. Авто продолжает равномерно ехать, но не по оси X. Достаточно ввести поправочный коэффициент в расчеты и они вновь верны. Аналогия для биржи — оптимизация параметров того же алгоритма.
       Оба первых пункта — это область линейного решения. Проблема вовремя понять изменение движения. И никто не гарантирует, что даже эти два банальных случая не перемешиваются неизвестным нам способом.
       3. Авто продолжает равномерно ехать, но не по оси X и вдобавок — дорога начинает петлять. Если знать последовательность и продолжительность изгибов — то можно ввести динамические корректирующие коэффициенты и получить приемлемый результат. Если знать. Аналогия для биржи — смена интервала, оптимизация параметров того же алгоритма для нового интервала. Точность решений снижается. 
       4. Авто начинает ускоряться дискретным образом. Все ваши линейные расчеты вместе с оптимизированными параметрами, динамическими коэффициентами, разными интервалами и проч. — идут в топку. Аналогия для биржи — оптимизация параметров того же алгоритма по сути ничего не дает, произносятся слова «рынок изменился», «мои боты сломались», «волатильность неправильная», «мои стопы выносят — это заговор».
       5. Ну и самый красивый и реальный вариант — авто совмещает все перечисленные выше действия, плюс иногда водителю просто хочется (аналог новостей) получить драйв или подрезать кого-то. Аналог для биржи простой — это и есть движение цены. 
       Последние три случая — это нелинейная область решений. Просто коэффициентом, оптимизацией, интервалом и проч.  здесь решение не улучшить, требуется именно нелинейный член (в хорошем смысле этого слова) в расчетах. Аналог для биржи возможен в прямом смысле, но требует корректного выбора интервала и понимания что точность расчета изменилась. 
       Получилось много текста, ограничусь этими мыслями, хотя хотел сказать немного больше и еще немного в бок...
       Какие же выводы? 
        — в алго нужен инициируемый дискретно блок, определяющий текущий характер движения цены
        — одной линейной областью (в моей классификации) не обойтись, и риск-менеджмент для нелинейной области иной
        — по хорошему: нельзя зацикливаться на конкретном интервале, это тоже параметр (за исключением совсем коротких фреймов), надо иметь несколько типов расчета под разные характеры движения цены; как вариант это можно отсекать фильтром и банально не торговать
        — система из большого количества инструментов, интервалов и проч. смягчает часть нюансов, но одновременно и уменьшает управляемость от  них по той же причине.
    • 22022022
      17 декабря 2023, 11:46
      Владимиров Владимир, да рынок это не просто 1 график ohlc, есть еще волатильность вертикальная, волатильность горизонтальная, скорость с которой он перемещается от точек buy и  sell, итп (неизвестные) характеристики. Теоретический адаптивная МА это грааль. Но исходя из того, что мы по прежнему не знаем что есть «Тренд», то у одного и того же графика имеется множество решений





      Добавим сюда переходы адаптивного периода к периоду. Переход должен быть плавным или скачкообразный? Если подумать логический то плавным. Но там где плавный переход там запаздывания.
      • Владимиров Владимир
        17 декабря 2023, 12:42
        22022022, «Что есть тренд» (в терминах конкретного интервала) мы все знаем, особенно легко это делается по левой части графика цены ))). А вот определить достаточно быстро и не пост-фактум его наличие и его окончание — это большой и нетривиальный практический вопрос. 
           «горизонтальная волатильность»… Это какой-то новый для меня термин… Наверное вы вкладываете в этот термин разумный смысл, но чтобы вас понимали другие — все же лучше использовать общепринятую терминологию. Классически волатильность — это изменение цены от какого-то параметра, обычно параметром является период времени. С этой точки зрения волатильность сводится к разнице High и Low.  
      • Replikant_mih
        17 декабря 2023, 13:23
        22022022, Где-то можно про это подробней почитать? Как-то будто бы это перекликается с некоторыми моими идеями, но не уверен, что правильно понял, про что здесь.
        • 22022022
          17 декабря 2023, 15:41
          Replikant_mih, думаю да, сам не читал. Всего лишь спекуляция и личный опыт. Линейные ТСки которые откурвлены под определенную волу, и др.параметры «ломаются» при их изменениях. Под «горизонтальной волой» имею ввиду гармошку которая то разжимается то ссужается и так же «ломает» линейные ТСки которые были откурвлены под определенные параметры.
      • Fade
        17 декабря 2023, 14:07
        22022022, Да, тоже сейчас копаю в эту сторону. Есть какие-нибудь идеи как все это формализировать? 
        • 22022022
          17 декабря 2023, 15:45
          Fade, нет я не копаю в ту сторону и не буду. Представляю с чем придется столкнуться.
  • Replikant_mih
    17 декабря 2023, 09:11
    Я уже, видимо, алгоритмически заматерел. Раньше бы кёрвфиттинг точно бы стриггерил внимательно прочитать текст, сейчас уже нет. Видимо есть 3 стадии — 1. Тебя это не триггерит потому что не понимаешь про что это и/или не осознаешь важности, 2. Тебя это триггерит, потому что понимаешь важность, поэтому начитываешь, 3. Тебя это не триггерит, потому что понимаешь что с этим делать, имеешь рабочие инструменты, и ничего нового уже давно не видел на эту тему.
      • Replikant_mih
        17 декабря 2023, 13:58
        bascomo, Да в целом как-то охладел к внешней информации, чем выкристаллизованней подход, тем меньше что-то внешнее интересует. Когда он только выкристаллизовывался — жадно всё впитывал.
  • Fairman
    17 декабря 2023, 09:49
    Я бы предложил в принципе отказаться от применения индикаторов и осцилляторов, т.к. они строятся на прошлых ценах и все системы, использующие их в алгоритмах прибыльны исключительно из-за подгонки.
    Но сейчас получу волну негатива от сторонников ТА.
    Кто бы что ни говорил, это не работает или работает какое-то время...
    Лично я управляю только риском и мне неважно куда пойдёт цена. Иными словами, если убыток достиг определённой суммы, то я переворачиваю робота для торговли в другом направлении.
    • Осторожный спекулянт
      17 декабря 2023, 15:12
      Fairman,
      " Иными словами, если убыток достиг определённой суммы, то я переворачиваю робота для торговли в другом направлении. "

      И вуаля — после стопосъема рынок весело шуршит в обратном направлении?))
      • Fairman
        17 декабря 2023, 15:34
        Осторожный спекулянт, ну и что? Как вы это предскажете? Всегда вероятность 50/50, поэтому и управляем риском, ведь если рынок пойдет дальше против вас, то будет совсем невесело, а этот убыток я отобью за день-два
  • DV_13
    17 декабря 2023, 09:59

    1. Это всё 'горе от ума'. Если система работает хоть 2-3 недели, хрен с ним как она называется 'курв' или 'некурв' фиттинг.
    2. Есть долгосрочные закономерности ('неэффективности') в ценах, объемах из-за гепов, сезонностей, корреляций и прочего. Можно на этом делать системы, будет проще.
    3. Есть целый мир микроструктуры, там раздолье для творческого ума и технологий.

  • Liberalism
    17 декабря 2023, 10:41
    Нет никаких алгоритмов торговли. Это миф или самообман. Реально, вы полагаете себя умнее аналитиков JPMorgan или BlackRock? Кто там использует алгоритмы? А ведь у них точно есть вся возможная информация....
    И не надо мне говорить про квантов. Там сливаются пачками. У меня трое дипломников работали в крупных американских алго шарагах
    Омг. Математики на этот счёт — хоть одним местом. Хоть простой, хоть сложной. У меня пять или шесть статей на этот счёт было и по российскому рынку, и по американскому и отдельно по Великобритании и Франции. Есть куча статей по любому рынку и любому временному промежутку.
    Тупо пример: www.jstor.org/stable/2329349
    • Replikant_mih
      17 декабря 2023, 11:25
      Liberalism, 
      вы полагаете себя умнее аналитиков JPMorgan или BlackRock?

      Считать себя глупым, середнячком, глупее кого-то, пусть даже каких-то там аналитиков каких-то там BlackRock и JPMorgan — серьёзное ограничивающее убеждение. Довольно вредное. Даже если ты не умнее. А можешь быть вполне и умнее.

      У меня пять или шесть статей на этот счёт было и по российскому рынку, и по американскому и отдельно по Великобритании и Франции. Есть куча статей по любому рынку и любому временному промежутку.


      Читали мы эти «статьи», это вам не физика (например). Даже речь не про то, что рынок двигается по другим принципам или что-то, речь про то, что на рынке если ты что-то нашёл — на этом надо делать деньги, а не шарить это, и люди так и делают. Этот простой принцип приводит к тому, что выборка открытой информации (статей или чего-то ещё) очень нерепрезентативна. Другими словами, хотите защищать самолёт бронью — слушайте рассказы сбитых пилотов, а не самостоятельно севших ;).

    • bocha
      17 декабря 2023, 20:53
      Liberalism, 

      Кошелек украсть невозможно и я вам это в два счета докажу.

      JPMorgan или BlackRock могут нанять специалистов любого профиля сколь угодно высокой квалификации, но не воруют кошельки. Значит что?

      Значит кража в принципе невозможна!
  • Ares Stallone
    17 декабря 2023, 11:09
    Как давно торгуете?
    Именно на кого?
    Есть хфт стратегии всегда зарабатывающие.
    Есть на старших таймфреймах зарабатывающие, но с бо́льшим риском для капитала.
  • андрей молисов
    17 декабря 2023, 18:02
    читаю и не понимаю -если у вас уже есть деньги- зачем больше; если это вызов себе и обществу-есть  более полезные кейсы
    я, торгую руками, и практически в ноль, не рискуя большими суммами, чисто для поддержания формы,  и, то и дело, читаю истории взлетов и падений, это похоже на детские игры только выросших мальчиков  девочек
  • bocha
    17 декабря 2023, 20:37
    Время такое — верить никому нельзя, хотя это утверждение справедливо для любого времени.

    — В чем сила, отче?
    — В вере, сын мой.
  • OrinokoA
    18 декабря 2023, 14:50
    про подгонку тоже недавно приходили мысли. и про то, что рано или поздно рынок изменится, нужно все время быть в поиске новых идей, страт, развиваться

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн