第四章 交易日志设计:字段设计与记录规范
做期权交易,很多人亏就亏在「不知道自己怎么亏的」。我见过太多交易员,复盘时连当时为什么开仓都说不清楚。说白了,没有一本好日志,你的交易经验就是一笔糊涂账。
今天我们就聊聊交易日志怎么设计。这不是让你记流水账,而是建立一个可回溯、可量化、可优化的交易档案。
4.1 核心字段设计:每一笔交易都要留下「指纹」
我个人习惯,日志字段分三类:交易标识、合约特征、市场状态。缺一不可。
4.1.1 开仓时间
精确到秒。为什么?因为期权价格对时间极其敏感。同一张合约,上午10:00和下午14:30的隐含波动率可能差好几个点。我曾经因为只记了日期,复盘时死活找不到那笔交易的对应行情——后来才发现是开盘和收盘的IV完全不同。
4.1.2 标的资产
记录合约代码,比如「510050.SH」或「000300.SH」。别只写「50ETF」,因为不同交易所的规则有差异。我建议连合约月份也带上,比如「50ETF购6月」。
4.1.3 行权价
这个不用多说。但要注意:记录行权价的同时,最好标注一下它是「实值、平值还是虚值」。你想想看,同样是行权价3.200的合约,标的价格3.150和3.250时,它的性质完全不同。
4.1.4 权利金
记录成交时的权利金价格,单位是「元/张」。我习惯同时记录买入价和卖出价,因为滑点成本往往比想象中大。嗯,这里要注意:如果你做的是组合策略,每腿的权利金都要单独记。
4.1.5 隐含波动率(IV)
这是期权交易的核心指标。记录开仓时的IV百分位,比如「22.5%」。我个人还会额外记一个「IV相对历史分位数」,比如「当前IV处于近90天80%分位」——这能帮你判断现在是不是「贵了」。
4.1.6 Delta
Delta告诉你标的价格每变动1元,期权价格变动多少。我建议记录开仓Delta和收盘Delta。为什么?因为Delta会随着标的价格和时间变化,你复盘时能看出「方向判断是否准确」。
option_chain.delta 直接获取。手动记录的话,至少记到小数点后两位。
4.2 日志记录规范:别让数据变成垃圾
光有字段不够,记录方式不对,数据就是一堆废纸。我踩过这个坑——早期用Excel随便记,结果字段名不统一,日期格式混乱,最后根本没法做量化分析。
4.2.1 统一命名规则
所有字段用英文小写+下划线。比如:
open_time
underlying
strike_price
premium
iv
delta
别用中文,也别用驼峰。为什么?因为后续你要用Python做数据分析,中文变量名容易出编码问题,驼峰在批量处理时容易手误。
4.2.2 数据精度要求
| 字段 | 精度 | 示例 |
|---|---|---|
| 开仓时间 | 秒 | 2025-03-15 09:32:17 |
| 权利金 | 小数点后4位 | 0.0456 |
| IV | 小数点后2位 | 22.50% |
| Delta | 小数点后4位 | 0.4523 |
4.2.3 必填与选填字段
我建议把字段分成两级:
- 必填(不能为空): 开仓时间、标的、行权价、权利金、IV、Delta、开仓方向(买/卖)、开仓数量
- 选填(尽量填): Gamma、Theta、Vega、平仓时间、平仓价格、盈亏金额、备注
4.3 日志结构设计:从单笔到组合
单腿交易好记,但组合策略就复杂了。比如你做了个「牛市价差」,它由两张合约组成。怎么记?
我的做法是:每条日志对应一个「交易单元」。单腿策略就是一条记录,组合策略拆成多条记录,用「组合ID」关联。
举个例子:
组合ID: COM_001
腿1: 买入50ETF购6月3.200,权利金0.0456,Delta 0.45
腿2: 卖出50ETF购6月3.300,权利金0.0123,Delta 0.25
这样你复盘时,既能看单腿表现,也能算组合整体盈亏。
4.4 自动化记录:用Python解放双手
手动记录太累了,而且容易出错。我建议用Python写个脚本,对接交易接口,自动抓取数据。下面是一个简化版的日志记录函数:
import pandas as pd
from datetime import datetime
def log_trade(trade_data):
"""
trade_data: dict,包含所有必填字段
"""
log_entry = {
'open_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
'underlying': trade_data.get('underlying'),
'strike': trade_data.get('strike'),
'premium': trade_data.get('premium'),
'iv': trade_data.get('iv'),
'delta': trade_data.get('delta'),
'direction': trade_data.get('direction'), # 'buy' or 'sell'
'quantity': trade_data.get('quantity')
}
# 追加到CSV文件
df = pd.DataFrame([log_entry])
df.to_csv('trade_log.csv', mode='a', header=False, index=False)
print(f"交易已记录: {log_entry['open_time']}")
return log_entry
这个函数每次调用就追加一行。你可以在交易策略的回测循环里调用它,或者在实盘交易时通过API触发。
4.5 知识体系总览
下面这张图把交易日志的核心逻辑串起来了。你看一眼就能明白:字段设计是基础,记录规范是保障,自动化是效率,而最终目的都是为了复盘优化。
你看,整个体系其实不复杂。关键是把每个环节做扎实。我见过有人日志记了半年,结果因为字段不全,复盘时根本算不出盈亏归因——那这半年就白干了。
所以我的建议是:从第一笔交易开始,就按这个规范来记。哪怕一开始觉得麻烦,坚持一个月,你会发现复盘效率提升一大截。