# AI-Trader-AShare
**Repository Path**: csckx/AI-Trader-AShare
## Basic Information
- **Project Name**: AI-Trader-AShare
- **Description**: https://github.com/zstar1003/AI-Trader-AShare.git
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-03
- **Last Updated**: 2025-12-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AI-Trader-AShare
**AI模型交易大赛** - 让不同的AI大模型通过调用工具在A股市场上PK!
## 项目简介
不同的AI大模型(DeepSeek, GLM-4, Kimi, Ring等)作为交易Agent,通过调用真实的交易工具(Tools)在模拟的A股市场中进行交易对比。
每个AI Agent获得**100万初始资金**,在精选的A股股票池中进行为期7个交易日的模拟交易:
- 通过调用 `get_portfolio_status` 查看持仓和资金状况
- 通过调用 `get_stock_info` 获取股票的实时价格和涨跌幅
- 通过调用 `buy_stock` / `sell_stock` 执行交易
- 所有交易数据来自真实历史行情,包含完整的交易费用计算
**📊 在线演示**: https://xdxsb.top/AI-Trader-AShare
## 核心特性
- 🤖**Agent系统** - 基于LangChain Agent框架,AI通过调用Tools完成交易
- 🛠️ **简洁的工具集** - 提供查询持仓、获取股票信息、买入卖出等核心交易工具
- 💰 **真实模拟** - 100万初始资金,真实A股历史数据,完整的交易费用计算
- 📊 **精美的可视化看板** - 实时资产走势图、AI排行榜、交易记录、持仓分布饼图
## 当前参赛AI模型
| AI模型 | 提供商 | 特点 |
| -------- | ---------- | -------------------------- |
| DeepSeek | DeepSeek | 国产开源大模型,推理能力强 |
| GLM-4 | 智谱AI | 中文理解优秀,工具调用准确 |
| Kimi | Moonshot | 长文本处理能力强 |
| Ring | 多模型混合 | 集成多个模型的优势 |
## 项目架构
```
AI-Trader-AShare/
├── core/ # 核心模块
│ ├── engine.py # 基础交易引擎(持仓管理、费用计算)
│ ├── time_aware_engine.py # 时间感知交易引擎(防止未来数据泄露)
│ ├── market_data.py # 市场数据提供者(从JSON加载历史数据)
│ └── agent_state.py # Agent状态持久化管理
│
├── tools/ # 交易工具模块
│ └── trading_tools.py # AI Agent调用的交易工具集
│
├── agents/ # AI Agent模块
│ ├── base_agent.py # Agent基类
│ └── llm_agents.py # 各种LLM Agent实现(DeepSeek, GLM, Kimi, Ring)
│
├── scripts/ # 辅助脚本
│ ├── fetch_market_data.py # 获取历史行情数据
│ ├── price_data_manager.py # 价格数据管理
│ ├── fetch_index_benchmark.py # 获取上证指数基准数据
│ └── copy_data_to_docs.py # 复制数据到展示目录
│
├── data/ # 数据目录
│ ├── agent_data/ # Agent状态文件
│ ├── daily_prices/ # 每日价格数据(JSON)
│ └── index_benchmark.json # 上证指数基准数据
│
├── docs/ # GitHub Pages前端
│ ├── index.html # 竞赛看板页面
│ ├── css/style.css # 样式文件
│ ├── js/competition.js # 看板逻辑
│ └── data/ # 前端数据(Agent状态 + 指数基准)
│
├── run_simulation.py # 模拟交易主程序
└── README.md
```
## 快速开始
### 1. 环境准备
```bash
# 克隆项目
git clone https://github.com/yourusername/AI-Trader-AShare.git
cd AI-Trader-AShare
# 安装依赖
uv sync
# 配置API Keys(创建.env文件)
cp .env.example .env
# 编辑.env填入你的API Keys:
```
### 2. 获取历史数据
```bash
# 初始化价格数据
python scripts/price_data_manager.py init
# 获取上证指数基准数据
python scripts/fetch_index_benchmark.py
```
### 3. 运行模拟交易
```bash
# 运行模拟交易(默认7个交易日)
python run_simulation.py --all
# Agent状态会自动保存到 data/agent_data/ 目录
# 包含持仓、交易记录、每日快照等信息
```
### 4. 查看竞赛结果
```bash
# 复制数据到前端目录
python scripts/copy_data_to_docs.py
# 启动本地服务器查看
cd docs
python -m http.server 8000
# 访问 http://localhost:8000
```
## 添加新的AI模型
### 1. 在 `agents/llm_agents.py` 添加新Agent
```python
class YourModelAgent(LLMTradingAgent):
def __init__(self, name: str = "YourModel Trader"):
api_key = os.getenv("YOUR_API_KEY")
super().__init__(
name=name,
model_name="your-model-name",
api_key=api_key,
base_url="https://your-api-url",
temperature=0.7
)
```
### 2. 在 `run_simulation.py` 注册Agent
```python
from agents.llm_agents import YourModelAgent
# 初始化Agents
agents = [
DeepSeekAgent(),
GLMAgent(),
KimiAgent(),
RingAgent(),
YourModelAgent() # 添加你的Agent
]
# 运行模拟
for agent in agents:
run_agent_simulation(agent, engine, trading_days)
```
### 3. 配置API Key
在 `.env` 文件中添加:
```
YOUR_API_KEY=sk-xxxxxxxx
```
## 可用交易工具
| 工具名称 | 功能 | 参数 | 返回值 |
| ------------------------ | ---------------- | --------------------------------------------------------------------- | ------------------------------------------------------------- |
| `get_portfolio_status` | 获取投资组合状态 | `context: dict` | 现金、持仓市值、总资产、持仓列表 |
| `get_stock_info` | 获取股票实时信息 | `ts_code: str
``context: dict` | 开盘价、最高价、最低价、收盘价 `
`涨跌幅、成交量、成交额 |
| `buy_stock` | 买入股票 | `ts_code: str
``shares: int
``reason: str
``context: dict` | 成交价格、数量、总金额 `
`手续费、剩余资金 |
| `sell_stock` | 卖出股票 | `ts_code: str
``shares: int
``reason: str
``context: dict` | 成交价格、数量、总金额 `
`盈亏、剩余资金 |
**注意事项**:
- 所有工具都需要 `context` 参数传递引擎实例
- 买卖股票必须是100的整数倍(A股最小交易单位)
- 交易需要支付手续费(买入万0.5,卖出万0.5+印花税千1)
- 不允许做空和融资融券
## 技术栈
- **Agent框架**: LangChain + ReAct模式
- **LLM接口**: OpenAI SDK (兼容多个API提供商)
- **数据源**: Tushare Pro API (获取历史数据) + 本地JSON存储
- **前端**: HTML5 + CSS3 + Vanilla JavaScript + Chart.js
- **可视化**: Chart.js (折线图 + 环形饼图)
- **部署**: GitHub Pages
### Q: 交易费用怎么计算?
严格按照A股规则:
- 买入:交易金额 × 0.05% (佣金)
- 卖出:交易金额 × 0.05% (佣金) + 交易金额 × 0.1% (印花税)
## 免责声明
本项目仅用于教育和研究目的。不构成任何投资建议。股市有风险,投资需谨慎。