kallamadi18-code/Bayesian-Regime-Detection-Engine

GitHub: kallamadi18-code/Bayesian-Regime-Detection-Engine

基于隐马尔可夫模型的无监督学习项目,从 NIFTY 50 指数历史数据中自动发现并识别隐藏的市场状态。

Stars: 0 | Forks: 0

# 🖤 贝叶斯市场状态检测引擎 ### *通过机器学习解码隐藏的市场行为* ## “每个市场都在讲述一个故事。大多数人只看到了价格。而这个项目旨在寻找其背后的隐藏状态。” 金融市场很少呈直线运动。在每一次上涨、回调崩盘的背后,都隐藏着无法直接观察到的市场状态。 本项目使用历史 NIFTY 50 数据和隐马尔可夫模型(HMM)来探索这些隐藏的状态。模型无需人工进行市场标注,而是从历史价格走势和技术指标中学习模式,从而识别不同的市场状况。 目标很简单:揭示那些无法直接看到的东西。 # 项目概述 本项目遵循完整的金融数据分析 pipeline。 - 历史数据收集 - 数据清洗 - 特征工程 - 技术指标生成 - 隐马尔可夫模型训练 - 市场状态预测 - 检测到的状态可视化 每个阶段均使用真实的历史市场数据在 Python 中实现。 # 数据集 **来源:** Yahoo Finance **市场:** NIFTY 50 (^NSEI) **覆盖时间范围:** - 2020年1月 - 2025年12月 数据集包含: - 日期 - 开盘价 - 最高价 - 最低价 - 收盘价 - 成交量 # 使用技术 - Python - Pandas - NumPy - Matplotlib - yFinance - hmmlearn - Scikit-Learn # 特征工程 原始市场数据被转化为有意义的金融指标。 特征包括: - 日收益率 - 20日移动平均线 - 50日移动平均线 - 滚动波动率 - 相对强弱指标 (RSI) - MACD - 信号线 这些指标描述了市场的动能、趋势和不确定性。 # 机器学习 本项目使用了**高斯隐马尔可夫模型(HMM)**。 与监督学习不同,该模型不需要预定义的标签。 相反,它直接从数据中发现隐藏的市场状态。 输入特征: - 日收益率 - 波动率 - RSI - MACD 输出: - 隐藏状态 0 - 隐藏状态 1 - 隐藏状态 2 这些隐藏状态随后可以被解释为不同的市场状况,例如牛市、熊市或震荡市。 # 可视化 本项目包含多个金融可视化图表。 - NIFTY 50 收盘价 - 移动平均线分析 - 滚动波动率 - RSI 指标 - MACD 指标 - 隐藏状态可视化 这些图表有助于解释市场行为以及模型的预测。 # 结果 隐马尔可夫模型成功地从历史 NIFTY 50 数据中检测出了三种隐藏的市场状态。 可视化图表展示了市场行为是如何随时间变化的,以及机器学习如何在无需手动定义的情况下识别出这些转变。 检测到的状态为理解市场动态提供了一种不同的视角。 # 项目结构 ``` Bayesian_Regime_Detection/ │ ├── data/ │ ├── raw/ │ └── processed/ │ ├── main.py ├── README.md ├── requirements.txt └── .gitignore ``` # 展示技能 - 金融数据分析 - 时间序列分析 - 特征工程 - 数据可视化 - 隐马尔可夫模型 - 机器学习 - Python 编程 - 金融分析 # 未来改进 可能的增强功能包括: - 实时市场数据集成 - 自动状态标注 - 交互式仪表板 - 超参数调优 - 投资组合风险分析 - 实时预测 # 结论 本项目演示了如何通过机器学习来探索金融市场内的隐藏模式。 重点不是直接预测价格,而是通过揭示影响价格走势的潜在状态来理解**市场行为**。 它代表了一次基于真实市场数据的端到端实现,涵盖了金融数据分析、特征工程以及无监督机器学习。 ## 作者 **Maheswar Reddy Kallamadi** AI 与 ML 学生 *“市场从不会揭示一切。有时,隐藏的状态才讲述着真实的故事。”*
标签:Apex, Python, 无后门, 时间序列分析, 机器学习, 特征工程, 逆向工具, 量化金融, 隐马尔可夫模型