Осторожно! Алготрейдинг!
Решил, что мой опыт разработки очень сложного алго может послужить уроком для многих, кто подумывает о чём‑то подобном 😀 Хочу предостеречь всех, кого привлекает принцип «чем сложнее, тем лучше», о котором я ещё напишу в следующих постах. Сразу оговорюсь, что сложность не ради сложности, будто фетиш какой‑то, а как неизбежное следствие попытки описать всё устройство механики рынка. В этом есть много преимуществ, но этот пост о недостатках...
Начну с оценки времязатрат. Когда я поставил на паузу трейдинг и ушёл в кодинг, я искренне был убеждён, что за полгода смогу запрограммировать всё что угодно))) Прошло уже 5 лет...
Как так может получиться? Очень просто.
Первый просчёт в том, что когда я закодил всё, что планировал, я понял, что этого недостаточно, т. к. в процессе разработки и ресёчей у меня много на что открылись глаза. ТЗ стало формироваться и увеличиваться по мере разработки.
Второй просчёт в том, что я себе примерно представлял, сколько я смогу написать кода за 1 день. Но я не учёл тот факт, что я человек )))
Первый день разработки — это одно, а 365‑й день подряд без выходных в режиме 24/7 — это уже совсем другое 😭 Поверьте, это очень‑очень разные дни по производительности...
Т. к. я уже прошёл через несколько циклов производительности (нарисовал зелёным) и полного отказа когнитивки по факту истощения (красным), то могу уже поведать вам о неприятном сюрпризе, который вас ждёт...
Со временем истощение и усталость накапливаются! Каждый последующий период для восстановления становится всё дольше, а период работоспособности всё короче и неэффективнее. Восстановиться на 100% не получается даже после перерыва в полгода. По ощущениям динамика примерно такая:
Я уже даже представить не могу, что мне нужно, чтобы восстановиться до того уровня, с которого я начал. Уехать в горы без книг и интернета на год‑два пасти овец и созерцать природу? ))
Тут нужно сделать немаловажное уточнение... что всё это свалилось на меня в возрасте 35–40 лет... Для периода в 20–25, вероятно, всё будет не так печально.
Итого по графику выше видно, что разработка в итоге замедляется настолько, что её уже просто‑напросто невозможно закончить, т. к. за несколько недель я могу сделать меньше, чем за пару дней в самом начале проекта. Или даже вообще ничего.
Но дело не только в ресурсе... не только в его истощении, а ещё в том, что со временем возрастающая сложность требует его всё в больших и больших объёмах на один и тот же временной отрезок работы.
Кривая внутреннего ресурса тут ещё без учёта обратной связи. Т. е. он снижался бы в таком темпе, если бы ресурсоёмкость была на одном и том же уровне. Но в реальности ресурс снижается галопирующими темпами из‑за мультипликатора увеличивающейся ресурсоёмкости, которая сама по себе тоже возрастает по экспоненте. Потому что комбинаторика очень проста... Представьте варианты взаимосвязей из трёх элементов... а потом из 33... А у меня в коде примерно так и получается 🙈
Разумеется, помимо этого, мне посадил когнитивку кофеин, и как следствие — полное отсутствие режима сна. Ну и куча ноотропов, после которых всегда был откат в работоспособности.
Раз уж я увлёкся тут инфографикой, то добавлю ещё динамику времязатрат
- на саму ТС (ресёчи, формализация, т. е. что именно кодить),
- на сам кодинг (в том числе и как быстро переделывать, исправлять ошибки).
Что я попытался передать на этом графике:
- Каждый последующий инсайт или решение очередной головоломки наступает всё быстрее и быстрее из‑за некой наработанной эвристики.
- Напротив, каждый последующий апдейт из‑за нарастающей сложности всё дольше и дольше кодится. Более того, постоянно повышается уровень ресурсоёмкости дальнейшего поддержания всех этих апдейтов.
- Поэтому на какие бы то ни было ресёчи и усовершенствование ТС просто не остаётся ресурсов... и остаётся буквально одна задача — просто выжить с тем, что уже есть... Развитие останавливается тупо по причине истощения, в том числе и из‑за того, что пазлы начинают собираться всё быстрее и быстрее и осмыслить и переварить всё это уже не представляется возможным. Тут разве что вариант про горы и выпас овец поможет.
На текущий момент я достиг своего предела в ТС и её реализации. И причина скорее в ресурсоёмкости реализации, именно из‑за неё на дальнейшее развитие просто нет ресурса. Большую часть времени кодинг не был проблемой, ситуация начала резко усугубляться в последний год. Сейчас задача — только привести в стабильный рабочий режим то, что уже есть, и даже она пожирает массу времени. Это болото, в котором чем интенсивнее двигаешься, тем сильнее тебя засасывает в него 😭
Конечно, я тысячу раз думал про аутсорс и всё такое, но после всех этих думок всегда оставался где‑то между «в моём случае это невозможно» и «посторонним тут не место». И я не о том, что другой человек не сможет что‑то закодить, а о том, что когда пишешь код сам, у тебя всё и начинает складываться, т. к. со временем мозг затачивается под алго‑структуру и мыслит ей, а не мешаниной когнитивной, как это происходит в естественном состоянии у людей. Просто поверьте на слово.
Но, несмотря на тёмную сторону такого алго, я убеждён, что сделал правильный выбор. То, что вырисовывается в результатах, стоило того, чтобы заплатить такую цену. Об этом я ещё напишу в следующих постах.
Прискорбно констатировать, но МайТрейд превратился в МайБлог 😭