Positions RPC provides a pulsed stream of user positions and symbol-wise trading statistics.

Sample Code

import os

import grpc
import common_pb2
import port_pb2_grpc

API_KEY = os.getenv("QFEX_API_KEY")

def stream_positions():
metadata = (('api-key', API_KEY),)
channel = grpc.secure_channel('trade.qfex.com:443', grpc.ssl_channel_credentials())
stub = port_pb2_grpc.PortServiceStub(channel)
for pos in stub.GetUserPositions(common_pb2.Empty(), metadata=metadata):
print(pos)

if **name** == '**main**':
stream_positions()

Example Response

data {
  id: "abc12345-23bb-4635-ace5-969ca441c803"
  symbol: "SP500-USD"
  user_id: "abc12345-6e54-48c4-82e9-641e64bf185d"
  realised_pnl: 1431.8186
  net_funding: -0.90625922
  open_orders: 5
  open_quantity: 0.005
  leverage: 50
  timestamp {
    seconds: 1746906295
    nanos: 506666000
  }
}
count: 1
timestamp {
  seconds: 1746906297
  nanos: 124665000
}