Skip to content

Latest commit

 

History

History

README.md

CherryQuant 实验指导

概述

本目录包含 CherryQuant 教学项目的所有实验指导文档。实验是课程学习的重要组成部分,帮助学生通过实践巩固理论知识。

🎯 实验目标

  • 💻 动手实践: 将课程知识应用到实际代码中
  • 🐛 调试能力: 培养发现和解决问题的能力
  • 🧪 实验思维: 学会设计实验验证想法
  • 📝 文档能力: 养成记录学习过程的习惯

📚 实验列表

Week 1: 基础入门

Lab 01: 环境搭建与首次运行 (2 小时)

  • 📍 位置: lab01_environment_setup.md
  • 🎯 目标: 配置开发环境,运行第一个程序
  • ⭐ 难度: ⭐ 入门
  • 📖 相关模块: Module 0

Week 2-3: 数据管道

Lab 02: 追踪数据流 (3 小时)

  • 📍 位置: lab02_data_flow.md
  • 🎯 目标: 理解数据从源头到存储的完整流程
  • ⭐ 难度: ⭐⭐ 初级
  • 📖 相关模块: Module 1, Module 2

Week 4-5: AI 决策 & 交易执行

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

Week 6-7: 风险管理

Lab 05: 风险管理系统实验 (4 小时)

  • 📍 位置: lab05_risk_management.md
  • 🎯 目标: 实现和测试多层风险控制
  • ⭐ 难度: ⭐⭐⭐ 中级
  • 📖 相关模块: Module 4

Week 8: 系统集成

Lab 06: 完整系统搭建 (6 小时)

  • 📍 位置: lab06_complete_system.md
  • 🎯 目标: 整合所有模块,运行完整系统
  • ⭐ 难度: ⭐⭐⭐⭐ 高级
  • 📖 相关模块: Module 5, Module 8

Week 9: 代码质量

Lab 06: 测试驱动开发实践 (4 小时)

  • 📍 位置: lab06_testing.md
  • 🎯 目标: 编写单元测试和集成测试
  • ⭐ 难度: ⭐⭐⭐ 中级
  • 📖 相关模块: Module 6

Lab 07: 代码规范实践 (4 小时)

  • 📍 位置: lab07_code_standards.md
  • 🎯 目标: 应用代码规范改进现有代码
  • ⭐ 难度: ⭐⭐⭐ 中级
  • 📖 相关模块: Module 7

Week 10: 毕业项目

Lab 08: 毕业项目 (20+ 小时)

  • 📍 位置: lab08_capstone_project.md
  • 🎯 目标: 综合应用所学知识完成独立项目
  • ⭐ 难度: ⭐⭐⭐⭐⭐ 挑战
  • 📖 相关模块: 所有模块

📋 实验流程

1. 实验前准备

  • 阅读相关课程模块
  • 检查环境配置
  • 准备实验工具和材料
  • 预留足够时间(不要赶工)

2. 实验进行中

  • 按步骤完成任务
  • 记录遇到的问题
  • 尝试独立解决问题
  • 必要时寻求帮助
  • 保存代码和输出

3. 实验完成后

  • 整理实验报告
  • 回顾学习收获
  • 提交实验成果
  • 参与讨论交流

📝 实验报告模板

每个实验都应提交实验报告,推荐使用以下结构:

# Lab XX: 实验名称

## 学生信息
- 姓名:
- 学号:
- 日期:

## 一、实验目标
(简述本次实验要达成的目标)

## 二、实验环境
- 操作系统:
- Python 版本:
- 关键依赖:

## 三、实验步骤

### 步骤 1: XXX
(详细记录每个步骤的操作和结果)

#### 代码
```python
# 粘贴关键代码

运行结果

# 粘贴输出或截图

遇到的问题

(记录遇到的错误和解决方法)

步骤 2: XXX

...

四、实验结果

任务完成情况

  • 任务 1
  • 任务 2
  • 任务 3 (未完成,原因: ...)

关键输出

(粘贴或截图关键的实验结果)

五、问题与思考

遇到的问题

  1. 问题 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"

3. 调试技巧

  • 🐛 使用 print()logger.debug() 输出中间结果
  • 🔍 使用 IDE 的调试器(断点、单步执行)
  • 📝 记录每次尝试和结果

4. 学习习惯

  • 📖 先理论后实践
  • 🧪 大胆尝试,不怕犯错
  • 🤔 多问为什么
  • ✍️ 及时记录笔记

📊 实验进度跟踪

建议创建个人进度表:

实验 开始日期 完成日期 得分 备注
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

🔮 后续课程与实验拓展 Roadmap(预留)

本节不是当前学期的必做内容,而是为后续迭代预留的课程素材,方便在保留主干结构的前提下逐步加深难度。

阶段一:当前版本已覆盖(v1)

  • Lab 01-02:环境与数据流,聚焦「系统能跑起来」「数据从哪来」;
  • Lab 03:提示词工程,聚焦「AI 如何给出决策」;
  • Lab 04:Sim vs Live 与 PnL 对账,聚焦「模型世界 vs 真实市场」;
  • Lab 05-06:风险管理与系统集成,聚焦「全链路串起来」。

阶段二:候选进阶实验(v2+,可选)

这些 Lab 尚未在代码库中完全实现,建议作为选修 / 毕业项目方向,由教师视情况逐步落地。

  • 候选 Lab A:实盘对账与状态回写
    • 目标:在现有 Sim vs Live 基础上,引入 reporting_mode(sim/live/mixed),并实现基于实盘成交的持仓重建;
    • 关联文档:docs/reference/architecture.md 中的“对账与状态回写”相关小节(预留)。
  • 候选 Lab B:多账户与风险预算
    • 目标:从单账户扩展到「母账户 + 多子账户」,尝试给不同策略分配风险预算并监控使用情况;
    • 关联模块:风险管理、组合管理、配置系统。
  • 候选 Lab C:延迟 / 滑点 / 成本建模
    • 目标:在模拟账户中引入简单但可配置的延迟与滑点模型,对比“理想成交”与“现实成交”的差异;
    • 关联模块:订单管理、策略回测、数据分析 Notebook。
  • 候选 Lab D:监控与告警体系设计
    • 目标:围绕现有 AlertManager,设计一套面向教学的监控与告警规则(如 AI 决策超时、PnL 异常波动等)。

使用建议

  • 对同一门课,可以在不同学年逐步解锁更多 Lab;
  • 部分进阶实验可以收敛为「开放式毕业项目」,让学生从 Roadmap 中自选题目;
  • 每引入一个新实验,务必在本 README 中更新,并在 docs/reference/architecture.md 对应标注,保持文档一致性。

📞 联系方式

  • 课程论坛: [链接]
  • 助教邮箱: [邮箱]
  • 教师邮箱: [邮箱]
  • 答疑时间: 每周三、五 14:00-16:00

祝实验顺利!记住:实验的目的是学习,而不仅仅是完成任务。遇到困难是正常的,关键是如何克服它们。🚀