Skip to main content

Push Real-time Quote

Real-time quote push of the subscribed security. In the pushed data structure, only the fields that have changed will be filled with data.

SDK Links

Python
longport.openapi.QuoteContext.set_on_quote
Rust
longport::quote::QuoteContext#set_on_quote
Go
QuoteContext.OnQuote
Node.js
QuoteContext#setOnQuote

Data Format

Properties

NameTypeDescription
symbolstringSecurity code, for example: AAPL.US
sequenceint64Sequence number
last_donestringLatest price
openstringOpen
highstringHigh
lowstringLow
timestampint64Time of latest price
volumeint64Volume
turnoverstringTurnover
trade_statusint32Security trading status, see TradeStatus
trade_sessionint32Trade session, see TradeSession
current_volumeint32Increase volume between pushes
current_turnoverstringIncrease turnover between pushes
tagint32Price tag

Optional value:
0 - Real-time quote
1 - Revised data after market close

Protobuf

message PushQuote {
string symbol = 1;
int64 sequence = 2;
string last_done = 3;
string open = 4;
string high = 5;
string low = 6;
int64 timestamp = 7;
int64 volume = 8;
string turnover = 9;
TradeStatus trade_status = 10;
TradeSession trade_session = 11;
}

Example

# Push Real-time Quote
# https://open.longportapp.com/docs/quote/push/push-quote
# 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, PushQuote

def on_quote(symbol: str, event: PushQuote):
print(symbol, event)

config = Config.from_env()
ctx = QuoteContext(config)
ctx.set_on_quote(on_quote)

ctx.subscribe(["700.HK", "AAPL.US"], [SubType.Quote], is_first_push=True)
sleep(30)

JSON Example

{
"symbol": "AAPL.US",
"sequence": 160808750000000,
"last_done": "156.570",
"open": "155.910",
"high": "159.790",
"low": "155.380",
"timestamp": 1651089600,
"volume": 88063191,
"turnover": "13865092584.000",
"trade_status": 0,
"trade_session": 0,
"current_volume": 111234,
"current_turnover": "23234343454.000",
"tag": 0
}