Anandhabhavatarini/market-surveillance-intelligence-platform

GitHub: Anandhabhavatarini/market-surveillance-intelligence-platform

一个端到端的股票市场数据工程与商业智能平台,通过 ETL 流水线、规则异常检测和 Power BI 仪表板实现市场风险监控与异常交易预警。

Stars: 0 | Forks: 0

# 市场监控情报平台 ## 用于股票市场风险监控的端到端数据工程与商业智能解决方案 ![Python](https://img.shields.io/badge/Python-3.x-blue) ![MySQL](https://img.shields.io/badge/Database-MySQL-orange) ![PowerBI](https://img.shields.io/badge/Visualization-PowerBI-yellow) ![ETL](https://img.shields.io/badge/Pipeline-ETL-green) ## 概述 **市场监控情报平台**是一个端到端的数据分析 pipeline,旨在监控股票市场活动,识别异常交易模式,并通过交互式 Power BI 仪表板提供可操作的洞察。 该平台实现了完整的数据工作流自动化: - 市场数据获取 - 数据验证与转换 - 金融特征工程 - 基于规则的异常检测 - 关系型数据存储 - 商业智能报告 该项目通过集成 API、ETL pipeline、SQL 数据库和 BI 分析,展示了一个真实的**数据工程工作流**。 # 业务问题 金融市场会持续产生大量的价格和交易活动数据流。由于金融时间序列数据的规模庞大且极其复杂,依靠人工识别异常的市场行为非常困难。 该平台帮助分析师监控: - 异常的价格波动 - 异常的交易量 - 波动率上升 - 潜在的市场风险事件 # 解决方案架构 ``` Yahoo Finance API | | v Data Ingestion Layer (Python + yFinance) | | v Data Processing Layer Cleaning + Validation + Feature Engineering (Pandas) | | v Surveillance Engine Rule-Based Anomaly Detection | | v MySQL Data Warehouse | | v Power BI Analytics Layer ``` # 技术栈 ## 编程语言 - Python - SQL ## 数据工程 - Pandas - NumPy - SQLAlchemy ## 数据来源 - Yahoo Finance API ## 数据库 - MySQL ## 可视化与报告 - Power BI - MySQL ODBC Connector ## 开发工具 - Git - GitHub - 虚拟环境 # 数据 Pipeline 工作流 ## 1. 数据获取 从 Yahoo Finance 提取历史股票市场数据。 收集的属性: | 列名 | 描述 | |---|---| | Date | 交易日 | | Open | 开盘价 | | High | 最高价 | | Low | 最低价 | | Close | 收盘价 | | Volume | 交易量 | | Stock Symbol | 公司标识符 | ## 2. 数据验证与清洗 该 pipeline 执行以下操作: - 缺失值检查 - 数据类型验证 - 去重 - 日期标准化 - schema 验证 ## 3. 特征工程 为监控分析生成各项金融指标。 创建的特征: | 特征 | 描述 | |-|-| | Daily Return | 价格涨跌幅 | | Moving Average | 趋势指标 | | Rolling Volatility | 市场波动测量 | | Volume Ratio | 异常交易量检测 | | Price Change % | 突发波动检测 | | Z-Score | 统计异常测量 | ## 4. 市场监控引擎 一个基于规则的检测系统,用于识别异常活动。 ### 价格波动规则 检测剧烈的价格波动。 示例: ``` Daily Return > Threshold | v Generate Alert ``` ### 交易量激增规则 检测异常的交易量。 示例: ``` Current Volume / Average Historical Volume | v High Volume Alert ``` ### 波动率规则 识别市场不稳定性的突增情况。 # 数据库设计 处理后的数据存储在 MySQL 中。 ## 数据表 ## market_data 存储清洗后的市场价格。 | 列名 | 描述 | |-|-| | id | 主键 | | company | 股票代码 | | date | 交易日 | | open | 开盘价 | | high | 最高价 | | low | 最低价 | | close | 收盘价 | | volume | 交易量 | ## features 存储经过特征工程处理的金融指标。 | 列名 | 描述 | |-|-| | company | 股票代码 | | date | 交易日 | | daily_return | 价格回报率 | | volatility | 滚动波动率 | | volume_ratio | 交易量异常度 | | z_score | 风险评分 | ## alerts 存储检测到的市场异常情况。 | 列名 | 描述 | |-|-| | company | 股票代码 | | date | 预警日期 | | alert_type | 触发的规则 | | severity | 风险类别 | | anomaly_score | 异常检测分数 | # Power BI 仪表板 Power BI 仪表板提供交互式的市场情报。 ## 仪表板 1:高管风险概览 提供管理层级别的洞察: - 监控的公司总数 - 生成的预警总数 - 高风险预警 - 市场风险分布 - 风险趋势分析 ## 仪表板 2:市场分析 提供详细的股票分析: - 价格趋势 - 交易量分析 - 日回报率 - 波动率追踪 - 移动平均线 ## 仪表板 3:监控管理 专注于异常活动检测: - 预警监控表 - 严重程度分类 - 触发的规则 - 公司风险排名 ## 仪表板 4:公司专项调查 允许分析师深入调查特定公司: - 历史价格波动 - 交易量行为 - 风险事件时间线 - 预警历史 # 核心工程特性 ✔ 自动化数据获取 pipeline ✔ 模块化 Python 项目结构 ✔ 基于 SQL 的分析型存储 ✔ 金融特征工程 ✔ 基于规则的异常检测 ✔ Power BI 交互式报告 ✔ ODBC 数据库连接 # 项目结构 ``` MARKET-SURVEILLANCE-PIPELINE/ ├── data/ │ ├── logs/ │ ├── metadata/ │ ├── processed/ │ ├── raw/ │ └── cleaned ├── src/ │ ├── __pycache__/ │ ├── analytics.py │ ├── clean.py │ ├── config.py │ ├── database.py │ ├── detect.py │ ├── features.py │ ├── ingest.py │ ├── load_database.py │ ├── logger.py │ └── validate.py ├── venv/ ├── .gitignore ├── main.py ├── README.md └── requirements.txt ``` # 安装与设置 ## 克隆仓库 ``` git clone cd market-surveillance-pipeline ``` ## 创建虚拟环境 ``` python -m venv venv ``` 激活: Windows: ``` venv\Scripts\activate ``` Linux: ``` source venv/bin/activate ``` ## 安装依赖 ``` pip install -r requirements.txt ``` # 配置数据库 创建 MySQL 数据库: ``` CREATE DATABASE market_surveillance; ``` 在配置文件中更新数据库凭证。 # 运行 Pipeline 执行: ``` python main.py ``` 该 pipeline 将会: 1. 提取市场数据 2. 处理并清洗数据 3. 生成金融特征 4. 检测异常情况 5. 将结果加载到 MySQL 中 # Power BI 连接 数据流: ``` Power BI | | ODBC Connector | | MySQL Database | | Market Surveillance Tables ``` 刷新仪表板以查看最新的分析结果。 # 未来展望 ## 实时流处理 Pipeline 实施: ``` Yahoo Finance | v Kafka | v Spark Structured Streaming | v MySQL | v Power BI ``` ## 机器学习检测 未来的模型: - Isolation Forest - Autoencoders - 时间序列预测模型 ## 云部署 可能的部署方案: - AWS RDS - AWS Glue - Amazon MSK Kafka - Power BI Service # 技能展现 - 数据工程 - ETL Pipeline 开发 - Python 自动化 - SQL 数据库设计 - 金融分析 - 数据可视化 - 商业智能 # 作者 **Anandha Bhavatarini**
标签:ETL流水线, PowerBI, Python, 商业智能, 多线程, 异常检测, 数据工程, 无后门, 逆向工具, 金融风控