Блог им. ARANEA

ARANEA: от красивой стрелки к измеряемой ТВХ Часть 6

    • 14 июня 2026, 14:15
    • |
    • ARANEA
  • Еще
Эта статья -  начало исследования популярных торговых стратегий и точек входа в цифрах: сколько сигналов они дают, сколько живут после срабатывания, сколько комбинаций отсекается до тяжелого расчета и почему красивая стрелка на графике еще не является торговой системой.
ARANEA: от красивой стрелки к измеряемой ТВХ Часть 6


 Наверное, отдельно запишу видео о работе вычислений, сравнении методов и показателей, чтобы это было нагляднее. А пока — небольшая статья с основной логикой и цифрами.

В интернете много статей, курсов и разборов про торговые стратегии. Почти везде один и тот же спектакль: красивая точка входа, аккуратный выход по `take profit`, немного статистики и вывод, что логика рабочая.

Рядом обычно живут формулировки уровня «мой собственный алгоритм», «инновационный робот», «крутая стратегия», «пользуйтесь, пока работает». Только математической постановки нет, формул нет, исследования нет, причин отбора нет. Самое интересное, что на такое все равно есть спрос. Значит, рынок будет еще долго кормить старые проверенные методы: не потому что они спрятаны в секретной комнате, а потому что большинство проходит мимо них.

Есть старая фраза: если хочешь хорошо что-то спрятать, спрячь это на самом видном месте.Для рынка она подходит хорошо. Часто важна не «секретная кнопка», а умение нормально измерить очевидные вещи.

Точка входа на истории почти всегда может выглядеть красиво. Поэтому я предлагаю смотреть на ТВХ проще и жестче: не как на стрелку на графике, а как на событие, которое можно измерить.

Для алгоритма ТВХ выглядит так:`entry = condition(asset, timeframe, bar) == true`

Условие либо сработало, либо нет. Дальше начинается статистика: сколько было таких событий, на каких активах, сколько баров сигнал жил, какое движение появлялось после входа и что происходило при подключении PM.

Входы часто нормальные. Проблема не в этом

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

По-простому: сошлись условия, и с этого места цена с большей вероятностью должна пойти вверх или вниз.
Проблема начинается там, где красивую интерпретацию выдают за доказанную торговую систему. Чтобы понять, работает ли ТВХ, одной картинки мало. Нужно считать вероятность, а для вероятности нужны сделки.
Причем лучше считать не на одном активе. Если правило претендует на описание поведения цены, его полезно проверять шире: акции, крипта, форекс, разные режимы, разные участки истории. Логика простая: если правило работает только на одном удачном графике, это может быть не закономерность, а локальный фрагмент истории.
Что я проверял

Я провел исследование на `300+` вариантах свечных моделей и `20` активах. Внутри были собственные фильтры и логические условия, которые под каждый актив давали свой набор срабатываний. С цифрами и данными по пулам стратегий будет позже так как информации много и это лонгриды...

Главные первичные метрики:

1. сколько сигналов дало правило;
2. сколько баров после сигнала правило еще имело смысл;
3. сколько входов умерло сразу;
4. как правило ведет себя на разных активах;
5. что меняется после фильтров, EMA-контекста и PM.

После первичной карты входов я добавил `4` EMA-правила и `5` базовых PM. Дальше запускал это через optimizer ARANEA, а также через Monte Carlo и Байес уже как методы дальнейшего отбора.

Пример: ложный пробой DayLow
В первых частях я начинал с простой идеи: ложный пробой дневного минимума красной свечой. Это не «секретная стратегия», а удобный базовый пример. На нем видно, как из одной понятной ТВХ получается расчетная карта.

В запуске были две `DayLow`-ветки по стратегии `RED_BAR`. Диапазон исследования — около двух лет.

ARANEA: от красивой стрелки к измеряемой ТВХ Часть 6 Здесь важно не уходить сразу в прибыль. Сначала мы смотрим, есть ли статистическая масса. Если есть тысячи срабатываний и сотни тысяч кандидатов, можно говорить о вероятности. Если есть одна красивая стрелка на графике — говорить пока не о чем.
Что отсеклось до тяжелого PM
До тяжелого расчета ARANEA отсекает то, что заранее не имеет смысла гнать дальше.
ARANEA: от красивой стрелки к измеряемой ТВХ Часть 6

Несколько простых расчетов:

`247 201 / 796 194 ≈ 31%` — доля кандидатов, которые вообще дали входы.
`548 993 / 796 194 ≈ 69%` — zero-entry, то есть ветки без входов.

`5 861 / 796 194 ≈ 0.74%` — доля кандидатов, которые дошли до PM.

`3 392 627 694 448 / 3 417 786 951 264 * 100 = 99.263873%` — доля отсечения до тяжелого PM-прогона.

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

