OptiNod 学院
把交易日志当作数据集:你的偏差留在成交记录里
“我总是过早止盈”的感觉不能算证据。给每笔成交标注形态和1R之后,偏差就能用各形态的期望值和实现比率来衡量。
“我总是过早止盈”的感觉,“我经常不遵守止损”的自责,都是只有寥寥几笔样本的记忆。如果每笔成交都在同一列里写下相同的判断,偏差就可以按各形态的期望值和实现比率算出来。
交易日志是每一笔成交的记录。把这些记录当作数据集处理时,一笔交易是一行,这笔交易的各项属性是各列:入场时间、出场时间、形态名称、入场依据、计划的止损幅度(1R)、实现的盈亏(R)。一笔交易这样写成多列,积累到几百笔之后,任何问题都可以挑选相应的列,用汇总来回答。
大多数日志被写成了检讨书,“今天太急了,下次要忍住”这样的句子越积越多。这样的记录重读时能带来安慰,却无法汇总。急躁是否真的扩大了亏损,哪个形态的期望值为负,从句子里算不出来。检讨书是样本只有一笔的感想,靠感想衡量不了偏差。
“我太早兑现利润”的感觉,说的是一个分布。这类说法只能用分布来验证。一个形态的期望值一行就能算出来:用胜率乘以平均盈利R,再减去亏损概率(1减去胜率)乘以平均亏损R。把交易按形态拆开,各自计算这个值,模糊的感觉就变成每个形态上的一个数字。这个数字为负的形态,就是让账户缩水的原因。
判断受最近几笔左右
人不会给所有交易同样的记忆权重。最近结束的交易,以及大赚或大亏的交易,在记忆里被放大,平淡收场的大多数则变得模糊。所以“最近不顺”或者“这个形态很准”的感觉,是把印象深刻的几笔当成了全部。这往往与真实分布不一致。
把交易日志当作数据集,每笔成交都以同样的一行录入。大赚的交易和平淡收场的交易各占一行。汇总使用全部这些行,所以摘要不会被最近几笔拉着走。胜率是60%而账户却在缩水,这种感觉与期望值对不上的地方,汇总全部行时就能用数字确认。

没有列,就算不出偏差
要衡量偏差,需要自己在原始交易列表上加列。交易所导出的列表只有入场价、出场价、盈亏这几项。仅凭这三列,处置效应和追涨入场都算不出来。每种偏差需要的列是确定的,这些列要在入场和出场的时点亲手记下。

