返回交易笔记
TR Day 62

第一笔实盘 — F 0.20 Delta CSP

第一笔实盘的心理结构、保守 Wheel 的参数选型、限价单成交动力学

2026-07-10
Phase 3: 实盘+规模化+迁移
FirstLiveTradeCSPWheelFordFSmallAccountPsychology

日期: 2026-07-10 方向: Phase 3 / 第一笔实盘 阶段: Phase 3: 实盘+规模化+迁移 标签: #FirstLiveTrade #CSP #Wheel #FordF #SmallAccount #Psychology


今日目标

类型内容
学习第一笔实盘的心理结构、保守 Wheel 的参数选型、限价单成交动力学
实操在实盘账户下出第一张 cash-secured put(F,30 DTE,0.20 delta)
产出TR-DAY62 笔记 + 实盘下单脚本(带护栏)+ thesis 文档 + 心理记录模板

核心规则:今天不是要赚多少 premium,是要把「第一次真金白银下单」这件事,做得像第 100 次一样冷静。


一、为什么今天是 Day 62

复盘前 61 天:

区间内容状态
Day 1-30Phase 1:IBKR 设置、ib_insync、Python 量化基础、期权希腊字母
Day 31-45Phase 2 前半:Wheel 策略 paper 跑通、SPY/QQQ 上 paper CSP+CC 循环
Day 46-60Phase 2 后半:财报策略 paper、回测框架、风险预算化、tax-lot 记账
Day 61Phase 3 启动日:实盘账户入金 $1,000 USD,过 W-8BEN+options L2 终审
Day 62第一笔实盘 CSP今天

为什么不直接拉到 SPY:SPY 一张 ATM put 锁的现金 ≈ $40k,账户根本不够。我需要一个单位面值小的标的来跑通流程。F 是首选——价格 ~$10,一张 $9 strike put 只锁 $900,正好在 $1,000 账户的可承受范围内,留 $100 缓冲应付佣金和数据费扣款。

核心认知:第一笔实盘的目的不是「最大 Sharpe」,是「最小不可逆错误」。所以选了一个就算 100% 亏光也只损失 $900 的标的,且 thesis 是「我愿意以 $9 持有 F 100 股」——assigned 不是事故,是计划的一部分。


二、标的最终选定:Ford (F)

2.1 候选 vs 最终

进 Day 62 之前我列了 3 个候选:

候选价格0.20Δ 30DTE Put锁定资金否决理由
F (Ford)~$10.10strike ~$9, premium $15-20$900✅ 选中
SOFI~$8.50strike ~$7.5, premium ~$12$750IV 太高、波动剧烈、新闻驱动不可控
PLTR~$25strike ~$22, premium ~$45$2,200账户不够 / 远超单笔风险预算
BAC~$45strike ~$41, premium ~$70$4,100账户不够
SPY~$580strike ~$555, premium ~$300$55,500账户根本不够

为什么是 F 不是 SOFI:F 的 30 天 HV ≈ 25%,SOFI ≈ 50%。SOFI premium 看起来更香,但同样 0.20 delta 在 SOFI 上意味着「F 跌 10% 才 ITM」vs「SOFI 跌 18% 才 ITM」——表面看更安全,但 SOFI 真跌起来一周 -30% 都见过。第一笔我不想被 tail event 教育

为什么 30 DTE 不是 7 DTE

  • 7 DTE 的 theta 衰减更猛但 gamma 风险也猛——离到期越近,标的小幅变动对 delta 影响越剧烈。第一笔不能要 gamma 风险。
  • 30 DTE 给我心理缓冲时间——这一笔我至少有 30 天可以观察、可以决策、可以学习。
  • 30 DTE 落在 theta 加速衰减的「甜区前段」,时间价值衰减率每天 ~3%,每周 ~20%,是 Wheel 教科书的标准选项。

2.2 实际报价快照(写笔记时取的)

Underlying: F (Ford Motor Co.)
Spot:        $10.12
30 DTE put @ $9.00 strike:
  Bid:       $0.15
  Ask:       $0.21
  Mid:       $0.18
  Delta:    -0.19
  Theta:    -0.003 / day
  IV:        28%
  OI:        12,400  ← 充足,limit order 不至于完全无人接
  Volume:    340/day ← 流动性 ok

