Блог им. 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.3К | ★3
5 комментариев
Как тренер для гур… вынужден похвалить автора на 4-. Он не научил НС читать график по каждой свече, но явно проделал большую работу. Действительно макси вероятность прогноза 75%. ATR() ,RSI() ,ADX() ,OBV это хорошие индикаторы. Коридоры регрессии, вилы Эндрюса и просто коридоры архи полезны. Я использовал их до 2007г в проге Метасток 7.2. Могу подсказать и др индюки .R квадрат(устойчивость тренда ?), коридор ошибки(анти ВВ) и… мой любимый — перекрытие фракталов L-ref(H,-2) для тренда в рост. От перекрытия зависит сила фрактала. Сила также зависит от тайма и размера фрактала (кол-во свечей ). Желаю также автору придумать формулу расчета периода индикаторов. Период — главный недостаток всех индикаторов. Даже в Ишимоку есть период. Перекрытие поможет в этом. Макси перекрытие = боковик и это период= 34. Мини Пе-е (нет перекрытия)  это тренд= импульс (по ВА) и период= 1 .
В мое время (2000г-2007г) вероятности давали проги ВА Эллиота EWA 6.0  и др. Теперь мы придумываем колесо? И это правильно!!! Только опыт(тест), сын ошибок трудных, откроет новые горизонты.
Учимся читать график по каждой свече .1-VSA .2-ВА Эллиота .3- фракталы=свечи+объем.
avatar

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

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

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

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

Читайте на SMART-LAB:
Фото
📢 Открыта книга заявок на два новых выпуска облигаций от ГК «А101»
На этой неделе ГК «А101» разместит два выпуска облигаций на сумму не менее 3 млрд рублей. Прием заявок уже открыт и продлится до 24...
Alexeevlive: зарабатываем в прямом эфире
Авторский стрим Сергея Алексеева – трейдера, который 14 лет живёт рынком. Он не рассказывает теорию. Он не рисует сделки на истории. Он...
Фото
🎄 Ресейл — символ разумного потребления в новом году
🎁 В конце года многие подводят итоги и пересматривают отношение к деньгам, вещам и собственным решениям. И всё чаще возникает вопрос не...
Фото
Ваш любимый еженедельный мозговой штурм W#113
Доброго вечера! В этом году без новогоднего подарка от ЦБ: Неделю назад писали , что ЦБ обычно разочаровывает своими решениями. В этот раз вышло...

теги блога Roman crypto_maniac

....все тэги



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