{{ toast.message }}
投记WEALTH JOURNAL
{{ themeLabel }}

PORTFOLIO OVERVIEW {{ APP_VERSION }}

资产总览

把分散在不同账户的投入、持仓与收益放在同一个视角里。

{{ t('trueReturn') }}

{{ trueReturn>=0?'▲':'▼' }} {{ (trueReturn>=0?'+':'')+fmt(trueReturn) }}

{{ t('trueROI') }} {{ fmtPct(trueROI*100,1) }}

{{ periodCompare.delta>=0?'↑':'↓' }} {{ fmt(Math.abs(periodCompare.delta)) }} vs 上期

{{ fmt(holdingsValue) }} 持仓市值

{{ t('holdingsValue') }}

{{ fmt(holdingsValue) }}

{{ t('totalIn') }}

{{ fmt(totalIn) }}

{{ t('totalOut') }}

{{ fmt(totalOut) }}

已实现盈亏

{{ (realizedPL>=0?'+':'')+fmt(realizedPL) }}

CORE HOLDINGS

主要持仓

还没有持仓从“录入”添加第一笔买入,或在持仓页手动建立初始仓位。

RECENT ACTIVITY

最近流水

账本还是空的第一笔可以是入金,也可以直接记录买入。

POSITIONS

{{ t('posTitle') }}

{{ t('posCount',{n:positions.length}) }} · {{ t('posTotalCost') }} {{ fmt(posSummary.totalCost) }} · {{ t('posTotalValue') }} {{ fmt(posSummary.totalValue) }} · {{ t('posPL') }} {{ posSummary.pl>=0?'+':'' }}{{ fmt(posSummary.pl) }} ({{ fmtPct(posSummary.plPct,1) }})

{{ t('posMarketLabel') }} {{ t('posMarketAll') }} {{ m.l }}
{{ posForm.assetType }} · {{ posForm.secid }}

{{ p.name&&p.name!==p.symbol?p.name:p.symbol }}

市值{{ fmt(p.value) }} 占比{{ fmtPct(posSummary.totalValue?p.value/posSummary.totalValue*100:0,1) }}
{{ t('posSymbolCol') }}{{ t('posQtyCol') }}{{ t('posAvgCostCol') }}{{ t('posPriceCol') }}{{ t('posValueCol') }} (CNY){{ t('posPLCol') }} (CNY){{ t('posFlowCol') }}{{ t('posActionCol') }}
{{ p.icon }} {{ p.symbol }} {{ p.name }}
{{ p.qty }} {{ t('posQtyCol') }} × {{ fmt(p.avgCost) }}{{ p.currency!=='CNY'?' '+p.currency:'' }} = {{ t('posTotalCost') }} {{ fmt(p.cost) }} CNY
{{ t('posPriceCol') }} {{ p.price?fmt(p.price):'…' }} {{ p.currency }} {{ t('posValueCol') }} {{ fmt(p.value) }} CNY {{ t('posPL') }} {{ p.pl>=0?'+':'' }}{{ fmt(p.pl) }} ({{ fmtPct(p.plPct,1) }})
{{ t('posFlowLinked') }} {{ p.flow.count }} {{ t('records') }} · {{ t('posNetInvested') }} {{ fmt(p.flow.netInvested) }} {{ expandedPosFlows.has(p.id)?'▲':'▼' }}
{{ r.date }} {{ r.type }} {{ fmt(amountCNY(r)) }} {{ r.realizedPL>=0?'+':'' }}{{ fmt(r.realizedPL) }}
{{ t('posEmpty') }}

{{ t('quickAdd') }}

先选动作,再填金额;常用模板会自动带出平台、资产和标签。

{{ quickActionInfo.title }} {{ quickActionInfo.desc }}
{{ tag }}
{{ tpl.label }}
成交金额 {{ tradeAmountPreview ? fmt(tradeAmountPreview) : '-' }} {{ form.currency||'CNY' }}

由成交价格和数量自动计算,无需手填金额。

{{ t('rate') }}

本笔 ≈ {{ fmt(form.amount*Number(form.rate)) }} 元(1 {{ form.currency }} = {{ form.rate }} CNY)

{{ quickTargetHint }}