- 形态标签:用一个词写下这笔交易出自哪条入场规则(突破、回踩、逆势等)。这是按形态汇总的基准列。
- 计划1R:把入场时定下的止损幅度作为R的基准写下来。此后所有盈亏都除以这个1R,以R为单位记录。
- 实现R:出场盈亏除以1R得到的值。用一个数字同时容纳胜负和大小。
- 持仓时间:入场和出场时刻之差。按盈利单和亏损单分开求平均,处置效应就能用时间算出来。
- 入场滑点:把信号K线的收盘价与实际入场价之间的距离,以R为单位写下来。追涨入场的幅度就从这里得出。
- 止损遵守:用“是/否”写下是否在计划的止损处出场,还是往后拖了。违反率是锚定效应和摊平亏损的指标。
- 前一笔结果与情绪标签:把前一笔交易的胜负,以及入场瞬间的状态(急躁、过度自信等)按类别写下来,不要写成句子。
这些列只有在入场和出场的瞬间才能准确记录。过几天凭记忆去填,这些数字本身就掺进了偏差。
列交叉之后就得到各偏差的指标
列齐备之后,偏差通过列的交叉汇总来计算。每种偏差都有各自专属的列组合。
用实现R的正负号和未平仓的持仓数量,可以得到处置效应的PGR/PLR。兑现盈利的比例高于兑现亏损的比例,说明出场是不对称的。把持仓时间列按盈利单和亏损单拆开,同样的不对称会再次以时间的形式得到确认。
入场滑点列的平均值,是以R衡量的信号与执行之间的距离。这个值越大,说明离信号时点入场越晚,晚多少,到目标的距离就缩短多少,盈亏比随之降低。
止损遵守列的违反率,是亏损被放大到超出计划的频率。把违反止损的交易的平均实现R与遵守止损的交易相比,就能算出拖延止损的习惯让平均亏损增加了几倍。
用前一笔结果列,可以得到亏损后立即再入场的期望值。只挑出亏损交易之后N根K线内入场的交易,算出期望值,再与整体期望值比较。如果这个值更低,说明账户正在因为报复性交易一点点缩水。
每一个指标在前面几篇里都已经定义过。这一篇补充的是,这些指标全部来自同一份数据。处置效应的PGR/PLR、追涨的入场滑点、报复性交易的亏损后期望值,都是同一份交易列表上的列以不同方式组合的结果。把列备齐一次,就能在同一个数据集里计算多种偏差。
各形态的期望值决定该淘汰什么
最直接的汇总是各形态的期望值。按形态标签把行分组,在每组里计算胜率、平均盈利R、平均亏损R,得出期望值。比如突破形态50笔,胜率45%,平均盈利2.0R,平均亏损1.0R,那么用胜率45%乘以平均盈利2.0R,再减去亏损概率55%乘以平均亏损1.0R,期望值为0.35R。同一个账户的逆势形态30笔,胜率55%,平均盈利0.8R,平均亏损1.3R,用胜率55%乘以平均盈利0.8R,再减去亏损概率45%乘以平均亏损1.3R,期望值是−0.145R。
只看整体的一个期望值,两种形态混在一起,可能显得是正的。按形态拆开,就能用数字确认逆势形态是让账户缩水的原因。淘汰的候选不是胜率低的形态,而是期望值为负的形态。上面的例子里,逆势形态的胜率高出10个百分点,期望值却为负。
不过,样本少的形态,其负期望值很难作为淘汰的依据。8笔交易得出的−0.2R可能落在偶然的范围之内。只淘汰样本足够多的形态,样本少的就继续标注,等数值稳定之后再判断。

标注与淘汰是反复进行的工作
把交易日志当数据集使用,不是一次整理就结束的工作。每周把新增的行加进来,重新计算各形态的期望值和偏差指标,负期望值的形态要淘汰或收窄入场条件,出场指标不对称就调整止损、目标规则。调整之后,再汇总一次,看这个改动在下一批样本里有没有改变期望值。
这些汇总可以手工做,但把交易列表导出成CSV,上传到CSV分析,胜率、盈亏比、期望值、回撤等指标会一次性算出来。形态列填好之后,同样的指标可以按形态分开查看。工具做的是汇总,标注则必须由人在入场和出场的瞬间完成。列是空的,任何工具都算不出偏差。
这项反复工作的目的不在于提高胜率,而是减少交易清单中负期望值形态的比重,增加正期望值形态的比重,让整体期望值一点点向正的方向提升。一周的样本很小,数值会摇摆,但同样的流程重复下去,哪个形态在让账户缩水,几周之内就会以稳定的数字确认下来。
两个陷阱
把情绪列写成检讨书的习惯。 情绪列里写“太急了,要反省”这类句子,这一列就无法汇总。情绪要先定成几个类别(急躁、过度自信、恐惧等),以标签的形式写下,才能和实现R交叉,算出“过度自信时那些交易的期望值”之类的数字。句子是用来重读的,标签是用来汇总的。
对样本少的形态草率淘汰。 只看几笔亏损就放弃一个形态,这个判断是把近因偏差包装成了规则。正期望值的形态在较短的区间里也自然会出现连续亏损。淘汰要结合样本量和期望值的置信区间一起看,再做决定。
只有标注过的列,偏差才能以数字呈现
把交易日志写成检讨书,偏差就一直停留在模糊的感觉上。这种感觉在下一次亏损时又会动摇,每次动摇,判断就跟着变。但同样的记录当作数据集处理,“我太早兑现利润”的印象就变成盈利单和亏损单平均持仓时间的差距,“这个形态很准”的感觉就变成该形态的期望值这一个数字。处置效应、追涨、报复性交易的指标,前面几篇也各自讲过,说到底都是同一个数据集的列以不同方式交叉得出的汇总。给每笔成交写下形态和1R,把这些印象和感觉变成可以计算的列,前面几篇讲过的偏差也就能在同一个数据集里一起汇总。