Блог им. RomellaAkumov

Вероятностный анализ финансовых рынков на основе чистого OHLCV и многомодульной математической модели

Введение: зачем рынку нужна вероятностная модель

Большинство торговых систем работают детерминированно: “если RSI пересёк X — покупай”.Но рынок — стохастическая система. Сигналы не бинарны, они вероятностны.

Это приводит к трём фундаментальным проблемам классических индикаторных систем:

  1. Отсутствие нормализацииИндикаторы дают значения в разных единицах, не сопоставимы между собой.
  2. Нет учёта рыночных режимовRSI=70 в тренде и RSI=70 в боковике — разные вещи по вероятности разворота.
  3. Нет вероятностной оценки результатаТрейдеру нужно не “Buy”, а «Вероятность роста 0.67 при уверенности 0.72». Это более объективная мера

И анализатор, который мы сегодня разберём, решает это, используя:

  • только OHLCV-данные
  • многовременной анализ (HTF/LTF)
  • оценку волатильности
  • нормализованные регрессионные признаки
  • рыночные режимы как скрытые состояния
  • логистическую функцию превращения score → probability
  • модель confidence для оценки качества сигналов
  • анализ альткоинов через TOTAL/TOTAL2/TOTAL3/OTHERS.D

Система превращает разрозненные технические признаки в унифицированную вероятностную модель рынка.

Чтобы не засорять статью безумным количеством кода, основной скрипт выложен на github

2. Архитектура проекта

Проект состоит из четырёх ключевых модулей:

<code>DataManager               – загрузка данных OHLCV
MTF Analyzer              – анализ разных таймфреймов
Technical Indicators      – расчёт всех raw-метрик
Scoring Engine            – превращение сигналов в вероятность
Alt-Market Analyzer       – анализ TOTAL/TOTAL2/TOTAL3/OTHERS.D

</code>

Модули взаимодействуют так:

  1. DataManager скачивает OHLCV через CCXT.
  2. AdvancedTechnicalAnalyzer считает индикаторы.
  3. MultiTimeframeAnalyzer рассчитывает согласованность трендов между HTF/LTF/Daily.
  4. VolatilityRegimeEngine определяет волатильность.
  5. IntelligentScoringEngine превращает все признаки в итоговый score.
  6. Score → логистическая функция → вероятность направления цены.
  7. Alt-Market Analyzer добавляет макрорынок (TOTAL/TOTAL2/TOTAL3, OTHERS.D).
  8. Всё сохраняется в JSON/CSV и отображается в summary.

3. Математическая база модели

Разберём фундаментальные блоки, на которых построена модель.

3.1 ATR — оценка истинной волатильности

ATR = EMA(True Range), где True Range =max(high - low, |high - close_prev|, |low - close_prev|)

Это даёт оценку амплитуды движения без направления.

Используется в модуле:

  • Volatility Indicators (atr_percent)
  • Volatility Regime Engine
  • Momentum Risk Adjustment

ATR позволяет системе учитывать:

  • низкую волатильность (аккумуляция)
  • высокую волатильность (паника, разворот, новости)

3.2 ADX — вычисление трендовости рынка

ADX — ядро определения рыночного режима.Он показывает силу тренда, а не направление.

<code>ADX = EMA(DX)
DX = |+DI − −DI| / (+DI + −DI)
+DI = EMA(high − prev_high)
−DI = EMA(prev_low − low)</code>

Использование в модели:

  • market_regime_score (0–1)
  • режимы trending / consolidation / mixed

Важный момент: ADX вводит рыночные режимы как скрытые состояния.

3.3 Дисперсия & std доходностей

Историческая волатильность:

<code>σ = std(close.pct_change().rolling(20))</code>

Это используется:

  • для текущего режима волатильности
  • для Momentum Risk Adjusted Score
  • для Volatility Score
  • как фильтр всплесков волатильности

3.4 Линейная регрессия как модель тренда

Важнейшая идея:

slope = направление

r² = устойчивость тренда

Использование:

  • trend_strength
  • trend_consistency
  • оценка рыночной структуры
  • market_regime_score
  • согласованность по таймфреймам

Получаем намного лучшее представление тренда, чем просто EMA50/200.

3.5 Логистическая функция вероятности

Итоговый score переводится в вероятность через логистическую функцию:

