Skip to content

Trading Journal ​

用任意货币记录每一笔交易,并获得诚实的绩效统计:权益曲线、胜率、期望值、盈亏比、回撤、Sharpe 等。journal 分为十个标签页:Breakdown、Analytics、PnL Calendar、Trades、Strategies & capital、Tags、Templates、Fees & currency、Import、Pending tasks。

分类 ​

交易存放在分类中:像 Crypto scalping 或 Long-term stocks 这样的文件夹,每个都有自己的颜色、资金和统计。从分类栏创建;拖动可重新排序。删除分类会删除它的交易。

设置资金 ​

在 Strategies & capital 中,为每个分类设置初始资金,并随时间记录补充和取出。收益率、权益曲线和回撤都是以此为基准计算的;没有它你仍然能得到盈亏,但得不到收益率。

你也可以用信号名称命名策略(例如 Breakout, Pullback)。用策略/信号给交易打标签,Breakdown 标签页就可以按它们过滤:这就是你发现哪些形态真正赚钱的方式。

模板 ​

模板驱动交易表单。内置了一个标准交易;可以按市场或风格创建自己的:

  • 保留字段(方向、价格、数量、手续费、杠杆、乘数、货币、单位类型…)为绩效统计提供数据。
  • 自定义字段(文本、数字、选项列表…)是自由格式的:形态评分、市场状况,任何你跟踪的内容。
  • 模板可以设置默认手续费方案,从中记录时预先选中(每笔交易可覆盖)。

记录交易 ​

在 Trades 标签页中,选择一个模板(或显示所有字段的 Quick 模板)并填写表单。有两个级别:

  • Simple:一次入场,一次出场(持仓未平时留空出场)。
  • Advanced:多个入场和出场腿的加仓/减仓(每个都有自己的价格、数量、手续费、信号),外加 SL/TP 括号单。当括号单触发时,勾选它,它就会折叠成一个出场腿。

表单会在你输入时预览平均入场价、净盈亏和未平仓数量。你可以附上最多两张图片(图表截图),为衍生品选择杠杆和合约乘数,并写下你对这笔交易的反馈。

盈亏在读取时计算,并能处理部分未平仓的头寸。成本基础可在加权平均成本(默认)和 FIFO(对税务导出有用)之间切换,所选方式会真正生效,统计和交易表单的实时盈亏预览都是如此。

手续费 ​

在 Fees & currency 中保存手续费方案:固定或百分比,按手、单位、合约或交易收取(例如 IBKR stocks: 0.05 % per trade)。在交易上选择方案会自动计算手续费;手动输入的手续费始终优先。

多币种与汇率 ​

交易保留你输入时使用的货币。汇总货币(显示用)通过每日汇率源换算,汇率源每个工作日自动回填,周末和假日沿用前值。

如果某个日期的汇率无法获取,这些交易会被排除在换算后的合计之外,并出现在 Pending tasks 中,你可以在那里手动输入缺失的以美元为基准的汇率(1 USD = … 该货币),之后这些交易就会重新计入。

Breakdown(你的统计) ​

按分类或跨所有分类,可按日期范围、代码、方向、资产类别、策略、信号和标签过滤。过滤栏与 Analytics 共用,所以在一个界面设置的范围就是另一个界面的范围,代码列表提供 journal 实际持有的品种:

  • 以显示货币计的权益曲线。
  • 已实现盈亏 · 收益率 · 胜率 · 交易数(已平仓/未平仓) · 期望值 · 盈亏比 · 平均盈利 / 平均亏损 · 最佳 / 最差交易 · 最大回撤 · Sharpe 和 Sortino · 总手续费 · 投入资金 · 已用保证金 · 保证金回报率。
  • Sharpe 和 Sortino 根据每日收益率,相对于带入每一天的权益计算并年化,与 Analytics 使用的定义相同,所以两个界面一致。

Analytics(解读账本) ​