合约乘数 100 → 一张 mid 价 premium = $18,最大可收 $21(ask),最低 $15(bid)。我会挂 mid,等成交,不追 ask。


三、下单前 final sanity check(5 项)

我做了一张 checklist,今天起这是每笔实盘的强制流程。一项不过都不能下单。

3.1 ✅ 资金核算

账户净资产:    $1,000.00
- 应锁现金:    $900.00   (1 张 × 100 × $9 strike)
- 预留缓冲:    $80.00    (佣金、数据费、wire-out 摩擦)
- 可下单余额:  $1,000 - $900 - $80 = $20  ← 接近 0,但 ok
+ 预期 premium: $18 (mid)
账户预期成交后净值: ~$1,018(未实现)

护栏:如果今天忽然冒出「再下一张」的想法,账户连一张都不够第二笔——这是好事,物理性地防止了「first day 上头加仓」。

3.2 ✅ Thesis 写下来(这是法律级文件)

我打开 notes/thesis/F-CSP-20260710.md 写下:

Thesis:我(持有人)愿意以 $9.00/股 的价格买入 Ford Motor (F) 100 股。

理由

  1. F 当前 ~$10.12,PE ~10,dividend yield ~5%,相对历史估值偏低分位
  2. $9 = 10% 折扣买入价,处于 2024-2026 区间的下沿
  3. 若被 assigned,我会切到 covered call 模式(Wheel 第二段)继续收 premium
  4. 我对 F 的基本面有最低限度的认识(汽车周期、EV 战略、F-150 现金牛、$24B 长债是已知风险)

不是 thesis

  • 「premium 看着不错」——不是 thesis
  • 「IV 高」——不是 thesis
  • 「短期看涨」——不是 thesis(这是 short put,不是 long call)

退出条件

  • 50% rule:premium 跌到 mid × 50% ≈ $9,buy-to-close 平仓
  • 7 DTE 仍 OTM:持有到期,让其归零
  • assigned:接受持仓 100 股 F @ $9,立即评估 covered call

为什么要写 thesis:30 天后如果出问题,我会回来读这份文件。它强迫我现在用慢系统思考,而不是事后用慢系统找借口。这是 Daniel Kahneman + Howard Marks 都强调的反事实文档(pre-mortem document)。

3.3 ✅ Max loss 算清楚

Max Loss = (Strike - Premium) × 100
         = ($9.00 - $0.18) × 100
         = $882

折算账户:  $882 / $1000 = 88.2% 账户损失(理论极限)
触发条件:  F 在到期日 = $0(公司破产到期日股价归零)

这是 worst case,不是 base case。F 30 天内股价归零的概率 ≈ 远低于 1%。但「我能承受 88% 损失吗」这个问题必须正面回答——能。 这 $1,000 是我设的「教育预算」,归零换 30 天实盘经验也是值得的。

但我不会把 max loss 当 base case 焦虑——base case 是 80% 概率 OTM 到期,premium 全收。

3.4 ✅ 50% rule 平仓价已挂

开仓 premium:    $0.18 mid
50% close 价:    $0.09
平仓单类型:      buy-to-close LIMIT @ $0.09 GTC
触发条件:        理论上 mid 跌到 ≤$0.09 即成交

为什么 50% 而非 21 DTE

  • 50% rule 经验数据(tastytrade 数据集,~2M trades):CSP 等到 50% profit 平仓的胜率 ~85%,平均 hold ~12 天
  • 等到期收 100% 看起来更香,但最后 7 天 gamma 风险陡增,性价比反而下降
  • 50% rule 等于「锁定 70% 的预期收益+释放保证金做下一笔」

但我账户现在只能撑一张——所以释放保证金对我没用,今天纯粹是降低 gamma 暴露

3.5 ✅ 暴跌压力测试

情景 1: F 下跌 5% → $9.61
   put 仍 OTM(>$9 strike),premium 可能涨到 ~$0.40
   未实现 P&L: -$22(小幅未实现亏损,未触发 50% rule)
   → 持有

情景 2: F 下跌 10% → $9.10
   put 接近 ATM,premium ~$0.80
   未实现 P&L: -$62
   → 持有(thesis 仍 valid,我愿意在 $9 接货)

情景 3: F 下跌 20% → $8.10
   put 深 ITM,premium ~$1.00 (含 $0.90 内在 + $0.10 时间)
   未实现 P&L: -$82
   被 assigned 概率显著升高
   → 接受 assigned 风险,or 滚动到下月(不在 Day 62 决策范围)