Вероятностный анализ финансовых рынков на основе чистого OHLCV и многомодульной математической модели

Используется классическая сигмоидная модель.

P — итоговая вероятность, s — итоговый score (получен путём свёртки всех факторов), k — коэффициент крутизны кривой — чем выше k, тем резче будет логистическая кривая, т.е. реакция на изменение факторов. Она задаётся в конфиге. Там же задаётся и смещение середины для нашей функции x0. e — числа эйлера, оно обеспечивает нормализацию в диапазон и симметрию кривой.

Плюсы:

  • score превращается в интерпретируемое “0.73 вероятности роста”
  • небольшие изменения score вокруг x0 дают сильные изменения P
  • устойчивость к экстремальным значениям

3.6 Многовременные согласованные тренды (MTF)

Модель использует 3 TF:

  • HTF = 1 week
  • Daily = 1 day
  • LTF = 4h

Согласованность =EMA20>EMA50 + slope >0 + RSI согласованность.

Выход:

  • htf_trend
  • ltf_trend
  • daily_trend
  • htf_alignment_score (0→1)

4. Основные функциональные блоки системы

На основе кода разберём ключевые вычислительные ядра.

4.1 Price Action Engine

Использует:

  • price_vs_sma20/sma50
  • позицию цены в канале (max20/min20)
  • расстояние до уровней S/R
  • близость к покупке/продажи

Экономический смысл:

  • цена ниже SMA20/SMA50 → вероятность роста выше
  • цена в нижней части канала → вероятный отскок
  • цена у поддержки/сопротивления → вероятностные паттерны разворота

4.2 Volume Engine

Содержит:

  • Volume Ratio (V / SMA20)
  • Volume Momentum
  • Price-Volume Correlation
  • OBV & OBV Trend

Сильный рыночный признак: Если цена растёт + объём растёт → рост подтверждён.

Если цена падает + объёмы падают → падение ослабевает.

4.3 Market Structure Engine

Использует:

  • Higher Highs / Lower Lows
  • trend_strength (регрессия)
  • trend_consistency (r²)
  • breakout_potential

Смысл: Система понимает, находится ли инструмент в:

  • импульсном тренде
  • устойчивой консолидации
  • предбрейк-аут состоянии

4.4 Momentum Engine

Модуль использует:

  • RSI
  • Stochastic
  • Momentum (5d, 10d, 20d)
  • ROC
  • Risk-adjusted momentum (momentum / volatility)

Это позволяет системе определять состояние:

  • перекупленности/перепроданности
  • истинной силы импульса
  • согласованности краткосрочного и среднесрочного импульса

4.5 Volatility Engine

Содержит:

  • volatility_20d
  • ATR %
  • Bollinger Bands position (bb_position)

Логика:

  • низкая волатильность → вероятность выхода растёт
  • высокая волатильность → сигнал хуже для входа
  • цена у нижней полосы → вероятное восстановление
  • цена у верхней → вероятная коррекция

4.6 Liquidity Engine

На основе:

  • volume_ma20 * price
  • логарифмической нормализации
  • тренда ликвидности (vol_ma5 / vol_ma20)

Смысл:

  • низкая ликвидность → модель снижает уверенность сигнала
  • высокая ликвидность → рынок более предсказуем

4.7 Market Regime Engine

Режимы:

  • trending — трендовые волатильные движения
  • consolidation — консолидация, диапазон
  • mixed — смешанные режимы

Построен на:

  • ADX
  • trend_strength — силе тренда
  • волатильности

Сигналы усиливаются/ослабляются в зависимости от режима:

