Один товарищ прочитал первые две статьи и сказал примерно так: приложение создаешь, а статью нормально оформить не можешь. В целом замечание справедливое. Поэтому первые две части я переделал под Habr и выложу их отдельно уже в более аккуратном виде.
Но к прошлым частям появились вопросы, и их лучше разобрать по порядку. Начну с самого частого.
> Реально ли сделать `2 000 000` прикладных оценок в секунду в TSLab?
Мой ответ: да, реально. C++ — быстрый язык для вычислений, и архитектура TSLab позволяет получать очень высокую скорость, если понимать, куда смотреть и что именно оптимизировать. Команда у TSLab хорошая, сам продукт сделан очень сильным для своей задачи: собрать стратегию, визуально проверить логику, запустить оптимизацию и посмотреть результат.
Но есть важное уточнение. TSLab в первую очередь сделан как рабочая среда трейдера и сборщик стратегий, а не как исследовательская машина для многоуровневой аналитики, где нужно управлять миллиардами вариантов, сохранять ветки, сравнивать семейства, делать pruning, собирать пулы и потом снова прогонять результаты через отдельный контур отбора.
Я мог бы привести пример и на Zorro. Но Zorro решает немного другую задачу: это скорее программная среда для бэктестинга, оптимизации и автоматизации торговых систем через код и скрипты, а не визуальный конструктор логики в стиле TSLab. Для этой серии мне проще отталкиваться от TSLab, потому что там понятнее визуальная логика для большинства читателей из этого узкого направления.
Если говорить именно про `2 000 000` оценок в секунду в TSLab, то понадобятся не только настройки. Понадобятся инструменты уровня JetBrains, хороший опыт в C++, понимание памяти, потоков, профилирования, CPU/GPU и внутренней логики пересчета. А еще нужны знания в прикладной математике: комбинаторика, теория вероятностей, математическая статистика, численные методы, методы оптимизации, анализ временных рядов, алгоритмы, структуры данных, оценка сложности, работа с кэшем и параллельными вычислениями.
Если все это есть, особенно последнее, то `2 000 000` оценок в секунду иногда проще сделать уже не в TSLab, а в своей программе. Собственно, так я постепенно и пришел к ARANEA.
Теперь про скорость вычислений «в лоб». Чтобы расчет был быстрым, его нужно сначала сделать чистым и последовательным.
1. Не нужно вычислять `0 + 0 = 0`, если заранее понятно, что ветка не дала входов.
2. Нужно закладывать правильную последовательность вычислений: от перестановки слагаемых сумма не меняется, но стоимость итерации может измениться сильно.
3. Нужно делить расчет на семейства. Одни и те же EMA-ряды можно переиспользовать десятки раз, а не пересчитывать их под каждую соседнюю гипотезу.
4. Дешевые entry-фильтры должны идти раньше тяжелого PM-прогона.
5. Производные ряды, bitset-ы, кэши и группы входов должны считаться один раз и переиспользоваться.
6. Не каждую промежуточную сущность нужно записывать на диск, если она нужна только для следующего шага.
7. Большой перебор должен быть не хаотичной таблицей, а последовательным планом.
В архитектуре своего проекта я разложил расчетный процесс на `32` этажа. Можно было сделать больше, но зачем, если уже появляется управляемая последовательность: подготовка данных, entry-карта, фильтры, группы, PM, pruning, метрики, артефакты, пул и дальнейший отбор. Я буду показывать пример, где `34` стратегии, `170` правил и итоговые `31` триллион комбинаций все еще разбираются на старом компьютере но немного позже. Смысл не в красивой большой цифре, а в том, что скорость начинается не с «добавить потоков», а с правильной математики и архитектуры вычислений.
Что вообще можно считать стратегией