情景 4: F 一日暴跌 30% → $7.08(极端事件,如召回 / 重大 fraud)
   put 深 ITM,premium ~$2.00
   未实现 P&L: -$182
   被 assigned 几乎必然
   → 持有到 assigned,接货 100 股 F @ $9,开始 Wheel 第二段

关键认知:所有 4 种情景我都能接受。没有「需要紧急逃跑」的剧本。第一笔实盘最忌讳的就是出现需要紧急决策的情景。


四、实际下单:双轨执行(脚本 + 手动确认)

第一笔实盘我不做 100% 全自动——我用脚本算好参数、生成订单对象,但最后一步点确认手动做。这是「四眼原则」:脚本是一只眼,我是另一只眼。

4.1 实盘连接脚本(带护栏)

# tr_day62_first_live_csp.py
"""
First live trade — F 0.20 delta CSP
DO NOT RUN UNLESS YOU'VE READ THE THESIS AT notes/thesis/F-CSP-20260710.md
"""

from ib_insync import IB, Stock, Option, LimitOrder, util
from datetime import datetime
import sys

# ---------- 护栏 1: 强制确认 ----------
print("=" * 60)
print(" FIRST LIVE TRADE — F 0.20Δ 30DTE CSP")
print("=" * 60)
print("Have you:")
print("  [ ] Read the thesis document?")
print("  [ ] Verified $1,000 cash in live account?")
print("  [ ] Set 50% close limit order plan?")
print("  [ ] Slept ≥7 hours last night?")
print("=" * 60)
confirm = input("Type 'I HAVE' to proceed: ")
if confirm.strip() != "I HAVE":
    print("Aborted. Not ready.")
    sys.exit(1)

# ---------- 护栏 2: 端口必须是实盘 IB Gateway ----------
LIVE_PORT = 4001  # IB Gateway live
CLIENT_ID = 62    # Day 62 实盘专用 clientId(与 paper 区分)

ib = IB()
ib.connect('127.0.0.1', LIVE_PORT, clientId=CLIENT_ID)

# 双重断言
assert ib.client.port == LIVE_PORT, f"WRONG PORT: {ib.client.port}"
accounts = ib.managedAccounts()
print(f"Connected to account: {accounts}")
assert len(accounts) == 1, "Multiple accounts—abort"
assert accounts[0].startswith("U"), "Account ID doesn't look right"

# ---------- 护栏 3: 余额检查 ----------
summary = {s.tag: s.value for s in ib.accountSummary()}
net_liq = float(summary.get('NetLiquidation', 0))
cash    = float(summary.get('TotalCashValue', 0))
print(f"NetLiq: ${net_liq:.2f}, Cash: ${cash:.2f}")
assert net_liq >= 950 and net_liq <= 1100, "Account size out of expected band"
assert cash >= 900, "Not enough cash for CSP"

# ---------- 4: 构造合约 ----------
underlying = Stock('F', 'SMART', 'USD')
ib.qualifyContracts(underlying)
[ticker] = ib.reqTickers(underlying)
spot = ticker.marketPrice()
print(f"F spot: ${spot:.2f}")
assert 9.5 <= spot <= 11.0, "Spot outside expected range—abort"

# 30 DTE 到期日(取最近的月度 expiration)
expiry = '20260814'   # 实际从 ib.reqSecDefOptParams 动态取
strike = 9.0

put = Option('F', expiry, strike, 'P', 'SMART', '100', 'USD')
ib.qualifyContracts(put)

# ---------- 5: 拉期权报价 ----------
[opt_ticker] = ib.reqTickers(put)
bid, ask = opt_ticker.bid, opt_ticker.ask
mid = (bid + ask) / 2
print(f"F {expiry} ${strike}P  bid: {bid}, ask: {ask}, mid: {mid:.3f}")
print(f"Delta: {opt_ticker.modelGreeks.delta if opt_ticker.modelGreeks else 'N/A'}")

# ---------- 6: 护栏 — delta、流动性、bid-ask spread ----------
assert opt_ticker.modelGreeks is not None, "No greeks available"
delta = opt_ticker.modelGreeks.delta
assert -0.30 < delta < -0.15, f"Delta {delta} outside 0.20±0.05"
assert (ask - bid) / mid < 0.30, "Bid-ask spread too wide (>30% of mid)"
assert bid > 0.10, "Premium too thin"

