DataCapture 是一个功能完整的量化投资数据分析平台,专注于 A 股市场的数据分析、策略回测和模拟交易。项目集成了多种技术指标分析、AI 驱动的自然语言查询、智能策略引擎等核心功能,为个人投资者提供专业级的量化分析工具。
- 🤖 AI 智能查询 - 支持自然语言查询股票数据
- 📊 技术分析 - 30+ 技术指标计算与智能分析
- 🎯 概念挖掘 - 多维度板块热点挖掘
- 📈 策略回测 - 多种量化策略历史回测
- 💼 模拟交易 - 完整的纸面交易系统
- 🔄 自动更新 - 数据自动同步与缓存管理
- Python 3.8+
- 操作系统: Windows / macOS / Linux
# 克隆项目
git clone https://github.com/yourusername/DataCapture.git
cd DataCapture
# 安装依赖包
pip install -r requirements.txt
# 如果 TA-Lib 安装失败,请手动安装 whl 文件
pip install ta_lib-0.6.8-cp313-cp313-win_amd64.whl创建 .env 文件(参考 .env.example):
# Tushare Pro API Token(必需)
# 注册地址: https://tushare.pro/register
TUSHARE_TOKEN=your_tushare_token_here
# LLM API 配置(可选,用于自然语言查询)
# 支持 OpenAI 或 DeepSeek
LLM_API_KEY=your_llm_api_key
LLM_API_BASE=https://api.deepseek.com
LLM_MODEL=deepseek-chatpython scripts/init_db.py# 查看帮助信息
python main.py --help
# 示例:查询股票数据
python main.py query "贵州茅台最近一个月的收盘价"
# 示例:分析股票
python main.py analyze 贵州茅台 1y
# 示例:概念挖掘
python main.py concept -t 20每次代码更新后,使用便捷工具提交到GitHub:
# Windows 快速提交
git_push.bat "添加新功能"
# 或使用 Python 脚本
python scripts/git_push.py "添加新功能"
# 查看状态
python scripts/git_push.py --status详细文档: Git 使用指南
支持使用自然语言查询股票数据,无需记忆复杂的 API 接口。
示例:
# 查询股票价格
python main.py query "贵州茅台最近一个月的收盘价"
# 查询指数数据
python main.py query "上证指数最近5天的涨幅"
# 查询板块资金流
python main.py query "半导体概念最近一周的资金流向"
# 查询财务数据
python main.py query "平安银行最新的市盈率和市净率"支持的查询类型:
- 股票日线数据(价格、涨跌幅、成交量等)
- 指数数据(上证指数、深证成指等)
- 板块资金流向(概念板块、行业板块)
- 财务数据(市盈率、市净率、换手率等)
自动计算 30+ 技术指标,生成专业的分析报告。
技术指标:
- 趋势指标: MA (5/10/20/60)、MACD、DIF、DEA
- 动量指标: RSI (6/12)、KDJ、CCI
- 波动指标: BOLL、ATR
- 量能指标: 量比、换手率
示例:
# 分析贵州茅台最近一年的数据
python main.py analyze 贵州茅台 1y
# 分析股票并保存报告
python main.py analyze 600519 3m -o report.md
# 支持多种查询方式
python main.py analyze gzmz 6m # 拼音缩写
python main.py analyze 600519 1d # 股票代码时间范围参数:
1d- 最近 1 天1w- 最近 1 周1m- 最近 1 个月3m- 最近 3 个月6m- 最近 6 个月1y- 最近 1 年2y- 最近 2 年3y- 最近 3 年
多维度分析概念板块,自动识别黄金坑、主升浪等机会。
分析维度:
- 位置维度: 基于唐奇安通道的位置评分
- 热度维度: 资金流入与成交量分析
- 异动维度: 涨跌幅与换手率分析
智能标签:
- 🟢 黄金坑: 位置低 + 资金流入 + 量比放大
- 🔵 僵尸低位: 位置低 + 无资金关注
- 🟡 主升浪: 位置中高 + 资金大幅流入
- 🔴 高位派发: 位置极高 + 资金流出
示例:
# 挖掘热门概念(显示前20个)
python main.py concept
# 显示前30个板块并保存结果
python main.py concept -t 30 -o result.csv自动生成周度市场复盘报告,包含大势分析、情绪指标、行业背离、聪明钱动向等。
报告内容:
- 大势与估值: 主要指数表现、估值水平
- 市场情绪: 涨跌停统计、换手率分析
- 行业背离: 行业指数与资金流背离分析
- 聪明钱动向: 北向资金、ETF 资金流向
示例:
# 生成本周复盘报告
python main.py review
# 生成最近2周复盘报告
python main.py review -w 2
# 保存报告到文件
python main.py review -o weekly_report.md支持三种量化策略的历史回测,自动计算收益率、夏普比率等指标。
策略类型:
| 策略 | 说明 | 适用场景 |
|---|---|---|
| shannon | 香农熵策略 | 逆势布局,捕捉反弹 |
| girard | 吉拉尔缺口策略 | 缺口交易,趋势跟踪 |
| soros | 索罗斯反身性策略 | 强化趋势,动量交易 |
示例:
# 回测香农策略(默认1年,10万初始资金)
python main.py backtest shannon
# 指定回测时间范围
python main.py backtest girard -s 20230101 -e 20231231
# 自定义初始资金
python main.py backtest soros -i 500000
# 保存回测报告
python main.py backtest shannon -o backtest_report.txt完整的模拟交易系统,支持买入、卖出、持仓查询等功能。
功能特性:
- ✅ 多账户管理
- ✅ T+1 交易规则
- ✅ 手续费计算
- ✅ 持仓盈亏统计
- ✅ 交易历史记录
示例:
# 创建新账户
python main.py paper --create --balance 1000000
# 买入股票
python main.py paper --buy 600519 100
# 卖出股票
python main.py paper --sell 600519 50
# 查看持仓
python main.py paper --list
# 查看账户状态
python main.py paper --status自动更新本地数据库,支持智能增量更新和批量操作。
性能优化:
- ⚡ 批量操作 - 10x 写入速度提升
- 🚀 多线程并发 - 5 线程并发更新
- 📊 索引优化 - 查询性能提升 3-5 倍
- 🔄 失败重试 - 自动重试失败的更新
- 📝 更新日志 - 完整的更新历史追踪
示例:
# 更新所有数据(智能增量更新)
python main.py update
# 更新最近30天数据
python main.py update -d 30
# 强制更新(跳过缓存)
python main.py update --force性能对比:
- 优化前:~30 只股票/分钟
- 优化后:~200 只股票/分钟(5-6x 提升)
详细说明请查看:数据库优化文档
管理多个投资组合,分析组合表现和风险指标。
示例:
# 查看所有组合
python main.py portfolio --list
# 创建新组合并添加股票
python main.py portfolio -n my_portfolio --add 600519 0.3
python main.py portfolio -n my_portfolio --add 000001 0.2
# 从组合移除股票
python main.py portfolio -n my_portfolio --remove 000001
# 分析组合表现
python main.py portfolio -n my_portfolio --analyzeDataCapture/
├── main.py # 统一命令行入口 ⭐
├── requirements.txt # 依赖包列表
├── .env # 环境变量配置
├── README.md # 项目文档
│
├── src/ # 核心源代码
│ ├── config.py # 配置管理
│ ├── database.py # 数据库管理
│ ├── exceptions.py # 自定义异常
│ │
│ ├── 数据分析模块
│ ├── stock_analyzer.py # 股票技术分析
│ ├── data_agent.py # AI 数据查询代理
│ ├── concept_miner.py # 概念板块挖掘
│ ├── weekly_etl.py # 周度市场复盘
│ ├── daily_reviewer.py # 每日复盘
│ │
│ ├── 策略与回测
│ ├── chimera_engine.py # 策略引擎
│ ├── backtest.py # 回测引擎
│ ├── strategy_manager.py # 策略管理器
│ ├── portfolio_backtest.py # 组合回测
│ │
│ ├── 交易与风控
│ ├── paper_trading.py # 纸面交易
│ ├── portfolio_manager.py # 组合管理
│ ├── signal_generator.py # 信号生成器
│ ├── doctor.py # 组合医生
│ │
│ ├── 数据管理
│ ├── data_adapter.py # 数据适配器
│ ├── data_updater.py # 数据更新器
│ ├── cache_manager.py # 缓存管理
│ ├── async_api_wrapper.py # 异步API包装
│ │
│ ├── strategies/ # 策略模块
│ │ ├── base.py # 策略基类
│ │ ├── shannon.py # 香农策略
│ │ ├── girard.py # 吉拉尔策略
│ │ └── soros.py # 索罗斯策略
│ │
│ ├── trading/ # 交易模块
│ │ ├── auto_trader.py # 自动交易
│ │ ├── paper_trading_engine.py # 纸面交易引擎
│ │ └── risk_manager.py # 风险管理
│ │
│ └── utils/ # 工具函数
│ └── api_utils.py # API 工具
│
├── scripts/ # 命令行脚本
│ ├── init_db.py # 数据库初始化
│ ├── run_data_agent.py
│ ├── run_stock_analyzer.py
│ ├── run_concept_miner.py
│ ├── run_weekly_etl.py
│ ├── run_chimera.py
│ ├── run_backtest.py
│ └── run_paper_trading.py
│
├── data/ # 数据存储目录
│ └── backtest.db # SQLite 数据库
│
└── output/ # 输出文件目录
├── reports/ # 分析报告
└── backtests/ # 回测结果
所有配置集中在 src/config.py,支持通过环境变量覆盖。
API_MAX_RETRIES = 3 # API 重试次数
DATA_WARMUP_DAYS = 120 # 数据预热天数
DATA_FETCH_DAYS = 60 # 默认数据获取天数
ASYNC_MAX_WORKERS = 10 # 异步线程数MA_PERIODS = [5, 10, 20, 60] # 移动平均线周期
RSI_PERIOD_SHORT = 6 # RSI 短周期
RSI_PERIOD_LONG = 12 # RSI 长周期
BOLL_PERIOD = 20 # 布林带周期COMMISSION_RATE = 0.0003 # 手续费率(万三)
TRADING_DAYS_PER_YEAR = 252 # 年化交易日数
RISK_FREE_RATE = 0.0 # 无风险利率除了统一入口 main.py,也可以直接使用 scripts/ 目录下的脚本:
# 股票分析
python scripts/run_stock_analyzer.py 贵州茅台 1y
# 概念挖掘
python scripts/run_concept_miner.py
# 周度复盘
python scripts/run_weekly_etl.py
# 策略回测
python scripts/run_chimera_backtest.py
# 纸面交易
python scripts/run_paper_trading.py在 src/strategies/ 目录下创建新策略:
from src.strategies.base import BaseStrategy
class MyStrategy(BaseStrategy):
def generate_signal(self, data):
# 实现你的策略逻辑
# 返回 1 (买入) 或 0 (卖出)
pass# 初始化数据库
python scripts/init_db.py
# 查看数据库内容
sqlite3 data/backtest.db- 访问 Tushare Pro
- 注册账号并登录
- 进入「用户中心」→「接口Token」
- 复制 Token 到
.env文件
Windows 用户可以使用项目提供的 whl 文件:
pip install ta_lib-0.6.8-cp313-cp313-win_amd64.whlmacOS/Linux 用户请参考官方安装指南:
# macOS
brew install ta-lib
# Ubuntu/Debian
sudo apt-get install ta-lib支持 OpenAI 和 DeepSeek:
# OpenAI
LLM_API_KEY=sk-xxx
LLM_API_BASE=https://api.openai.com/v1
LLM_MODEL=gpt-3.5-turbo
# DeepSeek
LLM_API_KEY=sk-xxx
LLM_API_BASE=https://api.deepseek.com
LLM_MODEL=deepseek-chat- 日线数据: 每日收盘后更新一次(建议 15:30 之后)
- 实时数据: 根据需要手动更新
- 历史数据: 首次使用建议更新 1 年以上历史数据
欢迎提交 Issue 和 Pull Request!
- 代码风格遵循 PEP 8
- 添加必要的注释和文档字符串
- 提交前运行测试(如果有)
- 更新相关文档
本项目采用 MIT 协议开源 - 详见 LICENSE 文件
- Tushare Pro - 数据支持
- TA-Lib - 技术指标计算
- OpenAI / DeepSeek - AI 能力支持
如果觉得项目有用,请给个 ⭐ Star 支持一下!
Made with ❤️ by DataCapture Team