Тут важно сразу снять еще одно ограничение. В первых частях я специально использовал простые EMA-состояния, DOP и несколько PM, потому что на них легче показать рост количества комбинаций. Но сам подход не привязан к EMA.
В алгоритмической торговле почти любую формализуемую идею можно превратить в правило:
1. свечной паттерн: тело, хвосты, положение `close`, последовательность баров;
2. объем: рост/падение объема, всплеск, реакция после всплеска;
3. кластерный объем: уровень, дельта, дисбаланс, удержание зоны, возврат к ликвидности;
4. волновая логика: pivot-точки, глубина коррекции, отношение волн, выход одной волны за другую, время формирования;
5. старшие таймфреймы: `4h`, `12h`, `1d` как внешний контекст для `1h`;
6. преобразования цены: Heiken Ashi, Renko, Kagi, крестики-нолики и другие формы графика;
7. индикаторные состояния: EMA, SMA, RSI, MACD, ATR, ADX, Bollinger Bands, Donchian Channel;
8. правила выхода: fixed stop, ATR-stop, trailing, percent take, parabolic stop, частичный выход, выход по времени или противоположному сигналу.
Для ручного трейдера между этими подходами есть большая смысловая разница. Для вычислительного контура принцип один: если условие можно описать строго, оно становится веткой расчета. А дальше эта ветка умножается на параметры, PM, активы, таймфреймы, метрики и правила отбора.
Например, кластерный анализ в алгоритме все равно превращается в набор воспроизводимых условий: где был объем, на каком уровне, какая была дельта, был ли дисбаланс, сколько баров цена удерживала уровень, что произошло после касания, пробоя или возврата. Волновой анализ тоже можно формализовать, если заранее задать pivot-точки, масштаб фрактала, правила подтверждения, глубину коррекции и условия отмены сценария. Если этого не сделать, то это остается визуальной интерпретацией, а не алгоритмом.
Именно поэтому спор «EMA против свечей», «индикаторы против объемов» или «Renko против обычного графика» для вычислений вторичен. Важнее другое: сколько таких условий можно формально описать, в какой последовательности их считать и какие результаты потом сохранить. Когда речь идет о миллиардах и триллионах комбинаций, ошибка в последовательности легко превращается в месяцы лишнего времени.
Отсюда и мое отношение к Monte Carlo и Байесу. Они полезны, но они не делают стратегию прибыльной сами по себе.
Любой метод имеет право на существование, если он не живет в фантазии, а применяется на практике и проверяется результатами. Байес, Monte Carlo, полный перебор, жадный отбор, ручной анализ графика — все это инструменты. Проблема начинается там, где инструменту начинают приписывать магию.
Если бы Байес и Monte Carlo сами по себе давали прибыльность, то все, кто подключил эти методы к оптимизации, давно стали бы богаты. Но рынок так не работает. Лучшие показатели на истории часто оказываются не лучшими стратегиями, а переоптимизированными показателями. Можно предположить, что `31` триллион комбинаций получится прогнать через Байес или Monte Carlo за сутки. И что дальше? Мы получим набор лучших точек по выбранной функции качества, но это еще не означает, что в будущем рынок даст этим точкам заработать.
Здесь легко попасть в ложную идею, будто где-то существует одна стратегия-грааль, а задача оптимизации — просто быстрее ее найти. Я смотрю на это иначе. Точек входа и их вариантов миллиарды, и многие из них имеют право на жизнь как гипотезы. Основная задача — не угадать одну волшебную точку, а правильно работать с потоком данных: разложить его на условия, ветки, PM, метрики, семейства результатов и проверки на другой истории.
Простой бытовой пример — рыбалка. Озеро хорошее, рыба есть, снасти нормальные. Но сегодня давление высокое, щука спряталась или уже наелась, и вы ничего не поймали. На следующий день условия изменились, и все ловится отлично. Рынок похож: одна и та же логика может быть живой в одном режиме и бесполезной в другом. Поэтому среди триллионов комбинаций нельзя просто искать лучший `PnL` или лучший `winrate`. Нельзя забрать с рынка больше, чем он в конкретном режиме способен дать вашей логике. Если из доступного движения удалось стабильно забрать даже небольшую часть, это уже может быть хорошим результатом.
Monte Carlo может быстро раскидать случайные точки по пространству и показать распределение результатов. Байес может быстрее искать хорошую область по выбранной функции качества. Но оба метода отвечают на вопрос, который мы им задали. Если задать слабый вопрос вроде «найди лучший `PnL`», то метод найдет лучший `PnL` на уже известной истории. Это может быть рабочая область, а может быть просто красивый хвост прошлого участка.