# ---------- 7: 构造订单(不提交!)----------
order = LimitOrder(
    action='SELL',
    totalQuantity=1,
    lmtPrice=round(mid, 2),
    tif='GTC',
    transmit=False,    # ← 关键:不自动发送,需要手动在 TWS 里点确认
)

# 注意 transmit=False:订单会出现在 TWS 待确认队列里,我亲手点 Submit
trade = ib.placeOrder(put, order)
print(f"Order staged in TWS (not submitted). Order ID: {trade.order.orderId}")
print(f"Now go to TWS and click 'Transmit' to actually submit.")

ib.sleep(2)
ib.disconnect()

几个关键设计

  1. input("Type 'I HAVE'"):物理性地防止误执行——脚本不能在 cron 里跑,必须有人坐在键盘前。
  2. clientId=62:实盘和 paper 用完全不同的 clientId。我永远知道哪个连接是哪个。
  3. transmit=False:脚本生成订单但不发送。订单会在 TWS GUI 里以「待确认」状态显示,我亲手点 transmit。这是双轨确认。
  4. 断言 spot/delta/spread/bid:任何数据异常(API 故障、报价错误、流动性蒸发)都直接 abort,不让脚本提交错单。

4.2 在 TWS 里点击 Transmit

脚本跑完后,TWS 的 Orders 面板出现一条 黄色高亮的待确认订单:

Sell  1  F Aug15'26 9.00 PUT  LMT 0.18  GTC

我盯了 30 秒,确认:

  • ✓ 方向是 SELL(不是 BUY)
  • ✓ 数量是 1(不是 10 或 100)
  • ✓ 类型是 PUT(不是 CALL)
  • ✓ Strike 是 9.00(不是 90 或 0.9)
  • ✓ 到期是 Aug15'26(不是 2027 也不是 Tomorrow)
  • ✓ 限价是 0.18(不是 1.8 或 18)

然后点 Transmit。

订单状态从 PendingSubmit → Submitted → Working。

我盯着屏幕看了 5 分钟。没成交——挂在 mid,等 maker 来 hit。


五、下单后第一个 5 分钟(心理记录)

这一节我一边盯盘一边写。没修饰,原始记录。

[T+0:00] 点 Transmit。心跳明显加快。这种感觉和 paper 完全不同。
         Paper 是「我在玩游戏」。实盘是「这 18 美元真的会进我户头,或者那 882 美元真的会出我户头」。

[T+0:30] 订单 Working。没成交。本能想取消重挂 ask。
         理性地告诉自己:你设计的是 mid,挂在 mid 是策略的一部分。耐心。

[T+1:15] 看到 F 跳到 $10.08 — 跌了 4 美分。
         身体反应:紧张感升级。
         理性反应:F 一天波动 1%-2% 是常态。4 美分 = 0.4%,是噪音。

[T+2:00] 想刷新看「现在 premium mid 是多少」。
         不要看!订单一旦挂出,更新报价对决策无意义,只增加焦虑。

[T+2:45] 想再算一遍 Max Loss。
         为什么?因为脑子在找「我哪里没算清楚」。
         事实:我已经算过了。Day 62 笔记里第 3.3 节写明白了。不要再算。

[T+3:30] 订单仍未成交。开始想:「是不是 mid 太低?要不要提价?」
         停。这是 anchoring bias —— 因为没立刻成交就觉得报价低估了。
         事实:流动性合约挂 mid,平均成交时间 5-30 分钟。我才 3.5 分钟。

[T+4:10] 突然意识到:我盯着这个屏幕在做什么?
         我设计了完整规则,按规则下单了。盯盘并不能改变 anything。
         盯盘的唯一可能后果:因为情绪波动改规则。

[T+5:00] 关闭 TWS Order 窗口。打开 Day 62 笔记继续写。
         状态:脱钩成功。心跳回归基线。

核心学习:第一笔实盘的真正训练不是技术训练,是注意力训练——能不能在订单挂出后,把注意力转移到任何其他事情上。

5.1 「这次是真钱了」感觉的解构

Paper Trading 和实盘的体验差异不在于「金额大小」,在于可逆性

维度Paper实盘
错单是否能取消没差别,反正不疼几秒内能撤,过了就成交了
错过的机会想到再玩一遍永远过去了
浮亏数字真实购买力损失
浮盈数字你脑子里已经在花了