Сколько это по времени
На старом компьютере текущие замеры для разных стратегий и PM дают примерно `100 000-500 000` прикладных оценок в секунду. Для среднего расчета возьму `160 000` оценок в секунду.

Если считать верхнюю сетку в лоб:

`3 417 786 951 264 / 160 000 = 21 361 168.445` секунды = `247.24` дня.

После entry-отсечения:

`25 159 256 816 / 160 000 = 157 245.355` секунды = `43.68` часа = `1.82` дня.

| Скорость | Верхняя сетка | После entry-отсечения || 100 000/сек | 395.58 дня | 2.91 дня |
| 160 000/сек | 247.24 дня | 1.82 дня |
| 500 000/сек | 79.12 дня | 13.98 часа |

Поэтому разговор о ТВХ быстро становится разговором об архитектуре. Даже до PM уже видно, что считать все подряд — плохая идея.

Как считать вероятность

ARANEA: от красивой стрелки к измеряемой ТВХ Часть 6


Здесь я беру базовую формулу без углубления в математический контекст. Подробную статистику, распределения и доверительные интервалы лучше выносить отдельно, иначе статья превращается в учебник.
Самый простой способ: `p = W / N`

где `N` — количество входов, `W` — количество успешных исходов.

Например, если из `4 420` входов `2 300` дали нужный исход: `p = 2 300 / 4 420 ≈ 52%`

Но главное — заранее определить, что такое «успешный исход». Иначе вероятность ничего не значит. Для ТВХ можно считать, например:

`p(success | entry, asset, horizon, threshold, direction)`
То есть вероятность зависит от входа, актива, горизонта, порога движения и направления.


MAE/MFE до выбора PM

Чтобы не спорить сразу о stop-loss, take-profit и trailing, сначала можно измерить поведение цены после входа через `MAE` и `MFE`.

`MFE` — maximum favorable excursion, максимальное благоприятное отклонение после входа.

Для long:`MFE = (max(high) — entry_price) / entry_price * 100%`

`MAE` — maximum adverse excursion, максимальное неблагоприятное отклонение после входа.

Для long:`MAE = (entry_price — min(low)) / entry_price * 100%`

Для short формулы зеркальные.

Дальше задается горизонт: `1-4` часа, `1` день, `2` дня или другой период под конкретную стратегию.
Например:`p_4h = count(MFE_4h >= 0.8% and MAE_4h <= 0.4%) / N`

Так мы еще не выбрали конкретный PM, но уже понимаем, есть ли после входа движение, насколько оно быстрое и какой неблагоприятный ход приходится терпеть.
Вот здесь появляется слой исследования, который я редко встречал в русскоязычных материалах. Обычно путь выглядит проще: нашли сигнал, прикрутили PM, подобрали параметры stop/take/trailing, получили лучшие показатели и отправили вариант в торговлю. Это путь `99.9%` трейдеров. Я сам долго делал примерно так же.
Но логически между сигналом и PM есть отдельный вопрос: что рынок вообще делает после срабатывания входа? Есть ли там импульс, сколько баров он живет, какой `MAE` приходится пережить до появления `MFE`, как быстро сигнал портится и есть ли смысл вообще искать для него выход из сделки.
Если после сигнала нет движения, то подгонка PM превращается в попытку красиво закрыть плохой вход. Если движение есть, но оно живет мало баров, нужен один тип управления. Если движение медленное и с большим `MAE`, нужен другой. Если часть входов быстро умирает, их лучше отсечь до тяжелого PM-прогона, а не заставлять stop-loss доказывать очевидное.
То есть задача не в том, чтобы сразу искать идеальный выход. Сначала нужно оценить состояние рынка после сигнала. Кто понял этот участок, уже может расширять контур исследования: делать замеры, строить карту живучести входов и только потом подбирать PM. EMA — только пример фильтра
EMA в этом исследовании — не грааль, а базовый пример фильтра рыночного контекста: цена выше/ниже средней, быстрая средняя выше/ниже медленной.

На месте EMA могут быть сотни других условий: волатильность, объем, ATR, RSI, MACD, уровни, старший таймфрейм, кластеры, свечные свойства, скорость изменения индикатора и их комбинации. Таких фильтров и связок можно набрать сотни тысяч.

Главный вопрос уже не в том, можно ли придумать еще один фильтр. Можно. Вопрос в другом: кто это будет считать, кто будет анализировать результат и каким методом потом отбирать живые области, а не красивые случайности.

ARANEA: от красивой стрелки к измеряемой ТВХ Часть 6



Вывод

ТВХ — это не стрелка на графике. Это событие, которое нужно измерять.

В моем эксперименте `300+` свечных моделей на `20` активах превратились не в список «лучших входов», а в карту срабатываний: где правило живет, где умирает, сколько сигналов дает, сколько баров сохраняет смысл, как реагирует на фильтры и что остается после отсечения.

