返回交易笔记
TR Day 7

Week 1 周复盘 + Week 2 准备

Week 1 周复盘 + Week 2 准备

2026-05-16
Phase 1: 基础与工具链
WeeklyReviewRetrospectivevectorbtibkrFactorInvestingWeek2Prep

日期: 2026-05-16 方向: 个人量化交易 / Week 1 复盘 阶段: Phase 1: 基础与工具链 标签: #WeeklyReview #Retrospective #vectorbt #ibkr #FactorInvesting #Week2Prep


今日目标

类型内容
复盘Week 1 (Day 1-6) 完成度自评 + 知识图谱串联 + 认知盘点
反思踩坑可能性排序 + 当前回测能力分级 + 个人复盘 prompt
预告Week 2 因子投资基础 — 为什么因子是个人量化的甜点
产出TR-DAY7 笔记 + 自评打分表 + Week 2 学习清单

一、Week 1 完成度自评

1.1 每日实操产出对照表

把 Day 1-6 应当产生的「实操产出」摆到一起,用最严的标准自评。这是周复盘最有价值的一步——日记式记录天然倾向于自我感觉良好,唯有把六天的产出物码在一张表上,才能看出真实进度。

Day主题应交付物自评状态备注
Day 1IBKR 账户准备Paper 账户启用、Options Level 申请提交、市场数据订阅、TWS 装好部分完成Options Level 仍在审批中(IBKR 通常 1-3 工作日,实际我等了 4 天还在 Pending
Day 1第一段连接代码tr_day1_connect.py 能拉到 SPY bid/ask完成Read-Only 模式连通,无误下单风险
Day 2ib_insync 进阶同步/异步 API 理解、Contract 限定、Event handler 注册完成写了 tr_day2_order_roundtrip.py,下 limit → 取消的往返脚本
Day 2错误码处理至少捕获 7 类常见 errorCode (200/201/202/300/321/354/2104)完成但实操中只触发了 3 类(200 contract 错、201 拒单、2104 数据 farm),剩下的只是「读过文档」
Day 3Python 量化环境venv 隔离 + pandas/numpy/yfinance/matplotlib 安装、版本锁定完成requirements.txt 提交到 repo,Python 3.11.9
Day 3数据源对比至少跑通 yfinance + IBKR historical 两个 source 同一标的下载完成顺手把 Polygon 试用 key 也跑通了,验证了三家数据在 SPY 收盘价上的小数点级别差异
Day 4时序基础自己写一个 metrics.py:simple/log return + Sharpe + MaxDD + Calmar + Sortino完成函数都过了 unit test,但我的 MaxDD 第一版用了 cumulative return 而非 cumulative wealth,错了一次
Day 4年化对照252/365/12 三个年化口径在文档里写清楚完成同时记录了「日频 √252、月频 √12、周频 √52」对照表
Day 5回测框架对比vectorbt / backtrader / Lean 三家跑同一个 SMA(20,50) 看结果是否一致未完成只跑了 vectorbt,backtrader 装好但没跑通同样的策略对照;Lean 完全没动
Day 5选型决策记录写下「为什么选 vectorbt 起步」的 ADR完成决策点:向量化吞吐量 + Notebook 友好 + 参数扫描原生支持,trade-off 是事件驱动语义弱
Day 6vectorbt 第一个回测SPY 2014-2024 SMA(20,50) 含成本,能产出权益曲线完成Sharpe = -0.08,符合「单看技术指标没 edge」的预期
Day 6参数扫描 heatmapfast ∈ {5,10,20,50}, slow ∈ {50,100,200} 的 12 格 heatmap完成没有任何一格 Sharpe > 0.3,进一步坐实结论

1.2 完成度评分

应交付物总数:12
已完成:10
部分完成:1(Options Level 卡审批,非我主观能控)
未完成:1(三家回测框架对照)

Week 1 完成度:83% (10/12)
排除外部因素的可控完成度:91% (10/11)

自我评估:可接受。未完成的一项(三家框架对照)不是没时间,是优先级判断——Day 5 当时已经在 vectorbt 上跑通了,我下意识觉得「再装两个框架做同一件事是浪费」,于是跳过了对比环节。这是典型的速度 vs 严谨度权衡,留到 Week 4 之前补做即可。

1.3 文档/代码资产盘点

资产路径状态
6 篇日记docs/daily/TR-DAY{1..6}.md
进度文件docs/daily/TR_PROGRESS.md
IBKR 连接脚本scripts/tr_day1_connect.py
下单往返脚本scripts/tr_day2_order_roundtrip.py
数据下载脚本scripts/tr_day3_download.py
指标函数库tr_lib/metrics.py✓ unit test 通过
回测脚本notebooks/tr_day6_sma.ipynb
ADR-001 框架选型docs/adr/ADR-001-vectorbt.md

二、Week 1 知识图谱

把 6 天的核心概念串起来,是周复盘第二件有价值的事。孤立的知识点不构成能力,必须看到节点之间的依赖才算「真懂」。

2.1 数据 → 决策的全链路

                   [DAY 1]
              ┌──────────────────┐
              │   IBKR 账户体系   │
              │   Paper Trading  │
              │   Options Level  │
              │   市场数据订阅    │
              └────────┬─────────┘
                       │
                   [DAY 2]
              ┌────────▼─────────┐
              │   ib_insync API  │
              │   ─ 同步/异步     │
              │   ─ Contract 限定 │
              │   ─ 订单/事件     │
              │   ─ 错误码        │
              └────────┬─────────┘
                       │
              ┌────────▼─────────┐               [DAY 3]
              │  Python 工程化   │ ◀─── pandas / numpy / yfinance / matplotlib
              │  ─ venv 隔离      │
              │  ─ 数据源对比     │      数据源坑:
              │  ─ 复权 / 缺失    │      ─ yfinance 复权口径不一致
              │  ─ survivorship  │      ─ 退市股票看不到(survivorship bias)
              └────────┬─────────┘      ─ split/dividend 调整需要 auto_adjust=True
                       │
                   [DAY 4]
              ┌────────▼─────────┐
              │   时序基础       │
              │   ─ simple/log    │
              │   ─ √252 年化     │
              │   ─ Sharpe        │
              │   ─ MaxDD/Calmar  │
              │   ─ Sortino       │
              └────────┬─────────┘
                       │
                   [DAY 5]
              ┌────────▼─────────┐
              │   回测框架选型   │
              │   vectorbt ✓     │
              │   backtrader     │
              │   Lean            │
              └────────┬─────────┘
                       │
                   [DAY 6]
              ┌────────▼─────────┐
              │  端到端回测       │
              │  SPY SMA(20,50)  │
              │  ─ 含真实成本     │
              │  ─ 含滑点         │
              │  ─ 参数扫描       │
              │  → Sharpe ≈ 0     │
              │  → 「没 edge」     │
              └──────────────────┘
                       │
                       ▼
                  [WEEK 2 起点]
                  开始找真正的 alpha:
                  因子 / 事件 / 期权 Theta

2.2 用一个表概括 Week 1 主链路

层级关注什么工具失败模式
接入层能不能连得上数据 / 下得了单IBKR + ib_insync端口错、Read-Only 没开、数据未订阅
数据层数据是不是「干净的、可信的」yfinance / IBKR Hist复权错、生存偏差、缺失值
计算层能不能算出 return / Sharpe / MaxDDpandas / numpy / 自写 metrics年化口径错、log vs simple 混用、MaxDD 公式错
框架层能不能高吞吐迭代策略vectorbt向量化只适合无路径依赖策略
策略层这个 idea 有没有 edge回测 + 参数扫描overfit、未来函数、未含成本
执行层实盘能不能复刻回测Paper Trading滑点、partial fill、断网(Week 5 才到)

重点观察:六层每一层都有自己的「失败模式」——任何一层错了,下游所有结论作废。这就是为什么 Day 4 的 MaxDD 公式我会反复 unit test,Day 6 把成本和滑点显式建进去。回测的可信度等于最弱一环的可信度


三、本周三个最重要的认知(思维方式变化)

知识点会忘,但思维方式的变化会留下来。如果一周下来没有 1-3 个「我看世界的方式变了」的瞬间,这一周的学习就停留在「读过」而不是「掌握」。

认知 #1:Paper Trading 不评估盈利能力,只评估流程跑通

来 Week 1 之前我隐约以为 Paper Trading 是个「无风险沙盒」——能在里面赚钱说明实盘也能赚。

Day 1 颠覆了这个直觉

Paper Trading 的成交模型对用户「过于友好」:

  • 默认全成交(实盘可能 partial fill)
  • 默认无滑点(实盘 illiquid 期权 bid-ask 能差 20%)
  • 默认能借券(实盘热门 short 票可能找不到券)
  • 默认数据延迟和实盘一致(其实是的,但 Paper 不会被 HFT 前置)

类比到 PM 工作:这就像「内部 staging 环境压力测试通过 ≠ 生产环境扛得住」。Staging 永远是对自己友好的,因为没有真实流量、没有真实并发、没有真实恶意用户。

思维方式的变化:从「沙盒里跑通 = 行了」变成「沙盒只能否定方案,不能肯定方案」。Paper 跑不通的策略一定不行,但 Paper 跑得通的策略只是「值得进一步真实环境验证」。后者是 Week 5 paper trade 实盘的工作。

认知 #2:单看技术指标没 edge,要找结构性 alpha

Day 6 跑 SMA(20,50) 在 SPY 2014-2024 上,含手续费和滑点,最终 Sharpe = -0.08。12 格参数扫描没有一格 Sharpe > 0.3

这个结果不是「这个策略是 BUG」,而是「这个策略其实没问题」——它的 Sharpe 接近 0 就是市场充分有效给出的答案。

为什么没 edge

  1. SMA 这种规则信息含量极低,全市场所有人都看得到
  2. 2014-2024 是大牛市,「持有不动」就是最强基准——任何择时策略都在和"无风险持有"赛跑
  3. 滑点和手续费每年吃 1-2%,需要超过这个数的 alpha 才值得做
  4. 技术指标本质是 price 的滞后函数,不带任何外生信息

Week 1 让我把「找 alpha」的搜索空间重新分类

Alpha 类型来源个人量化可行性
信息不对称内幕消息、卫星图像、信用卡刷卡数据✗ 需要资源
速度优势HFT 机房 + 微秒级✗ 资本门槛
复杂度溢价期权、可转债、ETF arbitrage✓ Week 7-9
行为偏差散户过度反应、动量、价值✓✓ Week 2 因子的甜点
结构性约束指数纳入/剔除、税收、法律限制✓ Week 8 事件驱动
风险溢价卖期权(Theta)、卖波动率✓✓ Week 7 Wheel

思维方式的变化:从「找一个能赚钱的指标组合」变成「找一类别人不愿意/不能做的策略空间」。前者是无穷无尽的过拟合,后者是经济学问题。

认知 #3:回测 pipeline 比策略本身重要 10 倍

Day 5-6 让我意识到一件事:任何能在脑子里想出来的策略,都需要一套相同的 pipeline 来验证

那套 pipeline 包括:

[原始数据] → [清洗(复权、survivorship、缺失值)]
           → [特征构造]
           → [信号生成]
           → [仓位计算]
           → [含成本/滑点的回测引擎]
           → [指标计算(Sharpe/MaxDD/Calmar/Sortino)]
           → [参数扫描 + 鲁棒性检验]
           → [out-of-sample 验证]
           → [walk-forward]
           → [Paper Trade]
           → [小仓位实盘]

只要这套 pipeline 是干净的、可复用的、自动化的,换策略就只是换中间一两个模块。pipeline 的工程质量决定了我能在 90 天里验证多少个 idea。

反过来:如果 pipeline 是手工的、一次性的、夹带未来函数的,测 100 个策略也都是垃圾结论

类比到 PM 工作:这等同于「实验框架比实验本身重要」——一个支持快速 A/B 的产品平台 > 一个精心设计的单次实验。Booking、Airbnb、Uber 在 PM 圈被反复提及,不是因为他们做了多少聪明的实验,是因为他们一年能跑数千次实验,绝大多数实验本身平平无奇但累积出复利。

思维方式的变化:Week 1 我开始以「我将要测 1000 个策略」的视角写代码,而不是「我现在要测这一个 SMA 策略」。前者要求每个函数都签名清晰、有 unit test、能被 N 个不同策略复用。这会显著拖慢 Week 1 的速度——但 Week 8 之后回报指数级。


四、本周潜在坑总结(按踩坑可能性排序)

如果给一个完全相同背景的朋友推荐这条路径,他最可能在哪里被卡住?按概率从高到低排:

坑 #1:IBKR Options Level 申请被批 Level 1 而非 Level 2/3

概率:60%(包括我)

为什么会发生

  • IBKR 的适当性判定模型偏保守
  • 「期权交易经验」一栏如果选 None / Limited 几乎必批 Level 1
  • 资金小(<$10k)也会压 level
  • 申请节奏太急(开户当天就申请)会被怀疑

怎么办

  1. 先接受 Level 1,开始做 covered call(CC)+ protective put
  2. 跑 30 天积累交易记录(哪怕每周只下 1-2 单 CC)
  3. 然后向 IBKR 申诉,附上交易记录截图,理由「已展示风险管理能力」
  4. 通常二次申请 80% 能拿到 Level 2
  5. 不要跳过 Level 2 直接申 Level 3,会被拒得更狠

对学习计划的冲击:Day 49+ 的财报 spread 策略需要 Level 3。如果到 Day 40 还卡在 Level 1,要把 Week 7 的 Wheel 策略提前到 Week 5-6,给 Level 升级留时间。这是 Week 1 就要预判的风险

坑 #2:yfinance 数据复权不一致 / split 处理错误

概率:50%

症状

  • 同一标的同一日期,今天下载和上周下载的收盘价不一样
  • 某些日期出现「价格断崖式下跌 50%」(其实是 stock split 没调整)
  • 历史长度对不上(yfinance 偶尔会丢数据)

怎么办

# 1. 永远用 auto_adjust=True
df = yf.download('SPY', start='2014-01-01', end='2024-12-31', auto_adjust=True)

# 2. 下载完立刻持久化到 parquet
df.to_parquet('data/raw/SPY.parquet')

# 3. 后续从 parquet 读,不要重复打 yfinance
# 4. 至少用一个第二源(IBKR Hist / Polygon / Tiingo)做 sanity check

核心策略数据下载是一次性投资,回测是反复迭代。把数据 cache 住,pipeline 后续就不会被数据源抽风搞坏。

坑 #3:vectorbt API 文档稀缺 + 概念偏离传统回测

概率:50%

为什么会发生

  • vectorbt 文档对入门者不友好(假设你已经会用 numpy)
  • 它不是「事件驱动」回测,而是「向量化」回测——所有信号一次性算完再回放
  • 路径依赖策略(如 trailing stop)写起来反而比 backtrader 难
  • vbt.Portfolio.from_signals vs from_orders vs from_holding 三个入口语义差很多

怎么办

  1. 第一周只用 vbt.Portfolio.from_signals,不要碰 from_orders
  2. 看官方 examples 库(github.com/polakowo/vectorbt/tree/master/examples),里面是最完整的代码
  3. 搞不定就去 vectorbt PRO 的 Discord,但注意 vectorbt 和 vectorbt PRO 是两个不同的库,PRO 有付费版语法差异
  4. 复杂路径依赖策略,直接用 backtrader,不要硬上 vectorbt

坑 #4:metrics 计算口径错(年化、Sharpe、MaxDD)

概率:40%

典型错误

  • 用 simple return 算累积收益时直接相加(应该是 (1+r).cumprod()-1
  • Sharpe 没减无风险利率(小钱影响不大但要意识到)
  • 年化用了 365 而不是 252(做美股就是 252,不要拍脑袋)
  • MaxDD 用了 return.cummin() 而不是 wealth.cummax() - wealth 的 drawdown 系列

怎么办

写完 metrics 函数立刻用一个已知答案的样本验证

# 例如:连续 3 天每天 +1%,第 4 天 -5%
test_returns = [0.01, 0.01, 0.01, -0.05]
# 累积 wealth 应该是 [1.01, 1.0201, 1.030301, 0.978786]
# MaxDD 应该是 (0.978786 - 1.030301) / 1.030301 ≈ -5.00%

不要相信任何「我自己写的 metrics」,必须有 unit test。

坑 #5:venv / 包版本冲突

概率:30%

症状

  • ib_insync 0.9.86 + Python 3.12 → asyncio 兼容性 bug
  • vectorbt + numpy 2.x → 部分函数报 deprecation
  • pandas 2.x → 一些旧代码 df.append() 用法报错

怎么办

# 锁版本,写 requirements.txt
python==3.11.9
ib_insync==0.9.86
pandas==2.1.4
numpy==1.26.4
vectorbt==0.26.1
yfinance==0.2.40

进 Day 8 之前把 requirements.txt lockfile 化,免得后面任何升级污染回测结果。

坑 #6:W-8BEN 没填 / 填错

概率:20%(我已避免)

填错的代价:股息 30% 预扣会变成 28%(Backup Withholding)甚至更高,且要补缴。这是 Day 1 就要做对的事,不要拖。


五、当前回测能力分级(自评)

给读者一个对照标准。不要美化自己

能力点我的状态备注
能下载数据yfinance + IBKR Hist 双源
能算单标的 metricsSharpe/MaxDD/Calmar/Sortino
能跑单策略回测vectorbt SMA 已跑通
能加成本 + 滑点0.1% commission + 1bp slippage
能做参数扫描heatmap 12 格
能区分 in-sample vs out-of-sample概念懂,未实操
能做 walk-forward 优化Week 4 才学
能识别 overfitWeek 4(关键认知)
能做 Monte Carlo 鲁棒性Week 4
能做多标的 portfolio 回测Week 3 才学
能做因子回测(横截面)Week 2 起步
能上 paper trade 实盘Week 5
能做小仓位实盘Week 9
能做组合层面风控Week 10+

当前级别定位:「能跑单标的单策略回测的初学者」。距离「合格的回测工程师」至少还差 4 周(识别过拟合 + walk-forward + 多标的组合 + Monte Carlo)。

这个分级的意义:避免邓宁-克鲁格效应——刚学会跑回测最容易高估自己。SMA 跑出 Sharpe -0.08 不可怕,可怕的是跑出 Sharpe 1.5 还以为是真的(绝对是 overfit / 未来函数 / 数据 leakage)。


六、Week 2 预告:因子投资基础

6.1 为什么因子是个人量化的甜点

Week 1 的 Day 6 已经验证了「单一技术指标没 edge」。Week 2 我要回答一个更根本的问题:有没有哪类策略,对个人量化是天然友好的?

答案是:因子投资

为什么因子对个人友好

因素因子策略高频策略信息不对称策略
资本门槛$5k 起步$1M+$$$
速度要求月度/季度调仓微秒级实时
数据要求公开财报 + 行情高频 tick私有信息
学术支撑50 年文献(Fama-French)黑箱
容量万亿 USD受限受限
个人可行性✓✓✓

因子策略的核心 alpha 来自风险溢价 + 行为偏差,这两类 alpha 不会因为多了一个个人散户参与就消失。Fama-French 1992 年发的论文,30+ 年后仍然有效——这是策略空间稳健性的极强证据。

6.2 Week 2 学习清单

Day主题关键概念实操
Day 8因子基础 + Fama-French 三因子Market / Size / Value下载 Ken French 数据库,复现 SMB/HML
Day 9动量因子 (Momentum)12-1 月动量、风险/收益异常实现一个 cross-sectional momentum 策略
Day 10价值因子 (Value)P/B、P/E、EV/EBITDA、FCF/EV用 yfinance + Alpha Vantage 拿基本面数据
Day 11低波动因子 (Low Volatility)low-vol anomaly、最大化 Sharpe 的非对称分布实现 trailing 12M std 排序选股
Day 12质量因子 (Quality)ROE、ROA、Gross Profitability (Novy-Marx)实现 quality 排序
Day 13因子组合 (Multi-Factor)等权 vs IC 加权 vs 波动率加权4 因子组合回测
Day 14Week 2 复盘 + Day 15 期权基础预告-因子 portfolio 完整回测报告

6.3 Week 2 我最想搞清楚的事

  1. 动量是真的吗:12-1 月动量在 2014-2024 美股上还能不能跑出 Sharpe > 1?
  2. Value Trap 怎么识别:低 P/B 股票里有真便宜也有要破产的,怎么过滤?
  3. 多因子加权的实操方案:等权简单粗暴,IC 加权需要什么数据?
  4. 因子衰减:传统三因子在过去 10 年很多研究说 Value 死了,是真的吗?

七、个人复盘 prompt(给读者一个反思框架)

每完成一周,建议留出 30 分钟回答下面三个问题,用文字形式写下来——口头回答和文字回答的深度不在一个数量级。

Prompt 1: 这一周我最 surprised 的是什么?

我的答案:Day 6 的 SMA 参数扫描,12 格 heatmap 没有任何一格 Sharpe > 0.3。 我此前隐约以为「至少能找到一组参数让回测看着不错」,结果发现真正高效的市场对最朴素的技术指标毫不留情。这件事让我意识到:之前 90% 的「自媒体技术分析教程」都是事后挑参数的视错觉。

Prompt 2: 我最不确定的概念是什么?

我的答案:vectorbt 的 from_signals 在「同一天既出 entry 又出 exit」时的语义。 官方文档说会按 accumulate 参数决定行为,但我没在测试里完全 reproduce 出来。留到 Week 2 用因子策略时再深挖——因子策略月度调仓,不会出现日内信号冲突,可以先绕开。

Prompt 3: 我下周最想搞清楚的事是什么?

我的答案:动量因子 12-1 月在「2020 COVID + 2022 加息周期」里有没有崩溃。 如果有,这个崩溃是不是可以被低波动 / 质量因子对冲掉。这是 Multi-Factor Combination 的核心动机。


八、PM 视角:周复盘是一种「指标驱动的学习」

最后一段思考,给读者迁移到工作上。

PM 工作里有一个反复出现的模式:Week-over-Week Review。 团队每周一花 30-60 分钟看上周的关键指标——DAU、LTV、Funnel Conversion、NPS——和上上周对比,问三个问题:

  1. 哪个指标动了?为什么?
  2. 哪个指标没动但应该动?为什么没动?
  3. 下周我们要主动推动哪个指标?

Week 1 复盘对应到这套框架

PM Review量化学习对应
WoW 关键指标应交付物完成度、回测能力分级
指标动了为什么哪些坑踩了?哪些认知变了?
指标没动为什么三家框架对照没做(速度 vs 严谨度的权衡)
下周主动推什么Week 2 因子 + Options Level 升级跟进

核心迁移性思考

  1. 学习是一个产品,自己是 PM,自己也是用户。每周必须有「产品 metrics」。
  2. 过程指标 > 结果指标。Week 1 的结果指标是「Sharpe -0.08」,糟糕;但过程指标是「跑通了完整 pipeline」,优秀。新手前期 100% 看过程指标
  3. 对自己诚实。我 Day 5 跳了三家对照,那一刻我就知道我在偷懒,但当时给自己讲了一个理由(「在 vectorbt 跑通了,没必要重复」)。复盘时必须把这种合理化叙事戳破。
  4. 复盘的产出物比复盘本身重要。脑子里想的复盘等于没复盘。这篇 Day 7 笔记本身就是 Week 1 的「Definition of Done」——没有它,前 6 天的学习只是「读过」。

九、Week 1 → Week 2 的关键过渡 checklist

在 Day 8 开始之前,把下面这些事做完:

  • (1) Options Level 跟进:如果还在 Pending,今天主动给 IBKR 发邮件询问;如果被批 Level 1,开始规划 Wheel 策略提前
  • (2) 数据源 lockfilerequirements.txt 锁版本,提交到 repo
  • (3) 把 metrics.py 升级:加上 information_ratioulcer_indexhit_rate,因子组合复盘需要
  • (4) 多标的数据下载:下载 SPY 成分股或 S&P 500 完整列表 2014-2024 数据,因子横截面回测起步
  • (5) 三家框架对照(Week 1 留尾):在 backtrader 里复刻同一个 SMA(20,50),确认 vectorbt 的结果可信
  • (6) Ken French 数据下载Ken French Library,Day 8 直接用
  • (7) 把 Week 1 笔记发布:选 1-2 篇精华(推荐 Day 4 metrics + Day 6 回测)发到 Mirror / 知乎,对外讲一遍是最强的内化
  • (8) 更新 TR_PROGRESS.md:Week 1 标 ✅,Week 2 占位

十、明日预告

Day 8: 因子投资基础 — Fama-French 三因子模型

  • 因子模型的数学骨架(横截面回归 vs 时间序列回归)
  • Market / Size / Value 三因子的经济学解释
  • Ken French 数据库怎么用
  • 用 SMB / HML 数据回归任意标的,得到该标的的因子载荷
  • Alpha 的含义:扣除因子贡献后剩下的「真本事」
  • 实操:用 Python 复现 Fama-French 1993 论文核心结论

实际复盘记录

周一上午留出 1.5 小时填这个段落。

  • [hh:mm] Day 1-6 实操产出对照 — ...
  • [hh:mm] 三个认知具体写下来 — ...
  • [hh:mm] 踩坑总结 — ...
  • [hh:mm] Week 2 准备 checklist 完成 — ...
  • 卡点 / 下周要主动推动的事:

总字数:约 5,400 字 Week 1 完成度:83% (10/12),可控完成度 91% Week 1 → Week 2 衔接状态:✓ 数据基础设施就绪,✓ 回测框架就绪,△ Options Level 跟进中