Мемуары на R&D
Часть 3. Домино и бабочки
Хаос — это не провал. Хаос — это лестница. Многие пытались взойти на неё, но оступались и уже не пытались вновь. Падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за власть, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъём наверх.
Когда я начал алгоритмизацию анализа, который делал на глаз, я периодически наталкивался на детали, о которых никогда не задумывался, что впоследствии перевернуло моё представление о многом.
Разберём конкретный пример. На картинке две проторговки (боковика/флэта/накопления — называйте как хотите).
И когда мне нужно было найти все проторговки после синей, я писал в код: найти все проторговки, в которых startTime >= endTime синей. Из‑за этого я ловил глюки, когда такие, как красная, не находились, потому что открытие красной < endTime синей, ведь после открытия красной цена с лоя синей (ну почти лоя) успевала прийти на хай синей, поэтому, ессно, это часть синей, и синий endTime был позже открытия красного бара.
Первая реакция у меня обычно в невежестве: тупо решить технический глюк, не разбираясь с сутью проблемы, например, делать поиск от startTime синей, — это как раз пример того, что на конфе Смартлаба я называл «костыль» в логике анализа. Но если все эти «костыли» можно назвать «бубликом», то дырка от бублика как раз и была той самой логической проблемой, подвисшей в воздухе:
⛔ нелогично присваивать объём и время двум актуальным накоплениям одновременно, потому что объём и время в области пересечения мы, получается, раздваиваем. Если мы будем сравнивать кумулятивный объём и время обоих с такими же двумя проторговками без пересечений друг с другом, то последние проиграют, хотя по факту все четыре проторговки могут быть абсолютно одинаковыми!
Если мне нужно правильно определить размер красной проторговки, мне нужно учесть контекст, в том числе и на меньших ТФ, потому что, как вы видите, синяя может находиться на меньшем ТФ относительно красной. А это в свою очередь привело к реверсу построения анализа, ведь на глаз в ручную я делал его от большего ТФ к меньшему, а нужно от меньшего к большему.
Когда делаешь анализ на глаз, то не остаётся выбора, кроме как делать неправильно, ведь когда открываешь месячный ТФ какого‑нибудь S&P500, то для того чтобы выделить там боковик в начале 2000‑х длительностью в ~15 лет, просто берёшь рамку и выделяешь его на глаз — не копаться же в тиковых данных с самого начала 🙈 А ведь получается, что без этого никак, вы ж ведь понимаете, что для правильного построения синей проторговки (от этого может зависеть его endTime в некоторых случаях в зависимости от алгоритма), которая определяет границы красной (если её подрезать), мне тоже надо посмотреть его контекст, в том числе и на ещё меньшем (уже для синей) ТФ, и так можно спускаться чуть ли не до миллисекундных ТФ, что, впрочем, мне и пришлось сделать 😭 Но я держался долго... до 2020 г. я всё пытался отделаться минутками, но потом признал, что их можно выкинуть на помойку даже для построения анализа на больши́х ТФ.
Чтоб вы прочувствовали уровень безумия: когда я взял за минимальный ТФ 1 секунду, я очень быстро понял, что это всё равно СЛИШКОМ БОЛЬШОЙ ТФ, приводящий к значительным искажениям! И я каждый раз уменьшал его, пока искажения не прекратились где-то в районе ~100 мс, 🙈😂😭 с которых сетка ТФ постепенно увеличивалась до привычных всем ТФ...
Пользуясь случаем, хочу обратить внимание, что это один из ответов на вопрос:
«А зачем тебе самописный тестер? Есть же куча готовых решений...»
Если вы думаете, что в односекундном баре на ликвидных инструментах в активное время внутри нет никакой структуры — вы вообще не в теме ))) Там может быть тоже самое, что и внутри минутного...
Это, разумеется, не единственный случай, их на самом деле «до жопы». Возьмём, к примеру, самый маленький (по количеству баров) боковик: сколько это баров? — ну, допустим, 5.
Ну, флэт и флэт... Вверху надо смотреть на продажу, внизу — на покупку. Но если спуститься на меньший ТФ, то там может быть совсем не боковик, и на его лоях на самом деле лучше продавать, потому что там все пружины разрядились вниз:
Чтобы понять, что стоит за этими 5 барами, надо посмотреть структуру глубже. А иногда бывает так, что нужно утвердить структуру, которая глубже, — тогда что? Правильно, посмотреть ещё глубже, ведь рынок фрактален! (Понимаю, что надо бы ещё наглядных примеров, но сейчас не стоит цель конкретно мой алго разбирать.)
Это поначалу вызывает интуитивное отторжение, однако помимо принципа, что «хвост не виляет собакой», в природе есть ещё «принцип домино»!
Ещё в 1983 году Лорн Уайтхед обнаружил, что падающее домино может повалить следующее домино, которое примерно в полтора раза больше. А это значит, что при первоначальной доминошке в 5 см, 30‑я доминошка сможет повалить доминошку выше Эвереста, а 56‑я повалит доминошку размером до Луны! Это разве не вызывает интуитивного отторжения?
Я перестал строить интуитивные иллюзии, представлять мир таким, каким мне удобно его воспринимать и анализировать. Поэтому в моём анализе работает как принцип домино, так и принцип, мол, хвост не виляет собакой, и одно от другого отделяет только константа, а именно, НАСКОЛЬКО больше должна быть разница в соседних объектах, чтобы меньшее не смогло повлиять на последующее большее. Т. е. иногда меньшие ТФ не могут повлиять на последующее в бо́льших, а иногда могут, и когда это происходит, то масштаб искажений в длинной цепочке порой обескураживает...
Кстати, пока гуглил про домино, прочитал ржаку в вики, — правда, это уже ближе к «чёрному лебедю» во всех смыслах:
Интересный случай произошёл в 2005 году, когда в зал залетел воробей и смахнул крылом 23 тысячи подготовленных для рекорда костяшек. Птица тогда погибла от пули охранника, и во время установления нового рекорда её память почтили соответствующей композицией.
Хочется сказать: «Нет‑нет‑нет, всё это полная чушь… не видел я на графиках никаких падающих доминошек, все бары стоят всегда строго вертикально!» Но ведь такой же эффект, например, в хаотических системах, где малейшее изменение в начальных данных приводит к непропорционально масштабным искажениям в будущем (эффект бабочки). А сколько в рынке от хаоса — очень популярная дискуссионная тема!
Получается, что из‑за одной ошибки в анализе я могу терпеть убытки на довольно большом отрезке последующих данных. Т. е. для снижения искажений на всём графике необходимы непропорционально масштабные улучшения в адекватности анализа. Попахивает даже принципом «всё или ничего»: пока не разгадаешь ВСЕ рыночные механизмы, факторы и взаимосвязи — построение анализа может быть ощутимо ошибочным.
Осознание этого факта подсадило меня на психологический крючок, из‑за которого я не могу воспринимать плохие результаты бэктестов как признак того, что я глобально двигаюсь не в правильном направлении. Остановиться стало невозможным. Постоянное патологическое ощущение, что, мол, я вот здесь ещё доделаю, вот тут ещё подправлю, вот там ещё доресёчу — и везде всё выровняется, и цена по системе начнёт ходить точно как швейцарские часы! И «последние станут первыми» 🤑 Клиника, короче... И это не единственный крючок, про остальные скажу в следующих частях.
Кстати, среди алготрейдеров может возникнуть мысль:
«А почему бы вообще не избавиться от всех таймфреймов и плоскости времени? Воспринимать поток ордеров просто как последовательность».
Я искренне убеждён, что это будет фатальной ошибкой. До R&D я бы ещё мог сказать: «Ну не знаю... можно попробовать...», но сейчас точка невозврата уже пройдена для меня навсегда. В процессе ручной торговли все логические рассуждения и осознанные подмеченные факторы очень хорошо работали в плоскости ЦЕН, а вот всё, что было в плоскости ВРЕМЕНИ, почему-то ускользало от моей осознанности и тихо агрегировалось в насмотренности/интуиции. А на R&D я очень многое формализовал, и для меня будто открылся новый мир, которого я так упорно не замечал 10+ лет торговли. И скажу я вам, что сейчас фактор времени для меня неотделим от любых ценовых факторов. Прорыв в этом понимании был одним из тех самых когнитивных лифтов, которые вывели мой анализ на принципиально новый уровень, о котором раньше я не мог помыслить даже в своих самых смелых снах (об этом будет немного в седьмой части).
В общем, у вас может возникнуть вопрос:
«А зачем тебе такие дебри? Неужели на рынке нет попроще способа заработать? Ведь люди зарабатывают как‑то и без твоей „теории всего“. Сходи к Мухаметзянову на обучение, да зарабатывай без всяких головоёбок».