При расширении до `30` вариантов PM около `80%` стратегий дали рабочие профили по заданным критериям. При ограничении до `5` базовых PM доля была ближе к `30%`. Но тупо прокатывать PM по всем входам оказалось плохой идеей: примерно на третий день наблюдений стало понятно, что так можно долго гонять цифры и плохо понимать саму сделку. Поэтому я сместил фокус в сторону быстрых замеров живучести входа: сколько сигнал живет, какой `MAE/MFE` дает на горизонте, где движение появляется, а где вход умирает раньше, чем PM успевает что-то доказать.

Именно поэтому ARANEA нужна как расчетный контур, а не как простой оптимизатор. Когда входов сотни, активов десятки, фильтров много, PM несколько, а дальше подключаются Monte Carlo и Байес, вопрос уже не в том, где была красивая точка входа.
Вопрос в том, какие входы вообще заслуживают тяжелого расчета и дальнейшей проверки.
Маленький комментарий про формат. Я понимаю, что длинные статьи любят не все. Но из пары скриншотов и двух абзацев нельзя нормально собрать логику исследования, особенно если разговор идет о деньгах, вероятности и торговых решениях. Здесь важен не спор «что лучше», не гонка за лучшим `PnL`, а последовательность размышления: что считаем, зачем считаем, что отсекаем и какой вопрос задаем рынку дальше. 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
487
10 комментариев
Как быстро сигнал портится ?? Сигнал никогда не портится. Изменяются  условия с каждым шагом времени.Типа появляется новый участник или уходит старый участник.Это очень похоже на шахматы.Каждый ход требует переоценки позиции.Это подробно в книге мастера О.В. Чеботарева — уроки шахматной стратегии.Это лучшая книга про шахматы.Лучшая книга про график — Глен Нили -Мастерство анализа волн Эллиота.Далее Патрик Микула -...5 новых техник Эндрюса. Обязательно VSA про манипуляцию и зоны покупцов и продавцов.
Книги автора поста(книги) достойны похвалы. Они напоминают мне работу в проге Метасток 7.2.Другая прога Амиброкер 4.3.Есть и другие. Я изучил все индикаторы и системы из них и горько пожалел потерянные 7 лет до 2007г.
Пробойные системы  опаздывают и дают большой стоп лосс. 
avatar
ezomm, 

Согласен, точнее сказать не “сигнал портится”, а “меняется качество ситуации после сигнала”. Сам факт сигнала уже произошел, но дальше каждый бар меняет контекст: цена, объем, MAE/MFE, волатильность, расстояние до уровня, скорость движения.

Я как раз описываю не модель “запрограммировал стратегию под конкретный PM и подогнал stop/take”, а другой слой: сначала измерить, что происходит после входа, и уже по изменению показателей выбирать подходящий PM.

То есть не сразу: сигнал -> stop/take -> лучшие параметры.
А сначала: сигнал -> поведение после сигнала -> оценка качества ситуации -> выбор управления позицией.

avatar
ARANEA, изучай основу.Тренд — всегда нечет шагов цены .3,..+2...+2… и тд.Одна из волн растянута. Коррекция всегда 2.Шаг цены — свеча солдат (тело больше суммы теней). 
avatar
ezomm, я волновой знаю достаточно хорошо и все его варианты моделей тоже… то что Вы написали — математически опишите !? 

avatar
ARANEA, покажешь свою разметку? Мои разметки в моих комментах и блоге. Если не понятно, то сохрани мой коммент.Обучением не занимаюсь.
avatar

можно несколько технических вопросов:
(1) на чем (каком языке программирования) пишется код стратегии для ARANEA ?
(2) как потом «легко» переложить(переписать) эту стратегию в «модуль для реальной торговли» (tslab или что то другое)?

Вы так все красиво расписываете про систему и тестинг => планируете ли открыть к ней доступ ?

avatar

Vadim S, 
1. Основной стек ARANEA — Rust/Go. На нем написаны вычисления, оптимизация, бэктестер и торговый движок. Это не только оптимизатор, а полный контур для проверки, расчета профилей и дальнейшей работы с торговой логикой.
2. С переносом в TSLab проблем нет. Когда я создавал ARANEA, я изначально брал конфиги и логику расчетов из TSLab: названия параметров, PM, правила, структуру оптимизации. То есть ARANEA считает ту же логику, но быстрее за счет другого стека и другой архитектуры вычислений.

После оптимизации получается конкретный профиль: параметры входа, фильтры, PM и настройки. Его можно перенести обратно в TSLab вручную через кубики или переписать в кодовый модуль. Разница не в логике стратегии, а в том, где она считается и исполняется.