第一笔实盘的心智压力不是金钱压力,是**「不可逆决策」的压力**。这种压力 paper 永远练不出来,所以 Day 62 不可避免——总有一天要跨过这一步。

5.2 抑制随时 close 的冲动

下单 20 分钟内订单成交了(mid 0.18)。premium $18 进账。

然后立刻冒出来的念头:「赚到了,要不现在 close 锁定?」

这是 disposition effect(处置效应)——人对小额浮盈极度敏感,容易过早锁利。

我的反制:已经设置了 50% rule 的 GTC 平仓单。这个单不需要我决策,等到 premium 跌到 $0.09 自动触发。我不需要每天问「现在要不要 close」——脚本帮我问了。

但凡今天没设这个自动 GTC close,我大概率会在 +30% 的时候手动平掉,然后 30 天后看着到期收 100% 的曲线后悔。


六、未来 30 天监控计划

Day 63-91(30 天到期窗口)

每天 1 次(最好 US 收盘后),不要更频繁:
  - 看 F 价格变化
  - 看 premium 当前 mid
  - 看 50% rule GTC 单是否触发
  - 不调整、不加仓、不滚动(除非触发明确规则)

50% rule 触发(premium ≤ $0.09):
  - GTC 自动平仓
  - 记录 P&L、hold 天数、underlying 价格变化
  - 写复盘
  - 决定下一笔(同标的 / 换标的)

7 DTE 仍 OTM(最后 7 天):
  - 不 close(gamma 高位但已接近到期,时间价值快归零)
  - 持有到期,让其归零
  - 收 100% premium

7 DTE 但 ITM(最后 7 天但跌破 strike):
  - 评估:roll 到下月 same strike or assigned
  - 优先 assigned(这是 thesis 的本意——以 $9 买入 F)
  - assigned 后切到 covered call 模式(Wheel 第二段)

到期前一天 close-to-ATM(±2%):
  - 不滚动
  - 让 IB 自动处理(OTM 归零 / ITM 自动 assigned)

最重要的规则:除以上明确情景外,不做任何动作。不要因为「F 涨了想锁利」、「F 跌了想滚动」、「IV 涨了想加仓」做任何动作。规则之外 = 不动。


七、第一笔实盘 vs paper 的对比记录

下完单后我对照过去 paper 跑过的 50+ 张 CSP 写了一个对比表。这是 Day 62 最有价值的产出之一——它让我知道未来回测要打多少折扣。

维度Paper (50 张 CSP 样本)Live (今天这一笔)差异
挂单到成交时间平均 <1 秒("insta-fill")实测 ~20 分钟Paper 是仿真,Live 是真做市商
成交价 vs mid100% 在 mid在 mid(这次幸运)Live 可能滑到 mid 偏 ask 一档
滑点(占 premium %)0 bp实测 0 bp,预期 100-300 bpPaper 完全没建模
bid-ask spreadPaper 也显示了 spread 但订单 always at mid真实 spread 影响成交-
partial fill从未发生没发生(数量=1)数量 ≥10 张时可能出现
数据延迟0 ms200-500 msAPI 网络往返
报价跳动频率顺滑跳跃式NBBO 离散
心理状态完全放松心跳 +20 bpm不可量化但巨大
下单耐心不存在(秒成交)必须等-

对策略的影响

  1. 回测如果是 paper 数据样本拟合的,实盘 Sharpe 会 打折 15-30%——主要来自 (a) 滑点 (b) 流动性差时段无法 mid 成交 (c) 心理失误。
  2. 任何「频繁挂单/撤单」策略在实盘里都比 paper 差得多。低频策略(如 Wheel、月度 rebalance)对这些差异相对不敏感——这也是为什么小账户应该从低频策略入门。

八、为什么选这么保守:参数解构

很多人第一笔会选 ATM short call、0DTE、或者 IV crush 玩法——「反正小钱玩玩」。我反对。

参数我的选择激进选项我的理由
Delta0.200.40-0.50 (ATM)0.20 = 被 assigned 概率 ~20%,胜率 80%
DTE307 或 030 DTE 在 theta 衰减甜区前段,gamma 暴露低
Strike$9 (-10% OTM)$10 (ATM)-10% OTM 给我容错空间
方向Short PutLong CallShort premium 收 theta,胜率自然偏高
标的F (low-vol large cap)TSLA / GME / 小盘F 没有「明早 -50%」的剧本
数量1 张多张一张已经吃满账户保证金
持有计划50% rule + 接受 assigned想短期 close接受 assigned 才是 Wheel 完整循环