整个账本分为八个标签页,使用与 Breakdown 相同的过滤器:

  • Overview:以 R 计的期望值和总 R(针对带有计划止损的交易)、每笔交易的风险、Sharpe 及旁边的 Sortino、最大回撤及低于峰值的天数、盈利和亏损的交易日、平均每日、当前和最佳连续记录,然后是 R 分布和你标记的错误所付出的代价。
  • Distributions:按持仓时间、入场小时、入场星期几和仓位大小划分的净盈亏,以及每个盈利区间的交易数。你一天中哪个小时真正赚钱。
  • Behavior:你在边际附近做什么,以及它的代价。利润集中度、亏损连续后的仓位、亏损后的节奏、一天如何衰减,以及盈利后的交易与亏损后的交易对比。参见行为分析。
  • Market data:交易背后的 K 线。MAE 和 MFE、出场效率、留在桌上的利润、以 ATR 计的止损距离,以及按波动率状态和入场时趋势拆分的结果。参见行情数据补全。
  • Open risk:唯一关于当下的标签页。还有什么在冒险、风险集中在哪里,以及五个未平仓头寸是五个赌注还是一个。参见未平仓风险。
  • Scatter:任意两个交易值相互绘制(日期、交易编号、净值、累计盈亏、名义收益率、R、持仓时间、仓位…),按结果、方向、策略、代码或资产类别着色,带趋势线和缩放。
  • Breakdown:按策略、品种、标签、资产类别或方向分组的绩效,每行包含交易数、胜率、净值、期望值、平均 R 和盈亏比。
  • Compare:本日、本周、本月、本季度、本年或自定义范围,与紧邻其前的一段逐行对比(净值、交易数、胜率、期望值、平均 R、盈亏比、最大回撤、手续费、交易日),上方是最近十二个周期的条带。

其日期没有汇率的已平仓交易会被明确计数,而不是悄悄丢弃。

行为分析 ​

绩效统计说明账本回报了多少。Behavior 说明你是怎么得到的,以及你的哪些习惯为此买了单。与 Analytics 其余部分相同的已平仓交易,相同的过滤栏,无需额外设置,也无需行情数据:它读取你已经记录的交易。

五张卡片,每张回答一个问题。

利润来自哪里 ​

你最好的五笔交易所赚取的毛利润占比,要多少笔盈利交易才能赚到其中一半,以及去掉这五笔后账户的样子。旁边是集中度指数:0 表示每笔盈利交易赚得差不多,1 表示一笔交易撑起了一整年。平均盈利与盈利中位数从另一个角度显示同样的偏斜,累计曲线把它画出来。

要看的数字是去掉前五笔后的净值。如果为负,说明优势依赖于你无法预定的离群值。

亏损连续后的仓位 ​

按交易之前发生的事情分组的入场名义价值中位数:盈利之后、一次亏损之后、两次之后、三次或更多次之后。每行带有其交易数、胜率、期望值、平均 R 和净值,所以升级是被定价的,而不只是被注意到。

在两次亏损后加大仓位,是 journal 能抓到的最昂贵的习惯。这里一行持平,就是大多数账本最先失去的纪律。

亏损后的节奏 ​

从一次出场到下一次入场的间隔中位数,比较盈利之后与亏损之后。紧接亏损之后,在远小于你自己通常间隔的时间内开出的交易,会被计为报复性交易,因为短线交易者和波段交易者没有共同的时钟。这些交易有自己的一行:有多少笔、赚了多少、平均值与其余所有交易相比如何。

天也会被比较,含有亏损的一天与干净的一天,按交易数比较。

一天如何进行 ​

按交易在其当地日内的排名划分的平均结果:第一、第二、第三、第四及之后,附带每个排名的平均 R 以及当天每多一笔交易的价值。许多账本在午饭前赚钱,午饭后又吐回去。这里会显示出来。

盈利之后,亏损之后 ​

跟在某个结果之后的那笔交易,绝不是结果本身。交易数、胜率、期望值、平均 R、中位数仓位、平均风险、持仓中位数和间隔中位数并排显示,下面标出三个重要的差距(期望值、仓位、持仓)。

陈述有下限

卡片顶部的那句话只有在样本下限(范围内二十笔已平仓交易,比较的每一侧八笔)并且达到效应阈值之上才会写出。低于任一条件时,卡片仍会绘制并标注为初步观察。三笔交易无法显示一个习惯。

行情数据补全 ​

交易日志知道你的入场、出场和止损。它不知道你持仓期间价格去了哪里,而大多数有用的答案恰恰在那里:你的止损是否位于噪声之内、每次走势你实际保留了多少,以及策略在哪些市场状况下有效。

Market data 标签页会加载你自己交易背后的 K 线并对其进行测量。

一次性设置 ​

打开标签页上的 Sources:

  • K 线大小:Automatic 会根据你自己的持仓时间中位数,选择仍能在典型头寸内留下大约二十根 K 线的最粗时间框架。想自己决定就固定一个。
  • 获取:Off 只测量已存储的内容,On demand 在你点击时下载,Automatic 会自行为新交易排队下载缺失的窗口,并在完成时通知你。
  • 每种资产类型的来源:股票、ETF、加密货币、外汇和期货各选择一个授予 journal 的 data connector,或 Automatic,它会取第一个服务该类型的已授权 connector。

不会在你背后下载任何东西,下载就是普通的 Historical Data 任务:同一个队列、同样的额度核算、同一个任务列表。