Я уже приводил похожий пример во второй части: условие могло выполниться на один час раньше и попасть в одну группу сделок, а могло выполниться на час позже и попасть уже в другую группу. Если эта сделка прибыльная, она улучшит показатели той группы, куда попала. Если убыточная — ухудшит. Теперь представим не один фильтр, а `3-4` правила одновременно. Сколько сделок в разных местах истории случайно распределятся по таким группам и подтянут или испортят итоговые показатели, по которым потом будут судить о прибыльности стратегии? Именно поэтому одна лучшая строка или один найденный максимум не доказывают, что найден устойчивый принцип.
Главная проблема в том, что такие методы не обязаны до конца анализировать все логические ветки. Ветка может быть слабой по максимальному `PnL`, но устойчивой по просадке. Может быть средней отдельно, но полезной как short-хедж к long-пулу. Может проиграть по одной метрике, но выиграть как семейство соседних параметров. Если Monte Carlo почти не попал в эту область, а Байес ушел к другой функции качества, то в итоговой картине этой ветки как будто не существовало.
Поэтому перед Байесом и Monte Carlo нужна карта гипотез: какие правила вообще дали входы, какие PM выжили, какие фильтры не убили статистику, где результат держится не на одной сделке, какие соседние параметры ведут себя похоже. Только после этого имеет смысл использовать Monte Carlo для сборки пулов и Байес для уточнения состава, весов или параметров по уже понятной функции качества.
И еще один обязательный слой — правая сторона графика. Если оптимизация шла на одном участке истории, например `2020-2023`, то найденные профили нужно включить на участке, который они не видели, например `2023-2024`. Там становится понятно, что мы нашли: живую гипотезу, переобученный фильтр, PM, который спасал только один рыночный режим, или случайный лучший результат.