Открывать доступ к ARANEA как к программе я не планирую. Рассматриваю два формата: оптимизация стратегий под заказ или партнерство в разработке ПО/торгового контура.

avatar
ARANEA, 

Пример с MFE хорошо показывает связь TSLab и ARANEA.

В TSLab это обычный кубик из TSLab.Script.Handlers.dll:

<code>TSLab.Script.Handlers.MFE
Execute(IPosition pos, int barNum) -> double</code>

По смыслу он берет MFE позиции на выбранной свече. В API TSLab это выглядит как:

<code>pos.OpenMFE(barNum)
pos.OpenMFEPct(barNum)
pos.MFE()
pos.MFEPct()</code>

То есть MFE — это максимальный возможный доход позиции от цены входа до выбранного бара / закрытия сделки.

В ARANEA логика та же, только она вынесена в расчетный контур:

<code>func MFE(isLong bool, entryPrice, maxH, minL float64) float64 {
    if isLong {
        return maxH - entryPrice
    }
    return entryPrice - minL
}</code>

Для процентов:

<code>mfePct = mfeAbs / entryPrice * 100</code>

Для long берется максимум High после входа:

<code>MFE = max(high) - entryPrice</code>

Для short наоборот:

<code>MFE = entryPrice - min(low)</code>

Поэтому перенос логики между TSLab и ARANEA не является проблемой. Я изначально делал совместимые по смыслу сущности: PM, параметры, MFE/MAE, stop/take/trailing. Разница в том, что в TSLab это кубик внутри визуального конструктора, а в ARANEA это часть бэктестера, оптимизатора и торгового движка, которую можно массово считать по миллионам профилей.

avatar

судя по коду, сама стратегия пишется на Go?

 

Рассматриваю два формата: оптимизация стратегий под заказ или партнерство в разработке ПО/торгового контура.

 

я сам разрабатываю фрейморк на Go для запуска ботов.

Торговый движок практически готов (уже крутятся в боевом режиме пару ботов).

В планах сделать сделать логику подсчета позиции в разрезе стратегии (пока данные о позиции возвращает брокер). И сделать тестер.

Но Ваш тестер впечатляет возможностями

avatar

го для оптимизации — раст для торговли ...

могу порекомендовать - 

  1. Strategy layer
    Только генерирует намерение: открыть/закрыть/изменить позицию. Не считает брокерскую позицию и не знает деталей исполнения.

  2. Execution layer
    Отправляет заявки, получает статусы, fills, ошибки, частичные исполнения. Это адаптер к брокеру/бирже.

  3. Position ledger
    Главный внутренний источник правды по позициям стратегий. Строится только из fills/events, а не из текущего ответа брокера.

  4. Position manager / risk
    Работает с внутренней позицией: SL/TP, trailing, лимиты, сопровождение, закрытие.

  5. Broker snapshot
    Отдельный слой фактической позиции у брокера. Его задача — сверка, восстановление, контроль расхождений, но не основная бизнес-логика стратегии.

  6. Reconciliation
    Сравнивает внутренний ledger с брокером и решает, что делать при расхождениях: warning, block trading, force sync, manual review.

Главная рекомендация: не смешивать strategy position и broker position. Стратегия должна жить от внутреннего ledger, брокер — только подтверждать реальность и помогать ловить рассинхрон.

Ключевое: не вести позицию “из брокера наверх”. Лучше вести ее “из событий вниз по контуру”.

Брокерский snapshot должен быть нижним контрольным слоем, а не источником логики стратегии. Тогда стратегия, PM, тестер и аналитика работают с одним внутренним состоянием, а брокер используется для сверки факта исполнения и поиска рассинхрона.

<code>Strategy
-> Signal/Intent
-> Execution
-> Fill events
-> Internal ledger
-> PM/Risk
-> Broker reconciliation</code>

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

avatar

Читайте на SMART-LAB:
Фото
Эфир на канале «Деньги из Бетона» с участием ПАО «АПРИ»
Эфир на канале «Деньги из Бетона» с участием ПАО «АПРИ» В недавнем эфире «Деньги из бетона – Недвижимость РФ» Мария Глухова ,...
Фото
⏳ Уже завтра — первый в истории МГКЛ День инвестора!
Если вы еще не успели зарегистрироваться — сейчас самое время. Завтра мы представим обновленную стратегию развития Группы, расскажем о планах...
Фото
🗂 Размещение валютных облигаций «Атомэнергопрома»
«Атомэнергопром» — интегрированная компания, консолидирующая гражданские активы атомной отрасли. Обеспечивает полный цикл в сфере ядерной...
Фото
Интер РАО. Цена min за 10 лет. Пора покупать?
Последние месяцы наш фондовый рынок снижается, но я не буду разбираться в причинах (про них говорят все кому не лень), а поговорим по...

теги блога ARANEA

....все тэги



UPDONW
Новый дизайн