Error: [31m The Parser function of type «table» is not defined. Define your custom parser functions as: [34mhttps://github.com/pavittarx/editorjs-html#extend-for-custom-blocks [0m

5. Итоговый Final Score

Система объединяет:

  • Price Action
  • Volume
  • Market Structure
  • Momentum
  • Volatility
  • Market Sentiment
  • HTF alignment
  • Volatility regime
  • Market regime
  • Liquidity score

С двумя наборами весов:

  • base (weights)
  • v2 (weights_v2)

Итоговая формула:

FinalScore = Σ(score_i * weight_i) / Σ(weight_i)

6. Преобразование в вероятность

Используется логистическая функция:

<code>ProbLong = 1 / (1 + exp(-k(score - x0)))</code>

Где:

  • score > 0 → рост
  • score < 0 → падение
  • k регулирует кривизну

7. Модель Confidence

Confidence учитывает:

  • отклонение RSI от 50
  • объемную активность
  • силу тренда
  • magnitude final score

Формула — усреднение нормализованных факторов.

Confidence помогает различать:

  • сильные вероятностные сигналы
  • неуверенные сигналы

8. Alt-Market Analyzer: TOTAL/TOTAL2/TOTAL3/OTHERS.D

Используются данные CoinGecko:

  • market_cap
  • price
  • volume

Строятся индексы:

  1. TOTAL — всё
  2. TOTAL2 — без BTC
  3. TOTAL3 — без BTC и ETH
  4. OTHERS.MCAP — mcaps всех кроме топ N
  5. OTHERS.D = OTHERS / TOTAL

Модель позволяет:

  • оценивать сезонность альтов
  • сравнивать силу альтов против BTC/ETH
  • искать корреляции TOTAL2/TOTAL3
  • определять ускорение или замедление рынка

Также рассчитываются:

  • vol7/vol30 — соотношение обьемов
  • vol-adjusted returns — возврат ценовых значений, скорректированный на объём
  • относительная сила против BTC/ETH

9. Как интерпретировать результаты

Каждый инструмент получает следующие данные: symbol, price, final_score, prob_long, confidence, category_scores, indicators — тоесть все те фильтры и значения которые мы ранее описали. Вернее, основные из них.

Пример:

  • ProbLong = 0.78 → высокая вероятность роста
  • Confidence = 0.65 → уверенность средняя
  • В ключевых факторах dominate momentum & market_structure

Трейдер или аналитик может принимать решения опираясь не на субъективные индикаторы, а на количественную модель.

Заключение

Мой анализатор — это попытка построить универсальный вероятностный движок для анализа рынка, используя только OHLCV-данные, но объединяя:

  • многовременной анализ
  • рыночные режимы
  • регрессионную статистику
  • волатильность и объёмы
  • соотношение силы альтов
  • нормализованную оценку признаков
  • вероятностные функции

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

Она даёт:

  • вероятность роста
  • уверенность в сигнале
  • ключевые факторы
  • устойчивые результаты в разных режимах рынка

Эту систему можно легко интегрировать в алгоритмическую торговлю, Telegram-ботов, дашборды трейдинга или даже как часть ML-модели.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
3.5К | ★3
5 комментариев

В мое время (2000г-2007г) вероятности давали проги ВА Эллиота EWA 6.0  и др. Теперь мы придумываем колесо? И это правильно!!! Только опыт(тест), сын ошибок трудных, откроет новые горизонты.
Учимся читать график по каждой свече .1-VSA .2-ВА Эллиота .3- фракталы=свечи+объем.
avatar

ezomm, большое спасибо!)

понимаю, что есть ещё куда стремится по данному анализатору, сейчас это одна из промежуточный версий, которая действительно стала хорошо работать в real-time тестировании. 

Обязательно попробую реализовать названные дополнения

avatar
Эх жаль, денег эта модель не поможет заработать(((
avatar

Читайте на SMART-LAB:
Итоги недели на рынках сырьевых товаров
Итоги недели на сырьевых рынках
Если вас интересуют другие аналитические и информационные материалы от банка АО АКБ «ЦентроКредит», смотрите их на нашем сайте в...
Фото
Акционеры Аэрофлота одобрили выплату дивидендов по итогам 2025 года
Сегодня состоялось годовое заседание Общего собрания акционеров ПАО «Аэрофлот». Акционеры утвердили выплату дивидендов по итогам 2025 года в...
Мосбиржа в Excel: Михаил Шардин о котировках, API и данных для инвестора
В открытой студии ТРЕЙДЕР ТВ побывал Михаил Шардин. Повод для разговора — его статья на СмартЛабе: “ Как я «взломал» Мосбиржу, чтобы бесплатно...
Фото
Длинные ОФЗ: сколько можно заработать, если ключевая ставка ЦБ РФ продолжит снижаться?
Длинные ОФЗ с начала текущего года не демонстрировали выраженного снижения по доходности несмотря на продолжение цикла понижения ключевой ставки...

теги блога Roman crypto_maniac

....все тэги



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