
绩效明细明明很好看,真要发出去却发不出手 —— 客户要看逐笔,可逐笔里藏着你的进出场区域、品种和真实资金量,一封邮件发错人就是一次事故。
逐笔成交明细对做量化的人来说是一份 "全息底稿":它记录了每天在哪个时段、以什么价位、下多少手、赚亏多少钱,甚至还包括当时触发的信号快照。这份底稿的价值恰恰也是它的风险 —— 任何懂行的人拿到它,都能反推你的做单节奏和资金体量。
客户或评委要的只是 "结果靠不靠谱、过程规不规整",并不需要、也不应该看到这些底层的隐私信息。直接发原始明细,等于把钥匙一起交给了对方。脱敏不是造假,而是把 "证据" 里的敏感维度剥掉,只保留能说明问题的部分。
所谓五列脱敏,是把原始明细里最敏感的五个维度逐一转换,让数字仍然可读、可复核,却无法反推真实参数:
日期转 D+NNN:把真实日历换成 "第 N 天",抹掉具体时点,防止对方定位到特定交易时段。
价格转相对百分比:把成交价转成相对当日开盘价的浮动百分比,隐藏绝对价位,进出场区域就不再暴露。
手数转倍数:把绝对手数换算成账户内的相对倍数,隐藏真实资金规模。
盈亏转占权益比:把平仓盈亏换成占当日权益的百分比,只给相对表现,不给绝对金额。
删除信号快照列:含策略构造细节的备注、快照、字段整体移除,这一步最容易被漏掉。
这五列处理完,整张表从 "可复现的操作档案" 变成 "可审计的表现摘要"。
原始列 | 脱敏后 | 为什么要这么处理 |
|---|---|---|
成交日期 | D+NNN(相对第 N 天) | 抹掉真实日历,防止对方定位到特定交易日反推时段偏好 |
成交价 | 相对当日开盘的百分比 | 隐藏绝对价位,进出场的价格区域不再暴露 |
手数 | 账户内相对倍数 | 隐藏真实资金规模,只保留加仓减仓的相对节奏 |
平仓盈亏 | 占当日权益的百分比 | 只给相对表现,不给绝对金额 |
信号快照 / 备注 / 品种代码 | 整列删除 | 这类列直接携带构造细节,最容易漏删,必须整列移除 |
不是所有报告都该给同样细的粒度。披露规则应当跟样本量挂钩,笔数太少时逐笔反而会暴露单笔运气:
笔数少于 30:不给逐笔,只给汇总 —— 均值、极值、盈亏分布区间,够说明问题,又不至于被单笔放大解读。
30~100 笔:按周聚合,把同属一周的交易并成一条周记录,既保留节奏信息,又稀释单日噪声。
100 笔以上:才给逐笔明细,此时样本足够大,单笔数据不再具有 "点名" 意义。
这条规则让报告对外的可信度和对内的保护度成比例,而不是一刀切。
脱敏报告一旦流出,必须能定位 "是哪份、给谁的、什么时候发的"。所以每一页都要压上四段水印:
作业号:本次生成报告的流水号,方便回溯到原始数据版本。
客户代号:接收方标识,泄露时能确认流向。
日期:生成时间戳。
内容指纹:对脱敏后内容做一次哈希取前段,任何改动都能被察觉。
水印不是防君子,而是让追责有据可依,也能威慑随手转发。
以下是一段中文注释的 Python 伪代码,演示核心的脱敏逻辑。示例数据,非真实业绩:
# 脱敏函数伪代码
def desensitize(df, client_code, gen_date):
# 1. 日期列:换成相对第N天,隐藏真实日历
df["日期"] = "D+" + (df["日期"] - gen_date).dt.days.astype(str)
# 2. 价格列:转为相对当日开盘的百分比,隐藏绝对价位
df["相对价格"] = round((df["成交价"] / df["当日开盘"] - 1) * 100, 2)
# 3. 手数列:换算成账户内相对倍数,隐藏真实规模
df["手数倍数"] = round(df["手数"] / df["手数"].median(), 2)
# 4. 盈亏列:转为占当日权益的百分比
df["盈亏占比"] = round(df["盈亏"] / df["当日权益"] * 100, 2)
# 5. 删除含策略构造细节的列
df = df.drop(columns=["信号快照", "备注", "品种代码", "成交时间"])
# 按笔数决定披露粒度
if len(df) < 30: # 样本太少,只给汇总
return summarize(df)
elif len(df) < 100: # 中等样本,按周聚合
return df.groupby(df["日期"] // 5).agg(...)
return df # 足够样本,才给逐笔这段逻辑跑完,再叠加水印渲染,就是一份可外发的报告。
这套脱敏 + 分级 + 水印的流程,手工做一次要十几分钟,还容易漏删一列。用 WorkBuddy 可以把整个流程固化成定时任务:数据落地后自动触发脱敏脚本、按笔数自动选披露粒度、自动叠加水印并输出成 PDF,每次生成的报告还会按作业号归档。WorkBuddy 的价值在于 "重复的事情一次配好、每次一致"—— 它不替你判断,但保证你每次发出去的报告都是同一套标准,不会再出现这次漏删、下次忘压水印的疏漏。
脱敏绩效报告的核心就一句话:只证明结果与纪律,不泄露构造与规模。五列脱敏管住敏感维度,分级披露管住样本粒度,水印管住追溯。把这套规则交给 WorkBuddy 固化后,每次出报告都是一键、一致、可追溯,客户拿到的是规范,自己留下的是安全。
工具箱与回测代跑服务见 Gitee 仓库 https://gitee.com/yu-tongming/quant-trading-skills
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。