发现、下载、测量 ​

三个按钮,按此顺序。

  • Discover 读取过滤后的交易需要什么与你已存储什么,并且不写入任何内容。每个品种你会得到范围内的交易、已存储的 K 线、缺失的窗口,以及状态:ready、partial、missing、no source、unsupported、contract needed。
  • Download missing 为这些窗口排队并跟踪该批次。只请求缺口,而且缺口是根据 K 线而不是根据间隔猜测来请求的:日线股票序列每个周末都缺失,24/7 加密货币序列则从不缺失,所以没有任何间隔宽度对两者都适用。
  • Measure 把每笔交易与它的 K 线对照并存储结果。

测量是增量的。当交易被编辑、新 K 线到达或粒度改变时,已存储的测量会重做。Re-measure all 会强制重做整个范围,用于你更改了 K 线大小并想让每笔交易处于同一基础的时候。

命名期货合约 ​

股票在任何地方都叫同一个名字。期货合约则不是,而你的 journal 代码通常指的是你交易的根代码,而不是你的数据服务商所提供的合约。

所以 journal 会问一次,而不是猜测。需要它的品种会显示 contract needed,Name the contract 接受你的来源所用的拼写方式:MNQU6(TWS 显示的、你复制的),或带合约月份的根代码 MNQ.202609,或当根代码在多个交易所上市时的 MNQ.202609@CME。下游所有内容都使用该代码。

期权会被报告为 unsupported,而不是与其标的匹配。用股票的 K 线测量期权交易,会产生看似正确却毫无意义的数字。

你会得到什么 ​

  • Excursions:平均 MAE 和 MFE,以金额和计划风险的倍数表示,以及从入场到各自的中位数时间。
  • Exit efficiency:你实际保留的最佳走势所占的份额,以及在每笔已测量交易中留在桌上的利润。
  • 止损是不是太紧:入场时以 ATR 计的止损距离中位数、有多少止损处于一个 ATR 之内,以及有多少盈利交易先越过了其风险的 80%。位于噪声之内的止损,是市场在去往你目标的路上顺手拿走的止损。
  • 目标是不是太近:保留不到所提供走势一半的盈利交易,以及最佳点时显示的与最终落袋的对比。
  • 多深才见效:每笔交易的最差点,按 R 分桶,从 0 到 0.25R 直到超过 1.5R。这能告诉你止损该放在哪里。
  • 按波动率状态和按入场时的趋势:同样的统计,按平静 / 正常 / 剧烈,以及上升 / 平坦 / 下降拆分。

状态是你自己账本的三分位数,而不是绝对阈值。绝对阈值会把每笔加密货币交易都称为剧烈,而无法告诉你策略何时有效。已测量交易少于十二笔时,不会标注任何状态。

Scatter 标签页也读取这些:MAE 对 R、效率对持仓时间、按状态着色的点云。

未平仓风险 ​

其他每个标签页都在衡量过去。Open risk 衡量此刻仍在冒险的东西。

只要仍有剩余数量,头寸就是未平仓的,并按该剩余部分计算:已减仓四分之三的交易只承担四分之一的风险,而不是开仓时的风险。

标题数据 ​

  • 总敞口和净敞口,以金额和占账户的份额表示,多头和空头先相加再轧差。
  • At stake:如果每个计划止损都被触发你会亏多少。没有记录止损的头寸会被单独计数并点名,因为它们冒的风险是未知的,而不是零。
  • Open result,按最后一个已存储的收盘价盯市,并说明实际有多少头寸可以被盯市。
  • Effective bets:按仓位大小,你的各个头寸相当于多少个独立头寸,以及按其测得的相关性再算一次。

头寸表按从大到小列出,包含方向、未平仓大小、入场、止损、最新价格、价值、冒险金额、占总数的份额、未平仓结果和持仓天数。

风险位于何处 ​

按品种、资产类别、方向或策略的集中度,在记录了止损时按风险计算,没有时回退到按仓位大小(面板会说明是哪种)。一个品种承担了一半的冒险金额,这是任何权益曲线都不会显示的、关于你账本的事实。

这些是不同的赌注吗 ​

五个一起移动的头寸,就是放大五倍的一个头寸。为回答这个问题,标签页在已存储的日线 K 线上测量相关性,无论补全使用的粒度如何,并且从不获取任何内容。

三个数字,只有第三个描述你的账本:

  • Added up:每个止损同时触发,求和。
  • If independent:如果没有任何东西一起移动,风险会是多少。
  • At these correlations:账本实际冒的风险。

