本目录包含 CherryQuant 教学项目的所有实验指导文档。实验是课程学习的重要组成部分,帮助学生通过实践巩固理论知识。
- 💻 动手实践: 将课程知识应用到实际代码中
- 🐛 调试能力: 培养发现和解决问题的能力
- 🧪 实验思维: 学会设计实验验证想法
- 📝 文档能力: 养成记录学习过程的习惯
Lab 01: 环境搭建与首次运行 (2 小时)
- 📍 位置:
lab01_environment_setup.md - 🎯 目标: 配置开发环境,运行第一个程序
- ⭐ 难度: ⭐ 入门
- 📖 相关模块: Module 0
Lab 02: 追踪数据流 (3 小时)
- 📍 位置:
lab02_data_flow.md - 🎯 目标: 理解数据从源头到存储的完整流程
- ⭐ 难度: ⭐⭐ 初级
- 📖 相关模块: Module 1, Module 2
Lab 03: 提示词工程实验 (4 小时)
- 📍 位置:
lab03_prompt_engineering.md - 🎯 目标: 设计和优化 AI 决策的提示词
- ⭐ 难度: ⭐⭐⭐ 中级
- 📖 相关模块: Module 3
Lab 04: 模拟账户 vs 实盘执行 与 PnL 对账实验 (4 小时)
- 📍 位置:
lab04_live_vs_sim_trading.md - 🎯 目标: 理解 AI 决策 → 模拟账户 → 实盘执行 → PnL 对账 的完整闭环
- ⭐ 难度: ⭐⭐⭐ 中级
- 📖 相关模块: Module 3, Module 4, Module 5
Lab 05: 风险管理系统实验 (4 小时)
- 📍 位置:
lab05_risk_management.md - 🎯 目标: 实现和测试多层风险控制
- ⭐ 难度: ⭐⭐⭐ 中级
- 📖 相关模块: Module 4
Lab 06: 完整系统搭建 (6 小时)
- 📍 位置:
lab06_complete_system.md - 🎯 目标: 整合所有模块,运行完整系统
- ⭐ 难度: ⭐⭐⭐⭐ 高级
- 📖 相关模块: Module 5, Module 8
Lab 06: 测试驱动开发实践 (4 小时)
- 📍 位置:
lab06_testing.md - 🎯 目标: 编写单元测试和集成测试
- ⭐ 难度: ⭐⭐⭐ 中级
- 📖 相关模块: Module 6
Lab 07: 代码规范实践 (4 小时)
- 📍 位置:
lab07_code_standards.md - 🎯 目标: 应用代码规范改进现有代码
- ⭐ 难度: ⭐⭐⭐ 中级
- 📖 相关模块: Module 7
Lab 08: 毕业项目 (20+ 小时)
- 📍 位置:
lab08_capstone_project.md - 🎯 目标: 综合应用所学知识完成独立项目
- ⭐ 难度: ⭐⭐⭐⭐⭐ 挑战
- 📖 相关模块: 所有模块
- 阅读相关课程模块
- 检查环境配置
- 准备实验工具和材料
- 预留足够时间(不要赶工)
- 按步骤完成任务
- 记录遇到的问题
- 尝试独立解决问题
- 必要时寻求帮助
- 保存代码和输出
- 整理实验报告
- 回顾学习收获
- 提交实验成果
- 参与讨论交流
每个实验都应提交实验报告,推荐使用以下结构:
# Lab XX: 实验名称
## 学生信息
- 姓名:
- 学号:
- 日期:
## 一、实验目标
(简述本次实验要达成的目标)
## 二、实验环境
- 操作系统:
- Python 版本:
- 关键依赖:
## 三、实验步骤
### 步骤 1: XXX
(详细记录每个步骤的操作和结果)
#### 代码
```python
# 粘贴关键代码# 粘贴输出或截图
(记录遇到的错误和解决方法)
...
- 任务 1
- 任务 2
- 任务 3 (未完成,原因: ...)
(粘贴或截图关键的实验结果)
- 问题 1 描述
- 错误信息:
- 解决方法:
(对实验内容的深入思考和扩展)
(总结本次实验的学习收获,至少 300 字)
(对实验内容或课程的建议)
(相关代码、截图、数据等)
## 🎯 评分标准
所有实验采用统一的评分维度:
| 维度 | 权重 | 说明 |
|------|------|------|
| **任务完成度** | 40% | 是否完成所有要求的任务 |
| **代码质量** | 20% | 代码规范性、可读性、正确性 |
| **实验报告** | 20% | 报告完整性、思路清晰度 |
| **创新性** | 10% | 是否有创新思考或扩展 |
| **学习态度** | 10% | 是否认真对待,独立思考 |
### 分数等级
- **90-100 分**: 优秀 - 完美完成所有任务,有深入思考
- **80-89 分**: 良好 - 完成大部分任务,质量较高
- **70-79 分**: 中等 - 完成基本任务,存在一些问题
- **60-69 分**: 及格 - 部分完成任务,问题较多
- **< 60 分**: 不及格 - 未能完成基本要求
## 🆘 获取帮助
### 实验中遇到问题怎么办?
1. **先自己尝试解决** (15 分钟)
- 仔细阅读错误信息
- 检查代码和配置
- 查阅文档和示例
2. **查找资源** (15 分钟)
- 搜索错误信息
- 查看课程文档
- 参考示例代码
3. **向他人求助** (必要时)
- 在课程论坛提问
- 向同学请教
- 联系助教或老师
### 提问的正确方式
**❌ 不好的提问**:
- "我的代码不工作,怎么办?"
- "有人能帮我完成实验吗?"
**✅ 好的提问**:
- "我在运行 lab02 的步骤 3 时遇到了 ImportError,错误信息是 XXX,我已经尝试了 YYY 方法,但还是不行。请问可能是什么原因?"
- "关于 lab03 的提示词优化,我尝试了 A 和 B 两种方式,结果分别是 X 和 Y,我不确定哪种更好,有什么判断标准吗?"
## 💡 实验技巧
### 1. 时间管理
- 📅 提前规划实验时间
- ⏰ 避免临近截止日期才开始
- 🔄 留出调试和完善的时间
### 2. 代码管理
- 💾 及时保存代码
- 📸 截图关键结果
- 🔖 使用 Git 版本控制
```bash
# 每完成一个任务提交一次
git add .
git commit -m "Complete lab02 task 1"
- 🐛 使用
print()或logger.debug()输出中间结果 - 🔍 使用 IDE 的调试器(断点、单步执行)
- 📝 记录每次尝试和结果
- 📖 先理论后实践
- 🧪 大胆尝试,不怕犯错
- 🤔 多问为什么
- ✍️ 及时记录笔记
建议创建个人进度表:
| 实验 | 开始日期 | 完成日期 | 得分 | 备注 |
|---|---|---|---|---|
| Lab 01 | 2024-01-01 | 2024-01-02 | 95 | 环境配置顺利 |
| Lab 02 | 2024-01-08 | 2024-01-10 | 88 | 数据流理解加深 |
| Lab 03 | ... | ... | ... | ... |
- 课程文档:
docs/course/ - 示例代码:
examples/ - 测试代码:
tests/ - 架构决策:
docs/adr/ - 学习路径:
LEARNING_PATH.md
本节不是当前学期的必做内容,而是为后续迭代预留的课程素材,方便在保留主干结构的前提下逐步加深难度。
- Lab 01-02:环境与数据流,聚焦「系统能跑起来」「数据从哪来」;
- Lab 03:提示词工程,聚焦「AI 如何给出决策」;
- Lab 04:Sim vs Live 与 PnL 对账,聚焦「模型世界 vs 真实市场」;
- Lab 05-06:风险管理与系统集成,聚焦「全链路串起来」。
这些 Lab 尚未在代码库中完全实现,建议作为选修 / 毕业项目方向,由教师视情况逐步落地。
- 候选 Lab A:实盘对账与状态回写
- 目标:在现有 Sim vs Live 基础上,引入
reporting_mode(sim/live/mixed),并实现基于实盘成交的持仓重建; - 关联文档:
docs/reference/architecture.md中的“对账与状态回写”相关小节(预留)。
- 目标:在现有 Sim vs Live 基础上,引入
- 候选 Lab B:多账户与风险预算
- 目标:从单账户扩展到「母账户 + 多子账户」,尝试给不同策略分配风险预算并监控使用情况;
- 关联模块:风险管理、组合管理、配置系统。
- 候选 Lab C:延迟 / 滑点 / 成本建模
- 目标:在模拟账户中引入简单但可配置的延迟与滑点模型,对比“理想成交”与“现实成交”的差异;
- 关联模块:订单管理、策略回测、数据分析 Notebook。
- 候选 Lab D:监控与告警体系设计
- 目标:围绕现有 AlertManager,设计一套面向教学的监控与告警规则(如 AI 决策超时、PnL 异常波动等)。
- 对同一门课,可以在不同学年逐步解锁更多 Lab;
- 部分进阶实验可以收敛为「开放式毕业项目」,让学生从 Roadmap 中自选题目;
- 每引入一个新实验,务必在本 README 中更新,并在
docs/reference/architecture.md对应标注,保持文档一致性。
- 课程论坛: [链接]
- 助教邮箱: [邮箱]
- 教师邮箱: [邮箱]
- 答疑时间: 每周三、五 14:00-16:00
祝实验顺利!记住:实验的目的是学习,而不仅仅是完成任务。遇到困难是正常的,关键是如何克服它们。🚀