8.1 0.20 delta = 被 assigned 概率 20%

期权定价里,delta 近似等于到期 ITM 概率(在 BSM 假设下严格成立的是 N(d2) 而非 delta,但实操中 delta 是 N(d2) 的近似)。

Delta = -0.20  →  Pr(到期 ITM) ≈ 18-20%

含义:80% 的概率,30 天后 F 仍在 $9 以上,put 归零,我留下 $18 premium。

剩下 20% 的概率,F 跌破 $9,我被 assigned(按 $9 买入 F 100 股)。

重要的反直觉:被 assigned 不是亏损。它是「我用 $9 买入 F」加「已经收了 $18 premium」。有效成本价 = $9.00 - $0.18 = $8.82

如果 F 跌到 $8.50 我被 assigned,我的未实现亏损是 (8.82 - 8.50) × 100 = $32,不是 (9.00 - 8.50) × 100 = $50。

8.2 30 DTE = Theta 衰减最快的区段

DTE      Theta / day (相对值)
60       ~ 0.5x
45       ~ 0.7x
30       ~ 1.0x   ← 我们在这
21       ~ 1.3x
14       ~ 1.6x
7        ~ 2.3x   ← Theta 最快但 Gamma 也最危险
3        ~ 3.5x   ← 纯赌博区
0DTE     ∞ Theta,∞ Gamma

30 DTE 是「theta 已经在加速,但 gamma 还不那么恐怖」的甜区前段。Wheel 教科书的标准选项是 30-45 DTE,过了 21 DTE 还没平仓的话考虑 roll 或者持有到期。

8.3 $9 strike = F 至少 -10% 才 ITM

F 当前:   $10.12
$9 Strike: 距离 -11.1%

F 30 天历史波动率: ~25%
30 天 1-sigma 移动: 10.12 × 0.25 × √(30/365) ≈ ±0.73

-11.1% / sigma ≈ -1.5 sigma

正态分布下,-1.5 sigma 之外的尾部概率 ≈ 7%

但 delta 给我们 ~20% 的 ITM 概率——为什么不是 7%?

因为期权市场不假设正态分布:实际分布是肥尾(fat tails),下行 skew,IV smile。Delta 内嵌了市场对肥尾的定价。20% 是市场更现实的估计,而非纯学院派 7%。

对我的意义:我应该信 delta 给出的 20%,不要被「-1.5 sigma 只有 7%」的错觉欺骗。

8.4 这是最 vanilla 的 wheel 入门

Wheel 策略的完整 8 字循环:

持有现金 → 卖 CSP(收 premium)
              │
       ┌──────┴──────┐
       ↓             ↓
   OTM 到期       ITM assigned
   现金不变       持有 100 股股票
       │             │
       ↓             ↓
   再卖 CSP     卖 CC(收 premium)
                     │
              ┌──────┴──────┐
              ↓             ↓
          OTM 到期       ITM assigned
          股票不变       股票被 call away
              │             │
              ↓             ↓
         再卖 CC      回到现金状态
                      重新卖 CSP

今天的 CSP 是这个 8 字的起点。无论如何走向,我都有预设动作。这就是「机械化策略」相对「手感交易」的最大优势——决策已经在事前完成,事中只是执行。


九、下单完后做什么(注意力管理)

订单成交后我立刻关闭 TWS,做的事情:

[T+25 min] 关 TWS
[T+30 min] 写这篇 Day 62 笔记到第 5 节
[T+90 min] 中午午餐 + 散步 30 分钟
[T+120 min] 回来写第 6-9 节
[T+200 min] Day 62 笔记完成,更新 docs/daily/TR_PROGRESS.md
[T+next day] Day 63: 实盘 vs 回测的对比分析

绝对禁忌

  • ✗ 反复打开 TWS 刷新报价
  • ✗ 查看 F 的实时新闻 / Twitter / 论坛
  • ✗ 跟朋友说「我下了第一笔实盘」(社交确认会强化情绪)
  • ✗ 查看其他可能想入手的标的
  • ✗ 看 YouTube 上的「options trading guru」
  • ✗ 在 30 天内 reload 账户加仓

