Skip to main content

Push Real-time Trades

Real-time trades data push of the subscribed security.

SDK Links

Python
longport.openapi.QuoteContext.set_on_trades
Rust
longport::quote::QuoteContext#set_on_trades
Go
QuoteContext.OnTrade
Node.js
QuoteContext#setOnTrades

Data Format

Properties

NameTypeDescription
symbolstringSecurity code, for example: AAPL.US
sequenceint64Sequence number
tradesobject[]Trades data
∟ pricestringPrice
∟ volumeint64Volume
∟ timestampint64Time of trading
∟ trade_typestringTrade type
∟ directionint32Trade direction

Optional value:
0 - neutral
1 - down
2 - up
∟ trade_sessionint32Trade session, see TradeSession

Trade Type

HK

  • * - Overseas trade
  • D - Odd-lot trade
  • M - Non-direct off-exchange trade
  • P - Late trade (Off-exchange previous day)
  • U - Auction trade
  • X - Direct off-exchange trade
  • Y - Automatch internalized
  • - Automatch normal

US

  • - Regular sale
  • A - Acquisition
  • B - Bunched trade
  • D - Distribution
  • F - Intermarket sweep
  • G - Bunched sold trades
  • H - Price variation trade
  • I - Odd lot trade
  • K - Rule 155 trde(NYSE MKT)
  • M - Market center close price
  • P - Prior reference price
  • Q - Market center open price
  • S - Split trade
  • V - Contingent trade
  • W - Average price trade
  • X - Cross trade
  • 1 - Stopped stock(Regular trade)

Protobuf

message PushTrade {
string symbol = 1;
int64 sequence = 2;
repeated Trade trade = 3;
}

message Trade {
string price = 1;
int64 volume = 2;
int64 timestamp = 3;
string trade_type = 4;
int32 direction = 5;
TradeSession trade_session = 6;
}

Example

# Push Real-time Trades
# https://open.longportapp.com/docs/quote/push/push-trade
# To subscribe quotes data, please check whether "Developers" - "Quote authority" is correct.
# https://open.longportapp.com/account
#
# - HK Market - BMP basic quotation is unable to subscribe with WebSocket as it has no real-time quote push.
# - US Market - LV1 Nasdaq Basic (Only Open API).
#
# Before running, please visit the "Developers" to ensure that the account has the correct quotes authority.
# If you do not have the quotes authority, you can enter "Me - My Quotes - Store" to purchase the authority through the "LongPort" mobile app.
from time import sleep
from longport.openapi import QuoteContext, Config, SubType, PushTrades

def on_trades(symbol: str, event: PushTrades):
print(symbol, event)

config = Config.from_env()
ctx = QuoteContext(config)
ctx.set_on_trades(on_trade)

ctx.subscribe(["700.HK", "AAPL.US"], [SubType.Trade])
sleep(30)

JSON Example

{
"symbol": "700.HK",
"sequence": 160808750000000,
"trades": [
{
"price": "158.760",
"volume": 1,
"timestamp": 1651103979,
"trade_type": "I",
"direction": 0,
"trade_session": 2
},
{
"price": "158.745",
"volume": 1,
"timestamp": 1651103985,
"trade_type": "I",
"direction": 0,
"trade_session": 2
},
{
"price": "158.800",
"volume": 1,
"timestamp": 1651103995,
"trade_type": "I",
"direction": 0,
"trade_session": 2
}
]
}