金额会自动按 单价 × 数量 计算。

更多选项 · 已填

保存并继续会保留平台、资产、标签和动作,只清空金额与备注,适合连续补录。

GitHub Gist 同步

多端同步数据。{{ syncStatus!=='未配置'?' · '+syncStatus:'(免费、安全、带版本历史)' }}

GitHub 页面操作:左侧栏找 "Tokens (classic)""Generate new token (classic)" → Note 随意填、Expiration 选不限 → 勾选 gist 权限 → 生成后粘贴到此处。Token 仅保存在你的浏览器本地

提示:拉取会先预览云端与本地差异,确认后再合并;上传前如果发现云端有新内容,也会先提醒,避免手机和电脑互相覆盖。

{{ t('flowRecords') }}

筛选不隐藏,命中高亮,未命中变淡。

{{ matchCount }}/{{ entries.length }} 命中
{{ t('assetType') }} {{ at }}
账户/平台 {{ ex }}
{{ t('tagStats') }} #{{ tag }}
筛选结果 {{ filteredStats.firstDate }} ~ {{ filteredStats.lastDate }} · {{ filteredStats.count }} 笔

{{ t('typeIn') }}

{{ fmt(filteredStats.inTotal) }}

{{ t('typeOut') }}

{{ fmt(filteredStats.outTotal) }}

净盈亏

{{ (filteredStats.net>=0?'+':'')+fmt(filteredStats.net) }}

{{ t('roi') }}

{{ filteredStats.inTotal?fmtPct((filteredStats.outTotal/filteredStats.inTotal)*100,1):'-' }}
{{ t('emptyStateHint') }}
{{ t('noMatch') }}
{{ g.key }} {{ hasActiveFilter ? g.matchedCount+'/'+g.entries.length : g.entries.length }} 笔
{{ tag }}
{{ fmt(g.inTotal) }}
{{ fmt(g.outTotal) }}
{{ (g.net>=0?'+':'')+fmt(g.net) }}
{{ t('date') }}资产 / 平台{{ t('amount') }}备注/理由类型{{ t('actions') }}
汇率 ≈ {{ fmt(amountCNY(e)) }} CNY
成交 {{ e.tradeQty||'-' }} × {{ e.tradePrice?fmt(e.tradePrice):'-' }} {{ e.currency||'CNY' }} · {{ e.realizedPL>=0?'+':'' }}{{ fmt(e.realizedPL) }}
#{{ tag }}
{{ t('delete') }}
{{ t('emptyStateMobile') }}
{{ g.key }} {{ hasActiveFilter ? g.matchedCount+'/'+g.entries.length : g.entries.length }} 笔
入 {{ fmt(g.inTotal) }} · 出 {{ fmt(g.outTotal) }}
{{ (g.net>=0?'+':'')+fmt(g.net) }}

盈亏统计

{{ t('periodSwitch') }}

{{ t('curPeriodNet') }}

{{ fmt(periodCompare.curNet) }}

{{ t('lastPeriod') }}

{{ fmt(periodCompare.prevNet) }}

{{ t('compareChange') }}

{{ fmt(periodCompare.delta) }}

本年入金

{{ fmt(cashflowOverview.yearIn) }}

本年出金

{{ fmt(cashflowOverview.yearOut) }}

本年净额

{{ (cashflowOverview.yearNet>=0?'+':'')+fmt(cashflowOverview.yearNet) }}

累计净额

