218 lines
5.6 KiB
Markdown
218 lines
5.6 KiB
Markdown
# A股量化交易系统
|
||
|
||
一个基于Python的A股市场监控和选股量化程序,使用TuShare数据源。
|
||
|
||
## 功能特性
|
||
|
||
- 📈 **实时数据获取**: 使用TuShare获取A股实时行情数据
|
||
- 🔍 **舆情分析**: 北向资金、融资融券、热点股票、龙虎榜数据分析
|
||
- 📊 **股票筛选**: 基于技术指标和基本面的智能选股
|
||
- 💰 **市场监控**: 实时监控价格变动、成交量异常、资金流向
|
||
- 💹 **策略回测**: 历史数据验证交易策略效果
|
||
- ⚙️ **灵活配置**: 支持通过配置文件自定义参数
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
TradingAI/
|
||
├── main.py # 程序入口
|
||
├── requirements.txt # 依赖包列表
|
||
├── config/
|
||
│ └── config.yaml # 配置文件
|
||
├── src/ # 源代码
|
||
│ ├── data/ # 数据获取模块
|
||
│ │ ├── __init__.py
|
||
│ │ ├── tushare_fetcher.py # A股行情数据获取
|
||
│ │ ├── binance_fetcher.py # 加密货币数据获取
|
||
│ │ └── stock_pool_manager.py # 股票池管理
|
||
│ ├── strategy/ # 策略模块
|
||
│ │ ├── kline_pattern_strategy.py # K线形态策略
|
||
│ │ └── crypto_kline_pattern_strategy.py # 加密货币K线策略
|
||
│ ├── database/ # 数据库模块
|
||
│ │ └── mysql_database_manager.py
|
||
│ ├── execution/ # 执行模块
|
||
│ │ ├── strategy_executor.py # 策略执行器
|
||
│ │ └── task_scheduler.py # 任务调度器
|
||
│ └── utils/ # 工具模块
|
||
│ ├── __init__.py
|
||
│ ├── config_loader.py
|
||
│ └── notification.py
|
||
├── logs/ # 日志文件
|
||
└── data/ # 数据文件
|
||
```
|
||
|
||
## 环境要求
|
||
|
||
- Python 3.8+
|
||
- 依赖包见 requirements.txt
|
||
|
||
## 快速开始
|
||
|
||
### 1. 克隆项目
|
||
```bash
|
||
git clone <your-repo-url>
|
||
cd TradingAI
|
||
```
|
||
|
||
### 2. 创建虚拟环境
|
||
```bash
|
||
python -m venv venv
|
||
source venv/bin/activate # Linux/Mac
|
||
# or
|
||
venv\Scripts\activate # Windows
|
||
```
|
||
|
||
### 3. 安装依赖
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 4. 运行程序
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
## 配置说明
|
||
|
||
配置文件位于 `config/config.yaml`,包含以下主要配置:
|
||
|
||
- **trading**: 交易相关配置(交易时间、风险控制等)
|
||
- **data**: 数据源配置(更新频率、存储格式等)
|
||
- **strategy**: 策略配置(技术指标参数、选股条件等)
|
||
- **monitor**: 监控配置(报警阈值等)
|
||
- **logging**: 日志配置
|
||
|
||
## 使用示例
|
||
|
||
### 获取实时行情
|
||
```python
|
||
from src.data.tushare_fetcher import TushareFetcher
|
||
|
||
fetcher = TushareFetcher()
|
||
# 获取单只股票实时数据
|
||
data = fetcher.get_realtime_data("000001.SZ")
|
||
|
||
# 获取多只股票实时数据
|
||
data = fetcher.get_realtime_data(["000001.SZ", "000002.SZ"])
|
||
```
|
||
|
||
### 舆情分析
|
||
```python
|
||
from src.data.sentiment_fetcher import SentimentFetcher
|
||
|
||
sentiment_fetcher = SentimentFetcher()
|
||
|
||
# 获取北向资金流向
|
||
north_flow = sentiment_fetcher.get_north_flow_current()
|
||
|
||
# 获取热门股票排行
|
||
hot_stocks = sentiment_fetcher.get_popular_stocks_east_100()
|
||
|
||
# 获取龙虎榜数据
|
||
dragon_tiger = sentiment_fetcher.get_dragon_tiger_list_daily()
|
||
|
||
# 分析单只股票舆情
|
||
analysis = sentiment_fetcher.analyze_stock_sentiment("000001.SZ")
|
||
```
|
||
|
||
### 搜索股票
|
||
```python
|
||
# 搜索包含"平安"的股票
|
||
results = fetcher.search_stocks("平安")
|
||
```
|
||
|
||
### 获取历史数据
|
||
```python
|
||
# 获取历史日线数据
|
||
hist_data = fetcher.get_historical_data(
|
||
stock_code="000001.SZ",
|
||
start_date="2023-01-01",
|
||
end_date="2023-12-31"
|
||
)
|
||
```
|
||
|
||
## 命令行界面
|
||
|
||
程序启动后提供交互式命令行界面:
|
||
|
||
- `help` - 显示帮助信息
|
||
- `status` - 显示系统状态
|
||
- `market` - 显示市场概况
|
||
- `search <关键词>` - 搜索股票
|
||
- `sentiment` - 显示市场舆情综合概览
|
||
- `hotstock` - 显示热门股票排行
|
||
- `northflow` - 显示北向资金流向
|
||
- `dragon` - 显示龙虎榜数据
|
||
- `analyze <股票代码>` - 分析单只股票舆情
|
||
- `quit` - 退出程序
|
||
|
||
## 舆情分析功能
|
||
|
||
### 数据来源
|
||
- **北向资金**: 沪深股通资金流向数据
|
||
- **融资融券**: 两融余额和变化趋势
|
||
- **热点股票**: 东方财富、同花顺人气排行
|
||
- **龙虎榜**: 每日异动股票上榜数据
|
||
- **风险扫描**: 个股风险评估
|
||
|
||
### 主要指标
|
||
- 资金流入流出情况
|
||
- 市场热度排名
|
||
- 机构席位动向
|
||
- 个股异动原因
|
||
|
||
## 开发计划
|
||
|
||
- [x] 基础数据获取功能
|
||
- [x] 舆情数据分析模块
|
||
- [ ] 技术指标计算模块
|
||
- [ ] 选股策略实现
|
||
- [ ] 实时监控功能
|
||
- [ ] 回测系统
|
||
- [ ] Web界面
|
||
- [ ] 报警通知系统
|
||
|
||
## Docker部署
|
||
|
||
项目支持Docker容器化部署,包含Web界面和定时扫描功能:
|
||
|
||
### 启动服务
|
||
```bash
|
||
# 启动所有服务
|
||
docker-compose up -d
|
||
|
||
# 仅启动Web服务
|
||
docker-compose up -d trading-web
|
||
|
||
# 仅启动市场扫描服务
|
||
docker-compose up -d trading-market-scanner
|
||
```
|
||
|
||
### 服务说明
|
||
- **trading-web**: Web界面服务 (端口8080)
|
||
- **trading-market-scanner**: 定时市场扫描服务 (每晚8点执行)
|
||
|
||
### 查看日志
|
||
```bash
|
||
# 查看Web服务日志
|
||
docker-compose logs -f trading-web
|
||
|
||
# 查看扫描服务日志
|
||
docker-compose logs -f trading-market-scanner
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. 首次使用需要确保网络连接正常,TuShare需要从网络获取数据
|
||
2. 请合理使用数据接口,避免频繁请求
|
||
3. 本系统仅供学习和研究使用,不构成投资建议
|
||
4. 实盘交易请谨慎,注意风险控制
|
||
5. 确保配置文件中的TuShare Token和数据库连接信息正确
|
||
|
||
## 许可证
|
||
|
||
MIT License
|
||
|
||
## 贡献
|
||
|
||
欢迎提交Issue和Pull Request! |