为什么这些都是禁忌:每一项都会增加「想动」的冲动。第一笔实盘的目的就是学会不动


十、PM 视角:今天学到的迁移性思考

第一次 production deploy = 看着 dashboard 心跳加速。这一条放在第一位。

我做了 10 年 PM/BA/dev。第一次把自己的代码推上 prod,第一次配合 PM 把新功能 GA,第一次在金融机构按生产红头按钮——每一次都是同样的心跳。今天这种感觉不是新的,但它还是来了

这教会我几件事:

  1. 保持冷静的能力是经验积累的,不是天赋。Day 62 的我比 10 年前第一次 prod deploy 的我冷静得多——不是因为心理素质强了,是因为我学会了把恐慌预算化("It's fine to feel nervous. Now go do the thing.")。
  2. 预案的存在本身就降低焦虑。我今天不焦虑的根本原因不是「我能赚到 premium」,是「F 跌到任何价格我都有预设动作」。未知 = 焦虑,已知 = 执行。把所有 if-else 想清楚写下来,焦虑就消解了大半。
  3. 物理性护栏 >> 心理性自律transmit=Falseinput("I HAVE")assert port==4001——这些是物理性护栏。它们工作的原因是它们不依赖我自律。任何依赖「我应该不会犯错」的设计都是脆弱设计。
  4. Pre-mortem 文档(thesis)比 post-mortem 复盘更重要。事后复盘容易合理化——「我当时就觉得 F 会跌」(hindsight bias)。事前 thesis 是无法被合理化的证据。
  5. 「小金额第一次」的目的不是赚钱。它是为了让你「在真金白银压力下走一遍流程」。$1,000 账户的滑点经验、心跳经验、注意力管理经验——这些在 $100,000 账户上 100% 可迁移。从大账户开始就丢失了这一节训练课。
  6. 金融产品和软件产品的核心相似性:都是用规则消化不确定性。软件产品有 PRD、有 spec、有 SLA。交易策略也有——thesis、退出条件、风险预算。区别仅仅是后者还要加一条「市场不可控」。
  7. 不要为「一次结果」改规则。今天如果 F 暴涨 5% 我赚 $50,不要因为「赚了」而觉得规则可以更激进。今天如果 F 暴跌 5% 我亏 $50,不要因为「亏了」而觉得规则太保守。规则的好坏要看 N=100 次以上的统计,不看 N=1。

十一、明日预告

Day 63: 第一笔实盘 vs Paper 回测的逐字段对比 + 滑点建模

  • 取今天这一笔的真实成交数据
  • 对比过去 30 天 paper 跑过的同标的(F)CSP 数据
  • 量化:滑点、成交延迟、bid-ask 中位数差异
  • 建立「实盘折扣系数」:未来回测 Sharpe × 0.75 作为 live 期望值
  • 写一个最简单的滑点模型:live_premium = mid - 0.5 × (ask - bid) × penalty(volume)
  • 用 Day 62 一笔交易 calibrate(虽然 N=1,但可以做单点 sanity check)

实际执行记录

时间戳 + 实际状态。

  • [09:30] 早盘开市,TWS 实盘登录
  • [09:35] 跑 sanity check 脚本 — NetLiq $1,003.21,cash $1,003.21 ✓
  • [09:40] 拉 F 报价 — spot $10.11,9P bid $0.16 / ask $0.20 mid $0.18 ✓
  • [09:42] 跑 tr_day62 脚本,订单 transmit=False 暂存
  • [09:43] TWS Order 面板核对 6 项(方向/数量/类型/strike/到期/限价)
  • [09:44] 点击 Transmit
  • [10:04] 成交 — fill price $0.18,premium +$18,commission -$1.07
  • [10:05] 挂 GTC buy-to-close @ $0.09 — accepted
  • [10:10] 关闭 TWS,开始写笔记
  • 卡点 / 学到的:
    • 心跳明显加快但能控制
    • 等成交的 20 分钟比预期长但没违规追价
    • 双轨确认(脚本 + TWS GUI)非常有用——脚本里 strike 我打错过一次(写成 9.5),TWS 显示出来才发现

总字数:约 6,400 字 今日完成度:理论 ✓ / 实操 ✓(第一笔实盘下单 + GTC 平仓单挂出) / 笔记 ✓ / 心理记录 ✓