{{ (cashflowOverview.cum>=0?'+':'')+fmt(cashflowOverview.cum) }}
查看明细数据
月份笔数{{ t('inTotal') }}{{ t('outTotal') }}盈亏{{ t('cumPL') }}
{{ row.key }}{{ row.count }}{{ fmt(row.inTotal) }}{{ fmt(row.outTotal) }}{{ (row.net>=0?'+':'')+fmt(row.net) }}{{ (row.cum>=0?'+':'')+fmt(row.cum) }}
{{ row.key }} · {{ row.count }} 笔{{ (row.net>=0?'+':'')+fmt(row.net) }}
{{ t('typeIn') }}{{ fmt(row.inTotal) }}
{{ t('typeOut') }}{{ fmt(row.outTotal) }}
{{ t('cumPL') }}{{ (row.cum>=0?'+':'')+fmt(row.cum) }}
{{ {month:'月份',week:'周',year:'年份'}[period] }}{{ t('inTotal') }}{{ t('outTotal') }}盈亏{{ t('cumPL') }}
{{ row.key }}{{ fmt(row.inTotal) }}{{ fmt(row.outTotal) }}{{ fmt(row.net) }}{{ fmt(row.cum) }}
{{ row.key }}{{ (row.net>=0?'+':'')+fmt(row.net) }}
{{ t('typeIn') }}{{ fmt(row.inTotal) }}
{{ t('typeOut') }}{{ fmt(row.outTotal) }}
{{ t('cumPL') }}{{ fmt(row.cum) }}
{{ t('assetType') }}{{ t('inTotal') }}{{ t('outTotal') }}盈亏{{ t('roiRate') }}
{{ row.assetType||'未分类' }}{{ fmt(row.inTotal) }}{{ fmt(row.outTotal) }}{{ fmt(row.net) }}{{ row.inTotal?fmtPct((row.outTotal/row.inTotal)*100,0):'-' }}
{{ row.assetType||'未分类' }}{{ (row.net>=0?'+':'')+fmt(row.net) }}
{{ t('typeIn') }}{{ fmt(row.inTotal) }}
{{ t('typeOut') }}{{ fmt(row.outTotal) }}
{{ t('exchange') }}{{ t('inTotal') }}{{ t('outTotal') }}盈亏
{{ row.exchange }}{{ fmt(row.inTotal) }}{{ fmt(row.outTotal) }}{{ fmt(row.net) }}
{{ row.exchange }}{{ (row.net>=0?'+':'')+fmt(row.net) }}
{{ t('typeIn') }}{{ fmt(row.inTotal) }}
{{ t('typeOut') }}{{ fmt(row.outTotal) }}
{{ t('tagStats') }}笔数{{ t('inTotal') }}{{ t('outTotal') }}盈亏
#{{ row.tag }}{{ row.count }}{{ fmt(row.inTotal) }}{{ fmt(row.outTotal) }}{{ (row.net>=0?'+':'')+fmt(row.net) }}
#{{ row.tag }}{{ (row.net>=0?'+':'')+fmt(row.net) }}
笔数{{ row.count }}
{{ t('typeIn') }}{{ fmt(row.inTotal) }}
{{ t('typeOut') }}{{ fmt(row.outTotal) }}

RECENT REVIEW

近期复盘

{{ reviewScopeText }} · 只分析当前窗口,旧数据仍完整保留

记录

{{ reviewSummary.count }}笔操作

净投入

{{ fmt(reviewSummary.netFunding) }}入金减出金

买卖

{{ reviewSummary.tradeCount }}{{ reviewSummary.buyCount }} 买 · {{ reviewSummary.sellCount }} 卖

已实现盈亏

{{ (reviewSummary.realizedPL>=0?'+':'')+fmt(reviewSummary.realizedPL) }}仅统计卖出记录

{{ reviewCalendar.label }}

点击日期查看操作与规则原因
近期还没有可复盘的操作 切换更长时间范围查看历史,或从下一笔入金、出金、买入、卖出开始记录。

{{ t('reviewNote') }}

{{ reviewRangeMeta.label }} · {{ dayjs().format('YYYY-MM') }}
{{ reviewSavedAt }}

{{ t('dataMgmt') }}

快照备份

每次修改自动保存完整快照,最多保留 6 份。

{{ t('noSnapshots') }}
{{ s.at }}
{{ (s.entries||[]).length }} 条记录

{{ t('importHistory') }}

合并导入可删除本批新增记录;覆盖导入可恢复导入前账本。

{{ t('noImportHistory') }}
{{ b.mode==='overwrite'?'覆盖':'合并' }} {{ b.fileName||'未知文件' }} {{ t('undone') }}
{{ b.at }} · {{ b.source }} · 导入 {{ b.importedCount||0 }} 条 · 跳过 {{ b.skippedCount }} 条 · 重复 {{ b.duplicateCount }} 条 · 无效 {{ b.invalidCount }} 行