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.

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
}