它们的比值是叠加系数:1.0 表示真正独立的赌注,更高表示同一个赌注重复了几次。没有已存储 K 线的品种会被点名并排除在矩阵之外,而不是被假定。

警告以句子形式给出:一对品种以 0.9 一起移动、单个品种承担过多、头寸没有止损、账本比看起来更薄。没有任何问题时,也会明说。

纪律标签 ​

标签是你违反或遵守的规则:移动了我的止损、没有形态、亏损后加大仓位。在适用的交易上勾选它们,Analytics 就会给它们定价:有多少已平仓交易违反了规则、这些交易的平均值与干净的交易相比如何,以及两者之间的差距。这就是以金钱计的错误成本。

PnL Calendar ​

按月的网格,显示每日已实现盈亏,上涨日为绿色,下跌日为红色,按该月最大的一天缩放,侧边是每周合计。点击某一天可跳转到它的交易。

它还会读取你的交易例程。附上某个分类在一段时期内遵循的例程,每个交易日就会带一个圆点:当天到期的所有例程都已勾选时为绿色,一个都没勾选时为红色,介于两者之间为琥珀色。你没有交易的日子无论例程怎么说都保持灰色,当天没有应做的例程则完全没有圆点。悬停时会点出每个例程及其各自的标记。

例程本身位于 Trading Routines 并在那里勾选:journal 只记录某个账本运行了哪些例程,所以同一个习惯绝不会被写入或勾选两次。

导入交易簿 ​

Import 视图接收你在别处保存的交易簿(broker 导出、另一个 journal、电子表格),并把它变成 journal 交易。没有按 broker 区分的解析器:CSV、TSV、JSON 和 Parquet 都走同一套检测。

**工作方式。**拖入文件,服务器提出映射,你对照真实交易的预览进行检查,然后导入。

  • 检测读取表头(en、fr、es、de、it、pt,外加常见的 broker 用语)以及值本身。分隔符、小数点和日在前还是月在前的日期,均按列判定。无法确信识别的列保持未映射,而不是被猜测,由你自己指定。
  • **写入前预览。**分析步骤不写入任何内容:它返回构建出的交易、合计和每行错误,并在每次映射编辑时重新运行,所以你看到的正是将被保存的内容。文件自身的盈亏会与计算出的盈亏交叉核对。
  • 行的形态。一行要么是一次往返交易(一行 = 一笔交易),要么是一次成交(一行 = 一次成交)。成交按品种分组为带入场和出场腿的头寸;最后仍未平仓的内容会作为未平仓交易导入。
  • **堆叠的对账单。**把多个表塞进一个文件的导出(IBKR 风格)会逐段读取,并提供选择器来切换表或把文件按平面读取。
  • **点值。**对于文件中找到的每个代码,导入会询问合约点值,因为没有任何导出文件带有它。它会随映射一起保存。
  • **映射。**保存映射后,来自同一来源的下一个文件会通过其表头指纹被识别并自动映射。你手动更正的列也会被记住。

映射不是模板

journal 模板是你手动记录交易所用的表单。导入映射说明外部文件的哪一列对应哪个交易字段。它们分开列出,绝不混用。

从 broker 拉取 ​

当有 broker 账户授予 journal 时,Pull from a broker 无需文件即可完成同样的导入:选择账户和时间段,成交会被折叠成头寸返回,并在写入任何内容之前预览。没有需要检查的映射,API 返回类型明确的字段。重新运行更宽的时间段会刷新已导入的头寸,而不是重复。

撤销导入。每次导入是一个批次,列出其日期、文件和交易数。Revert 恰好删除它创建的交易。导入也按分类去重,所以重新导入同一个文件不会有任何变化(同一份对账单仍可以供给两个分类,因为分类就是一个账本)。Forget 一个批次会解除该保护,使其交易重新变成普通交易。

导出与报告 ​

在 Trades 标签页中,你可以导出数据并生成绩效报告:

  • CSV 导出:原始交易,用于电子表格或税务软件。
  • 定期报告:每周或每月的绩效摘要(胜率、期望值、手续费、按策略和分类的明细、权益曲线),渲染为 Markdown 或 PDF。

协同工作 ​

  • Tax Calculator:加载你某个税务年度的已实现 journal 盈亏,拆分为资本/衍生品/加密货币收益。
  • Historical Data:Market data 和 Open risk 标签页通过授予 journal 的 data connector 读取 K 线,并把缺失的部分作为普通任务下载。
  • Trading Routines:PnL calendar 按交易日显示该分类所遵循的例程是否已勾选。
  • Dashboard:快速交易小组件可从主页记录一笔交易。
  • RemindMe:添加与 journal 关联的提醒(例如每周复盘)。