Именно поэтому мне важно хранить не только победителей. Иногда ветка, которая не попала в финальный пул на левом участке, на правой стороне деградирует меньше, чем чемпион. Для реальной торговли это может быть ценнее, чем максимальный `PnL` в первом окне. Без сохранения веток, метрик и соседних решений такой вывод просто невозможно сделать.
Есть и обратная постановка эксперимента. Допустим, профиль прошел бэктест на правой стороне. По-хорошему после этого нужно сделать реверс-проверку: запустить оптимизацию уже на расширенном или полном диапазоне и посмотреть, насколько уезжают параметры, PM, фильтры и соседние семейства. Если лучший вариант на первом окне, правой стороне и полном диапазоне требует каждый раз совершенно другой формы параметров, это тревожный сигнал. Если же параметры меняются умеренно, рядом остаются живые ветки, а профиль сохраняет форму, то гипотеза выглядит намного сильнее.
В Байесе или Monte Carlo можно взять лучшие найденные варианты и тоже провести такую проверку. Формально все будет выглядеть нормально: есть кандидаты, есть метрики, есть повторный прогон. Но мне интереснее другой уровень: взять не только несколько победителей, а сразу миллионы вариантов, которые прошли первичный отбор, и смотреть их выживаемость, отклонение и устойчивость как семейства. Тогда мы сравниваем не одну точку, а форму области, где стратегия продолжает жить.
Самое полезное, что такой эксперимент можно переносить на другие активы с тем же таймфреймом. Конечно, у разных инструментов своя ликвидность, волатильность, комиссии, гэпы и режимы. Но сама структура движения в базовом смысле всегда сводится к тому, что цена идет вверх, вниз или стоит в диапазоне. Поэтому если формализованная логика действительно описывает не случайный участок, а повторяемое рыночное состояние, ее можно перепроверять на других активах и смотреть, где она сохраняет форму, а где разваливается.
Что не нужно понимать неправильно
Я не утверждаю, что TSLab плохой инструмент. В первой части я уже писал, что он полезен как визуальная среда для сборки стратегии и проверки идеи глазами. Проблема начинается в другом месте: когда вместо одной оптимизации нужна последовательная исследовательская машина, которая управляет ветками, артефактами, метриками, отсечениями, повторными прогонами и итоговым отбором профилей.
Я также не утверждаю, что Monte Carlo или Байес «хуже» ARANEA. Это методы для других вопросов. Байес ищет хорошую точку по выбранной функции качества. Monte Carlo сканирует распределение случайных вариантов. ARANEA на первом этапе строит карту того, где торговая гипотеза вообще имеет право на жизнь.
Главная ошибка — пытаться заменить постановку задачи методом оптимизации. Если вопрос слабый, быстрый метод просто быстрее даст слабый ответ.
Простая арифметика времени
Базовая формула остается такой: `wall_time = total_evaluations / evaluations_per_second`.
Если взять грубую скорость первого TSLab-замера `385.53` оценки/сек и применить ее к верхней сетке второй части, получится примерно `8 865 073 180` секунд. Это около `102 605` дней, или `281.11` года.
Так как благодаря фильтрам предподготовки, которые описывал немного выше получилось срезать из общего числа вычислений 99% грязных расчетов… в конкретном запуске ARANEA осталось `25 159 256 816` проверок. Если считать их с той же грубой скоростью TSLab-замера, получится около `65 258 208` секунд, или `755` дней, или `2.07` года.
Теперь посмотрим на тот же объем через разные скорости:
| Скорость | Верхняя сетка `3.417T` | После entry-подготовки `25.159B` |
|---:|---:|---:|
| `385.53`/сек | `281.11` года | `2.07` года |
| `100 000`/сек | `395.58` дня | `69.89` часа |
| `500 000`/сек | `79.12` дня | `13.98` часа |
| `2 000 000`/сек | `19.78` дня | `3.49` часа |
Эта таблица показывает две разные вещи.
Первая: математическое отсечение до тяжелого расчета иногда важнее голой скорости. Если отправить в PM все `3.417T`, даже высокая скорость быстро превращается в недели и месяцы.
Вторая: после правильной подготовки данных скорость начинает менять практический режим работы. Разница между `385.53` и `100 000-500 000` проверок в секунду — это переход от «ждать невозможно» к «можно планировать исследовательские прогоны».
На этой конкретной стратегии, активе и таймфрейме скорость ARANEA в моих прогонах колеблется примерно от `100 000` до `500 000` проверок в секунду. Это не константа для всех рынков и не финальный потолок. Чем тяжелее PM и чем дольше живет сделка, тем ниже скорость. Чем лучше подготовлены entry-ветки и кэши, тем меньше лишней работы попадает в расчет.
Вывод третьей части(первую и вторую часть в отредактированном варианте я выложу на хабр из которых вывод будет написан тут) просто изменять посты к сожалению уже нельзя.
Во второй части мы получили верхнюю сетку `3 417 786 951 264` и увидели, что после entry-подготовки в конкретном запуске осталось `25 159 256 816` проверок. В третьей части появляется смысл скорости: при `385.53` оценки/сек даже сокращенный план выглядит как годы, а при `100 000-500 000` проверок/сек он превращается в практический исследовательский прогон.
Но скорость — это не финальный ответ. Она только открывает возможность задавать правильные вопросы: какие ветки живые, какие PM устойчивы, где результат держится на группе соседних параметров, а где мы просто поймали случайный хвост истории.
Monte Carlo и Байес нужны не вместо исследовательской карты, а после нее. Сначала ARANEA должна подготовить качественный массив кандидатов: с метриками, фильтрами, PM, ограничениями и отсечением грязных вариантов. Потом Monte Carlo может проверять распределения и пулы, а Байес — уточнять состав, веса или параметры по уже осмысленной функции качества.
В следующей части: почему Байес и Monte Carlo не заменяют карту торговых гипотез, как максимум `PnL` может оказаться максимумом шума и почему метрики, устойчивость соседних параметров и роль профиля внутри пула важнее одной верхней строки таблицы и примеры на стратегии с которой начали + интерфейс приложения
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
Наверно и 1/5 не одолел.
Автор, тема мне интересна, не будет ли у вас по ней чего попроще?
Может эту пересказать простым трейдерам без непонятных слов?
Ваш подход хороший, но он подтверждает важное разделение: GPU быстро считает уже подготовленную плотную массовую симуляцию. То есть CPU заранее собирает сигналы, окна, ряды и математику, а GPU получает задачу, которую можно параллелить по параметрам.
В моей статье проблема шире: не просто прогнать одну стратегию по сотням тысяч параметров, а построить исследовательский контур, где есть разные entry-ветки, фильтры, PM-семейства, отсечения, группировка входов, pruning, сохранение артефактов, правая сторона истории и повторяемость экспериментов.
Для GPU важна однородность задачи. Чем больше в расчете ветвлений, разных правил выхода, разной длины сделок, условий остановки, sparse-сценариев и логики отбора, тем сложнее это эффективно уложить в один массовый kernel. Поэтому “сотни тысяч комбинаций в секунду” и “управляемый перебор триллионной карты гипотез” — не одно и то же.
Плюс тут важно сравнивать не только скорость симуляции, а полный pipeline: подготовка данных, расчет сигналов, переносы памяти, фильтрация пустых веток, PM-прогон, метрики, сохранение результатов и повторный запуск. Если CPU-подготовка занимает существенную часть времени, то GPU ускоряет только один слой, а не всю исследовательскую систему.
GPU — отличный инструмент для плотной массовой симуляции, когда задача уже правильно разложена. Но саму проблему архитектуры исследования он не отменяет. Сначала нужно понять, что считать, что отсечь, что сохранить и как проверять на правой стороне. А уже потом выбирать, где считать: CPU, GPU, Rust, C++, Python/numba или смешанным контуром.
Да, GPU-подход для массовой симуляции параметров я полностью понимаю. Если задача уже подготовлена, сигналы посчитаны, данные лежат в памяти и нужно прогнать много однотипных вариантов, GPU может быть отличным исполнителем.
Но я в статье говорю не только про скорость одного слоя симуляции. У меня задача шире: одновременно исследовать и сопровождать много стратегий, правил, PM-семейств и рынков, а не просто прогнать одну сетку параметров.
ARANEA — это не “еще один быстрый бэктестер”. Это контур, где нужно собрать карту гипотез, подготовить entry, отсечь пустые ветки, переиспользовать ряды и сигналы, прогнать PM, сохранить артефакты, проверить правую сторону, собрать пулы, а потом еще связать это с торговым runtime.
Поэтому GPU в такой архитектуре может быть одним из backend-слоев для массового прогона. Но он не заменяет саму архитектуру исследования. Он ускоряет участок, где задача уже приведена к плотной параллельной форме.
В этом смысле мы не спорим. Вы описываете быстрый исполнительный слой. Я описываю систему, которая решает, что именно считать, в какой последовательности, что не считать вообще, что сохранить и как потом использовать результат.
Я понимаю GPU-подход. Он отлично работает, когда задача уже сведена к плотной массовой симуляции: сигналы подготовлены, данные лежат в памяти, структура стратегии одинаковая, и нужно прогнать много параметров.
Но в моей задаче узкое место не только в скорости одного слоя симуляции. Проблема в том, чтобы сотни стратегий, правил, PM-семейств, рынков и фильтров разложить в правильную последовательность: что подготовить, что отсечь до тяжелого прогона, что переиспользовать, что сохранить и как потом проверить на правой стороне.
GPU может быть отличным backend-слоем внутри такого контура. Но он не заменяет сам контур. Он быстро считает то, что уже приведено к удобной для GPU форме.
Да, с ветвлениями на GPU согласен. Поэтому я и не говорю про наивный брутфорс всего пространства на GPU. GPU хорошо работает, когда задача уже приведена к плотному однотипному batch-у: сигналы подготовлены, ветки отсечены, данные лежат в памяти, и дальше надо массово прогнать PM-варианты.
Но тогда важно уточнить, что означает “200 000 комбинаций/сек”. Это один PM? одна стратегия? одна структура правил? уже подготовленные сигналы? включены ли разные PM-семейства, stop/take/trailing, pruning, комиссии, сохранение метрик и правая сторона? Без этого это скорость конкретного backend-слоя, а не скорость полного исследования.
В статье пример специально идет на старом компьютере: i5 750, 16 GB RAM, AMD R9 200 2 GB. На таком железе задача как раз показать не рекорд скорости, а роль архитектуры: что сначала нужно отсечь, что переиспользовать, что не считать вообще и как собрать расчетный план.
Если перенести ARANEA на сервер уровня AMD EPYC 9554 64C/128T, 128-256 GB RAM и добавить 2-4 GPU уровня RTX 4090 / RTX 6000 Ada / L40S, то плотный PM-batch можно вынести на GPU и получить уже не сотни тысяч, а сотни миллионов PM-оценок в секунду на подходящих задачах. Но полный pipeline ускорится меньше, потому что вокруг PM остаются entry-prep, группировка, pruning, winners, артефакты и правая сторона.
Поэтому я не спорю, что GPU может быстро считать. Мой тезис другой: скорость backend-а не равна качеству исследования. 200 000 комбинаций/сек — это хорошая скорость исполнительного слоя. Но если нет карты гипотез, отсечения, проверки правой стороны и понимания, какие ветки вообще живые, то это больше похоже на быстрый перебор, чем на управляемое исследование стратегии.
А отсечки бессмысленных комбинаций параметров происходят на этапе подготовки данных для GPU симуляций — это реализовано просто как фильтр комбинаций через колбэк — если какое-то условие на отношение параметров не проходит, то подготовки и GPU прогона не будет. И да, это сильно уменьшает количество комбинаций, которые проверяются:) Но эти фильтры — это ничто по сравнению с изолированными статистическими исследованиями, которые дают возможность посчитать конкретный параметр, а не найти его в брутфорсе всех комбинаций.
Тогда мы говорим почти об одном и том же: сначала сужение пространства, потом быстрый исполнительный слой, потом финальная проверка. Я не спорю, что GPU отлично подходит для плотной симуляции одной стратегии с разными параметрами автоматов.
Но в моем эксперименте важен еще и масштаб контура. Сейчас замеры идут на старом Intel Core i5 750: это 4-ядерный процессор 2009 года, но в конфиге расчет ограничен 3 ядрами. На нем ARANEA на разных стратегиях дает разную скорость: где-то 100k оценок/сек, где-то 600k+, на отдельных простых участках бывает около 1M. Разброс зависит от PM, длины жизни сделки, pruning и структуры входов.
Я пробовал переносить часть вычислений на GPU. На отдельных PM-batch-ах CPS действительно рос примерно в 6-20 раз. Но вместе с этим кратно росли и затраты: сложность архитектуры, память, нагрев, требования к железу и устойчивость длинного прогона. Когда сценарий становится не “одна стратегия и одна функция качества”, а массовое исследование: сотни стратегий, разные таймфреймы, 1000+ правил, десятки PM, сотни индикаторных рядов, GPU начинает упираться уже не только в математику, но и в память, температуру, передачу данных и неоднородность задач.
Поэтому я и не ставлю GPU в центр статьи. GPU — сильный backend для подготовленных плотных batch-ей. Но исследовательский контур должен сначала решить, что считать, что отсечь, какие ветки сохранить и как проверить правую сторону. Старый CPU в этом смысле показателен: он может несколько дней стабильно жить на огромной расчетной сетке, потому что архитектура режет мусор, переиспользует данные и ведет расчет последовательно.
Так что мой тезис не “GPU не нужен”. Наоборот, GPU может быть вторым исполнительным контуром. Мой тезис: скорость отдельной симуляции и скорость исследования — разные вещи. Если оптимизировать только одну метрику одной стратегии, GPU выглядит идеально. Если строить карту гипотез по множеству стратегий, правил, PM и рынков, то сначала нужна архитектура исследования, а уже потом CPU/GPU как вычислительные исполнители. Я позже в статьях обязательно раскрою эту тему подробно, но это будет позже)
1. Вы только акции торгуете? Или переключение между фьючерсами реализовали в TSLab ?
2. Стратегию то получилось реальзовать с помощью-нового супер-пупер подхода? Идея самой стратегии НЕинтересна.
Я про(пример):
— была стратегия которая работата не очень и на out-of-sample получался стремный результат
— сейчас получается 2года out-of-sample на новых данных, с отличным результатом, DrawDown уменьшился в 2-3раза, выросла доходность, Sharpe и т.д.
Был вот такой график Эквити, а сейчас стал вот такой.
(БЕЗ деталей реализации внутри)
Есть такое! Результат то есть? Или только лопата есть?
Пример с результатами я буду показывать на той же банальной идее из статей: ложный пробой дневного уровня, те же общие правила, те же “краски” и тот же контур отбора. Без деталей, которые превращают это в готовую торговую инструкцию. Если бы цель была похвастаться результатами или открытиями, я бы начал серию не с “2 000 000 вычислений в секунду в TSLab”, а с “2 000 000 в месяц на TSLab”. Но это была бы уже совсем другая статья.
Я не пытаюсь показать “супер-пупер подход”. Наоборот, подход довольно логический: сначала понять, что именно считаем, потом отсечь бессмысленные ветки, потом проверить не одного чемпиона, а семейства профилей, потом смотреть out-of-sample/правую сторону. Для меня “супер-пупер подход” — это скорее когда быстро нашли лучший набор параметров по одной метрике и отправили его в бой. Вот это как раз путь на убой.
По рынкам: речь не только про акции. ARANEA строится как контур под разные рынки: крипта spot/futures, MOEX, forex, US stocks. TSLab в статьях используется как понятная визуальная точка отсчета, а не как место, куда я пытаюсь запихнуть весь мульти-рынок и переключение фьючерсов.
По тестированию: суть везде одна. Можно прогнать 200-300 стратегий вперед-назад, поработать с аналитикой, потом запустить их в бэктест или на правую часть истории. Это мало чем отличается от проверки на правой стороне графика: важно не то, где именно нажата кнопка, а выдерживает ли профиль новые данные, соседние параметры, комиссии, просадку и смену рыночного режима.
Поэтому “лопата” здесь не самоцель. Инструмент нужен не ради красивой скорости, а чтобы не путать исследование с подбором лучшей строки в таблице. Результат для меня — это не один красивый equity-график, а набор профилей, которые прошли отбор, правую сторону и не развалились при нормальной проверке.