PnL V2 Datastream 适用于 Premium、Business 和 Enterprise 方案。
使用您的 Data API 密钥连接到
使用您的 Data API 密钥连接到
wss://datastream.solanatracker.io/{apiKey}。通俗解释: PnL 表示盈亏。已实现 PnL 来自已售出的代币。未实现 PnL 是仍持有代币的账面盈亏。成本基础是钱包为当前持仓所支付的金额。
Room 类型
共有三种 room,每种服务于不同的用例:PnL room 在每次成交时推送
tradeUpdate,在余额变化时推送 balanceUpdate。它们也会推送 priceUpdate 事件,但频率较低。可将 priceUpdate 视为对沉寂头寸的补发消息,而不是快速价格推送。要获得最快的未实现 PnL 跳动,请将 PnL room 与价格流配合使用。连接
Room: pnl:{wallet}:{token}
订阅钱包中某个特定代币的持仓。您将收到两种消息类型:tradeUpdate — 当买入或卖出执行时触发:
balanceUpdate — 当持仓价值因价格变动而变化时触发(没有新交易):
订阅示例
Room: pnl:{wallet}
一次订阅某钱包的所有代币持仓。推送与上面相同的tradeUpdate 和 balanceUpdate 消息,但涵盖钱包交互过的每个代币——无需事先知道代币地址。
Room: pnl:{wallet}:summary
每当聚合值发生变化时接收钱包的总 PnL 摘要。此 room 返回钱包级总计,而不是单个持仓。最快的实时未实现 PnL — 组合 Room
PnL room 在交易上链时为您提供官方的成本基础、FIFO 已实现 PnL 和余额变化。FIFO 表示 “first in, first out”(先进先出):较早的买入先与卖出匹配。PnL room 并非设计为逐笔价格推送。priceUpdate 事件受限速,且仅为长时间无变化的持仓补发。
对于 UI 每个价格跳动都要更新未实现 PnL 数字的实时投资组合界面,请将 PnL room 与价格流组合:
将 PnL room 用作
currentBalance 和 holdingCostBasis 的真实来源,并在每次价格跳动到来时重新计算 unrealizedPnl = (currentBalance × livePrice) − holdingCostBasis。
示例:单一持仓的实时未实现 PnL
示例:整个钱包的实时未实现 PnL
订阅pnl:{wallet} 以获取每个持仓的交易和余额更新,然后为钱包持有的每个代币动态订阅价格 room。
priceUpdate payload(PnL room)
PnL room 会在持仓报价一段时间未变时推送 priceUpdate 作为兜底。请将其视为周期性刷新,而不是实时推送:
取消订阅
通过发送leave 消息离开任何 room:
选择合适的 Room
我在追踪一个特定持仓
我在追踪一个特定持仓
使用
pnl:{wallet}:{token}。噪音最少 — 仅在该代币上触发。我在构建实时投资组合面板
我在构建实时投资组合面板
使用
pnl:{wallet}。一个订阅涵盖所有持仓。每次更新都能获得代币级细节。我想要不带每个代币噪音的投资组合摘要
我想要不带每个代币噪音的投资组合摘要
使用
pnl:{wallet}:summary。它返回聚合的钱包级 PnL 总计,而不包含每个代币的持仓行。我希望获得最快的未实现 PnL 跳动
我希望获得最快的未实现 PnL 跳动
将
pnl:{wallet}(或 pnl:{wallet}:{token})与 price:aggregated:{token} 或 price-by-token:{token} 组合。PnL room 提供成本基础和余额;价格 room 驱动实时跳动。请参阅组合 Room。我可以同时订阅多个 room 吗?
我可以同时订阅多个 room 吗?
可以。发送多条
join 消息。每个 room 独立运行。相关指南
PnL V2 概览
核心 PnL V2 概念、端点以及钱包索引的工作方式。
实时价格与图表
price:aggregated 和 price-by-token room — 将它们与 PnL 配对以获得实时未实现 PnL。钱包分析
使用 REST API 分析钱包 PnL、持仓、交易时机和敞口。
钱包追踪
将实时钱包活动与 PnL 流结合,构建实时投资组合面板。