PnL V2 Datastream 适用于 Premium、Business 和 Enterprise 方案。
使用您的 Data API 密钥连接到
使用您的 Data API 密钥连接到
wss://datastream.solanatracker.io/{apiKey}。Room 类型
共有三种 room,每种服务于不同的用例:PnL room 在每次成交时推送
tradeUpdate,在余额变化时推送 balanceUpdate。它们也会推送 priceUpdate 事件,但频率较低。可将 priceUpdate 视为对沉寂头寸的补发消息,而不是快速价格推送。要获得最快的未实现 PnL 跳动,请将 PnL room 与价格流配合使用。连接
Room: pnl:{wallet}:{token}
订阅钱包中某个特定代币的持仓。交易和余额消息更新持仓;周期性的priceUpdate 刷新与价格相关的数值。
tradeUpdate reports a buy or sell:
balanceUpdate reports a position balance update:
订阅示例
Room: pnl:{wallet}
一次订阅某钱包的所有代币持仓。推送与上面相同的tradeUpdate、balanceUpdate 和 priceUpdate 消息,但涵盖钱包交互过的每个代币——无需事先知道代币地址。
Room: pnl:{wallet}:summary
每当聚合值发生变化时接收钱包的总 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:
相关指南
盈亏指南
核心 PnL V2 概念、端点以及钱包索引的工作方式。
实时价格
price:aggregated 和 price-by-token room — 将它们与 PnL 配对以获得实时未实现 PnL。钱包盈亏
使用 REST API 分析钱包 PnL、持仓、交易时机和敞口。
持仓与交易
将实时钱包活动与 PnL 流结合,构建实时投资组合面板。