Account Changes
The following are all asynchronous APIs, you need to specify a method to respond to the returned result
Subscription and callback data format currently supports two ways, Protobuf and STOMP, we recommend using Protobuf. The current version uses STOMP by default, and will switch to the default Protobuf method in future versions.
Modify the PushClient initialization parameter use_protobuf
, set it to True to enable the Protobuf method:
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'), use_protobuf=True)
Protobuf method
Subscribe asset change
Subscribe method
PushClient.subscribe_asset(account=None)
Cancel method
PushClient.unsubscribe_asset()
Parameters
Parameter name | type | description |
---|---|---|
account | str | account id to subscribe to, or all associated accounts if not passed |
Return
Need to use PushClient.asset_changed
to return the result of the response. The return result is tigeropen.push.pb.AssetData_pb2.AssetData object
Callback Data Field Meaning
Asset Change Callback
Field | Type | Description |
---|---|---|
account | str | money account number |
currency | str | Currency. USD US dollar, HKD Hong Kong dollar |
segType | str | Segmentation by trading species. s for equities, c for futures |
availableFunds | float | available funds, overnight residual liquidity |
excessLiquidity | float | current residual liquidity |
netLiquidation | float | total assets (net liquidation value). Total equity is the sum of the net liquidation cash balance and the total market value of the securities in our account |
equityWithLoan | float | contains the total equity of the loan value. Equals Total Equity - U.S. Equity Options |
buyingPower | float | purchasing power. Only applicable to equity varieties, i.e. meaningful when segment is S |
cashBalance | float | Cash amount. The sum of the current cash balance in all currencies |
grossPositionValue | float | the total value of the security |
initMarginReq | float | initial margin |
maintMarginReq | float | maintenance margin |
timestamp | int | timestamp |
Example
from tigeropen.push.pb.AssetData_pb2 import AssetData
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'), use_protobuf=True)
def on_asset_changed(frame: AssetData):
""""""
print(f'asset change. {frame}')
print(frame.availableFunds)
print(frame.grossPositionValue)
push_client.asset_changed = on_asset_changed
push_client.connect(client_config.tiger_id, client_config.private_key)
push_client.subscribe_asset(account=client_config.account)
push_client.unsubscribe_asset()
Callback data example
account: "111111"
currency: "USD"
segType: "S"
availableFunds: 1593.1191893
excessLiquidity: 1730.5666908
netLiquidation: 2856.1016998
equityWithLoan: 2858.1016998
buyingPower: 6372.4767571
cashBalance: 484.1516697
grossPositionValue: 2373.95003
initMarginReq: 1264.9825105
maintMarginReq: 1127.535009
timestamp: 1677745420121
Subscribe Position change
Subscribe method
PushClient.subscribe_position(account=None)
Cancel method
PushClient.unsubscribe_position()
Parameters
Parameter name | type | description |
---|---|---|
account | str | the account id to subscribe to, or all associated accounts if not passed |
Examples
from tigeropen.push.pb.PositionData_pb2 import PositionData
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'), use_protobuf=True)
# Define the callback method
def on_position_changed(frame: PositionData).
print(f'position change. {frame}')
# Position underlying
print(frame.symbol)
# The cost of the position
print(frame.averageCost)
# Bind callback method
push_client.position_changed = on_position_changed
# Connect
push_client.connect(client_config.tiger_id, client_config.private_key)
# Subscribe to position changes
PushClient.subscribe_position(account=client_config.account)
# Unsubscribe from position changes
PushClient.unsubscribe_position()
return
Need to use PushClient.position_changed
to respond to the returned result with data type tigeropen.push.pb.PositionData_pb2.PositionData . The fields in the list item can be cross-referenced to position in [Position](/en/python/appendix1/ object.md#position-position) object.
Field | Type | Description |
---|---|---|
account | str | money account number |
symbol | str | The symbol of the underlying position, such as 'AAPL', '00700', 'ES', 'CN' |
expiry | str | Only options, warrants, CBBCs are supported |
strike | str | only supports options, warrants, CBBCs |
right | str | Only options, warrants, CBBCs are supported |
identifier | str | The identifier of the underlying. The identifier for stocks is the same as the symbol. For futures, it will have the contract month, e.g. 'CN2201' |
multiplier | int | the number of lots, futures, options, warrants, CBBC only |
market | str | market. US, HK |
currency | str | currency. USD, HKD |
segType | str | Classification by trading species. s for stocks, c for futures |
secType | str | STK Stocks, OPT Options, WAR Warrants, IOPT CBBC, CASH FOREX, FUT Futures, FOP Future Options |
position | int | Number of Positions |
positionScale | int | Offset of position size |
averageCost | float | The average price of a position |
latestPrice | float | the current price of the underlying |
marketValue | float | the market value of the position |
unrealizedPnl | float | P&L of the position |
name | str | the name of the underlying |
timestamp | int | timestamp |
Callback data example Stock position change push
account: "1111111"
symbol: "BILI"
identifier: "BILI"
multiplier: 1
market: "US"
currency: "USD"
segType: "S"
secType: "STK"
position: 100
averageCost: 80
latestPrice: 19.83
marketValue: 1983
unrealizedPnl: -6017
timestamp: 1677745420121
Subscribe Order Status Change
Subscribe method
PushClient.subscribe_order(account=None)
Cancel method
PushClient.unsubscribe_order()
Parameters
Parameter name | type | description |
---|---|---|
account | str | the account id to subscribe to, or all associated accounts if not passed |
Example
from tigeropen.push.pb.OrderStatusData_pb2 import OrderStatusData
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import OrderStatus
from tigeropen.common.util.order_utils import get_order_status
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'), use_protobuf=True)
# Define the callback method
def on_order_changed(frame: OrderStatusData):
print(f'order changed: {frame}')
print(f'order status: {frame.status}')
# convert status value to Enum
status_enum = OrderStatus[frame.status]
# or
# status_enum = get_order_status(frame.status)
# Binding callback methods
push_client.order_changed = on_order_changed
# Connect
push_client.connect(client_config.tiger_id, client_config.private_key)
# Subscribe to order changes
PushClient.subscribe_order(account=client_config.account)
# Unsubscribe from order changes
PushClient.unsubscribe_order()
return
Need to use PushClient.order_changed
response to return the results, data type tigeropen.push.pb.OrderStatusData_pb2.OrderStatusData
The meaning of the fields in the return result can be cross-referenced to Order in [Order](/en/python/appendix1/object.md#order -order) object
Field | Type | Description |
---|---|---|
id | int | order number |
account | str | money account number |
symbol | str | The symbol of the underlying position, such as 'AAPL', '00700', 'ES', 'CN' |
expiry | str | Only options, warrants, CBBCs are supported |
strike | str | only supports options, warrants, CBBCs |
right | str | Only options, warrants, CBBCs are supported |
identifier | str | The identifier of the underlying. The identifier for stocks is the same as the symbol. For futures, it will have the contract month, e.g. 'CN2201' |
multiplier | int | the number of lots, futures, options, warrants, CBBC only |
action | str | buy and sell direction. BUY means buy, SELL means sell. market |
market | str | market. US, HK |
currency | str | currency. USD US dollar, HKD Hong Kong dollar |
segType | str | Classification by trading species. s means stock, c means futures |
secType | str | STK Stocks, OPT Options, WAR Warrants, IOPT CBBC, CASH FOREX, FUT Futures, FOP Future Options |
orderType | str | order type.' MKT' Market Order / 'LMT' Limit Order / 'STP' Stop Loss Order / 'STP_LMT' Stop Loss Limit Order / 'TRAIL' Trailing Stop Order |
isLong | boolean | whether the position is long |
totalQuantity | int | the number of orders placed |
totalQuantityScale | int | Offset of the number of orders placed, e.g. totalQuantity=111, totalQuantityScale=2, then true totalQuantity=111*10^(-2)=1.11 |
filledQuantity | int | totalQuantity of transactions (if the order is divided into multiple transactions, filledQuantity is the cumulative total number of transactions) |
filledQuantityScale | int | total number of transactions offset |
avgFillPrice | float | the average price of the transaction |
limitPrice | float | limit order price |
stopPrice | float | stop price |
realizedPnl | float | realized profit/loss (only consolidated accounts have this field) |
status | str | orderStatus |
replaceStatus | str | [order change status](/en/python/appendix2/overview.md#order change status) |
cancelStatus | str | [order withdrawal status](/en/python/appendix2/overview.md#order withdrawal status) |
outsideRth | bool | whether to allow pre and after hours trading, only for US stocks |
canModify | bool | whether can modify |
canCancel | bool | whether it can be cancelled |
liquidation | bool | whether the order is closed |
name | str | the name of the underlying |
source | str | The source of the order (from 'OpenApi', or other) |
errorMsg | str | error message |
attrDesc | str | order description information |
commissionAndFee | float | commission fee total |
openTime | int | time of the order |
timestamp | int | order status last update time |
userMark | str | remark |
totalCashAmount | float | total cash amount |
filledCashAmount | float | filled cash amount |
Callback data example Stock order push example
Example of futures order push
{"id": "28875370355884032", "account": "736845", "symbol": "CL", "identifier": "CL2312", "multiplier":1000, "action": "BUY".
"market": "US", "currency": "USD", "segment": "C", "secType": "FUT", "orderType": "LMT", "isLong":true, "totalQuantity": "1".
"filledQuantity": "1", "avgFillPrice":77.76, "limitPrice":77.76, "status": "Filled", "outsideRth":true, "name": "WTI Crude Oil 2312".
"source": "android", "commissionAndFee":4.0, "openTime": "1669200792000", "timestamp": "1669200782221"}
Order execution details subscription and cancellation
Subscribe method
PushClient.subscribe_transaction(account=client_config.account)
Cancel method
PushClient.unsubscribe_transaction()
Parameters
Parameter name | type | description |
---|---|---|
account | str | the account id to subscribe to, or all associated accounts if not passed |
Example
from tigeropen.push.pb.OrderTransactionData_pb2 import OrderTransactionData
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'), use_protobuf=True)
# Define callback methods
def on_transaction_changed(frame: OrderTransactionData).
print(f'transaction changed: {frame}')
# Bind the callback method
push_client.transaction_changed = on_transaction_changed
# Connect
push_client.connect(client_config.tiger_id, client_config.private_key)
# Subscribe
PushClient.subscribe_transaction(account=client_config.account)
# unsubscribe
PushClient.unsubscribe_transaction()
return
Need to use PushClient.transaction_changed
response to return the results, data type tigeropen.push.pb.OrderTransactionData_pb2.OrderTransactionData
The meaning of the fields in the return result can be cross-referenced to get_transactions in [Transaction](/en/python/ appendix1/object.md#transaction-transactional-records)
field | type | description |
---|---|---|
id | int | orderExecutionId |
orderId | int | order number |
account | str | fund account number |
symbol | str | The code of the underlying position, e.g. 'AAPL', '00700', 'ES', 'CN' |
identifier | str | The identifier of the underlying. The identifier of the stock is the same as the symbol. For futures, it will have the contract month, e.g. 'CN2201' |
multiplier | int | number per lot (proprietary to options, futures) |
BUY means BUY, SELL means SELL. | market | |
market | str | market, US, HK |
currency | str | Currency. USD, HKD |
segType | str | Segmentation by trading instrument. s means stock, c means futures |
secType | str | Trading variety, underlying type. STK denotes stock, FUT denotes futures. |
filledPrice | float | price |
The price of a stock is the same as the price of a futures contract. | ||
createTime | int | create time |
updateTime | int | update time |
transactTime | int | transaction time |
timestamp | int | timestamp |
Callback data example
id: 2999543887211111111
orderId: 29995438111111111
account: "11111111"
symbol: "ZC"
identifier: "ZC2305"
multiplier: 5000
action: "BUY"
market: "US"
currency: "USD"
segType: "C"
secType: "FUT"
filledPrice: 6.385
filledQuantity: 1
createTime: 1677746237303
updateTime: 1677746237303
transactTime: 1677746237289
timestamp: 1677746237313
Stomp
Subscribe and unsubscibe to asset changes
Subscribe to asset changes
PushClient.subscribe_asset(account=None)
unsubscribe
PushClient.unsubscribe_asset()
Arguments
Arguments | type | description |
---|---|---|
account | str | The account id to be subscribed to. If this parameter is left empty, you are by default subscribe to changes of all accounts under your Tiger ID |
Response
Use PushClient.asset_changed
to process the data returned. The first parameter corresponds to account id, and the second parameter is a list that contains actual data
Refer to the following methods and objects for the explaination of data fields: get_prime_assets, get_assets
PortfolioAccount
SecuritySegment
CommoditySegment
Parameter | type | description |
---|---|---|
segment | str | Classification by trade type. 'S' indicates equities, 'C' indicates futures, summary indicates aggregated asset information for global accounts |
cash | float | Cash amount. Sum of current cash balances in all currencies |
available_funds | float | Available funds, overnight residual liquidity |
excess_liquidity | float | Current Residual Liquidity |
equity_with_loan | float | Contains total loan-to-value equity. Equal to total assets - US stock options |
net_liquidation | float | Total Assets (Net Liquidation Value). |
gross_position_value | float | Total value of securities |
initial_margin_requirement | float | Initial margin Requirement |
maintenance_margin_requirement | float | Maintenance margin Requirement |
buying_power | float | Purchasing power. Only applicable to stock varieties, i.e. meaningful when segment is 'S' |
Example
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'))
# implement your own callback method
def on_asset_changed(account, items):
"""implement your own callback method"""
print(f'asset change. account:{account}, items:{items}')
push_client.asset_changed = on_asset_changed
# establish connection
push_client.connect(client_config.tiger_id, client_config.private_key)
# subscribe
push_client.subscribe_asset(account=client_config.account)
# unsubscribe
PushClient.unsubscribe_asset()
Callback Data
account:123456,
items:[('cash', 679760.8392063834), ('gross_position_value', 202318.91581133104), ('equity_with_loan', 881789.7550177145),
('net_liquidation', 882079.7550177145), ('initial_margin_requirement', 108369.06714828224), ('buying_power', 3093682.751477729),
('excess_liquidity', 793970.6843320723), ('available_funds', 773420.6878694323), ('maintenance_margin_requirement', 87819.07068564222),
('segment', 'S')]
account:111111,
items:[('cash', 99997.18), ('gross_position_value', 15620.0), ('equity_with_loan', 99572.18), ('net_liquidation', 99997.18),
('initial_margin_requirement', 467.5), ('buying_power', 0.0), ('excess_liquidity', 99572.18), ('available_funds', 99529.68),
('maintenance_margin_requirement', 425.0), ('segment', 'C')]
Subscribe to Position Change
Method for Subscribing
PushClient.subscribe_position(account=None)
Method for Unsubscribing
PushClient.unsubscribe_position()
Arguments
Argument | Type | Description |
---|---|---|
account | str | account id. If left empty, all the account information will be pushed |
Example
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'))
# Implement callback method
def on_position_changed(account, items):
"""
:param account:
:param items:
:return:
example of items:
[('symbol', 'ABCD'), ('market_price', 3.68525), ('market_value', 0.0), ('sec_type', 'STK'),
('segment', 'summary'), ('currency', 'USD'), ('quantity', 0.0), ('average_cost', 3.884548)]
"""
print(account, items)
push_client.position_changed = on_position_changed
# Connect
push_client.connect(client_config.tiger_id, client_config.private_key)
# Subscribe to position change
PushClient.subscribe_position(account=client_config.account)
# Unsubscribe
PushClient.unsubscribe_position()
Response
Implement PushClient.position_changed
to process the data returned. First parameter is the account id, the second element is a list
of new position information. Pleaser refer to get_position object for a detailed explaination of the data fields
Parameters | type | description |
---|---|---|
segment | str | Classification by trade type. 'S' indicates equities, 'C' indicates futures. |
symbol | str | Underlying position codes, such as 'AAPL', '00700', 'ES' |
identifier | str | The identifier of the stock is the same as the symbol. For futures, it will have the contract month, e.g. 'CN2201' |
currency | str | Currency. such as 'USD','HKD' |
sec_type | str | Security Type, 'STK','FUT' |
market_price | float | current market price |
market_value | float | current market value |
quantity | int | position quantity |
average_cost | float | position average cost |
unrealized_pnl | float | position unrealized pnl |
Callback data Example
# Stocks
account:1111111,
items:[('symbol', '09626'), ('currency', 'HKD'), ('sec_type', 'STK'), ('market_price', 305.0), ('quantity', 20), ('average_cost', 0.0), ('market_value', 6100.0), ('identifier', '09626'), ('unrealized_pnl', 6100.0), ('segment', 'S')]
# Options
account:1111111,
items:[('symbol', 'CN'), ('currency', 'USD'), ('sec_type', 'FUT'), ('market_price', 15620.0), ('quantity', 1), ('average_cost', 0.0), ('market_value', 15620.0), ('identifier', 'CN2201'), ('unrealized_pnl', 15620.0), ('segment', 'C')]
Subscribe to Order Status Change
Subscribe
PushClient.subscribe_order(account=client_config.account)
Unsubscribe
PushClient.unsubscribe_order()
Arguments
Argument | type | description |
---|---|---|
account | str |
Example
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'))
# Implement your own callback method
def on_order_changed(account, items):
"""
:param account:
:param items:
:return:
items:
[('order_type', 'LMT'), ('symbol', 'ABCD'), ('order_id', 1000101463), ('sec_type', 'STK'), ('filled', 100),
('quantity', 100), ('segment', 'summary'), ('action', 'BUY'), ('currency', 'USD'), ('id', 173612806463631360),
('order_time', 1568095814556), ('time_in_force', 'DAY'), ('identifier', 'ABCD'), ('limit_price', 113.7),
('outside_rth', True), ('avg_fill_price', 113.7), ('trade_time', 1568095815418),
('status', <OrderStatus.FILLED: 'Filled'>)]
"""
print(account, items)
push_client.order_changed = on_order_changed
# Establish Connection
push_client.connect(client_config.tiger_id, client_config.private_key)
# Subscribe
PushClient.subscribe_order(account=client_config.account)
# Unsubscribe
PushClient.unsubscribe_order()
Response
Use PushClient.order_changed
to proccess the data returned. First parameter is the account id, The second parameter is a list
of all relevant data. Refer to get_order in Order object for a detailed explaination of the data fields
Arguments | type | description |
---|---|---|
segment | str | trading segment. S: Stock, C: Futures |
id | int | Order id |
symbol | str | Ticker symbol. Example: 'AAPL', '00700', 'ES', 'CN' |
identifier | str | Identifier of the asset. The identifier of a stock is identical to its symbol. For futures contract, its identifier includes its month code. Example 'CN2201' |
currency | str | Currency. USD-US dollars, HKD-Hongkong dollars |
sec_type | str | Security type. Represents the type of the asset that you want to trade. STK-stocks, FUT-futures |
action | str | 'BUY' or 'SELL' |
order_type | str | Order type。'MKT'-market order/'LMT'-limit order/'STP'-stop order/'STP_LMT'-stop limit order/'TRAIL'-trailing stop order |
quantity | int | Quantity of the order |
limit_price | float | Limit price of the order |
filled | int | Filled quantity |
avg_fill_price | float | Average fill price |
realized_pnl | float | Realized PNL |
status | tigeropen.common.consts.OrderStatus | Order Status |
outside_rth | bool | If matching outside the regular trading hour is allowed (U.S. market only) |
order_time | int | Time when the order is placed |
Callback Data Example
# Stocks
account:111111
items: [('id', 25224910928347136), ('symbol', '09626'), ('currency', 'HKD'), ('sec_type', 'STK'), ('action', 'BUY'), ('quantity', 20), ('filled', 20), ('order_type', 'LMT'), ('avg_fill_price', 305.0), ('status', <OrderStatus.FILLED: 'Filled'>), ('realized_pnl', 0.0), ('replace_status', 'NONE'), ('outside_rth', False), ('limit_price', 305.0), ('order_time', 1641349997000), ('identifier', '09626'), ('segment', 'S')]```
# Options
account:111111
items: [('id', 25224890075841536), ('symbol', 'CN'), ('currency', 'USD'), ('sec_type', 'FUT'), ('action', 'BUY'), ('quantity', 1), ('filled', 1), ('order_type', 'LMT'), ('avg_fill_price', 15620.0), ('status', <OrderStatus.FILLED: 'Filled'>), ('realized_pnl', 0.0), ('replace_status', 'NONE'), ('outside_rth', False), ('limit_price', 15638.0), ('order_time', 1641349838000), ('identifier', 'CN2201'), ('segment', 'C')]
Subscribe to Order transaction
Subscribe
PushClient.subscribe_transaction(account=client_config.account)
Unsubscribe
PushClient.unsubscribe_transaction()
Arguments
Argument | type | description |
---|---|---|
account | str | subscribed account id,if not passed then all relative account will be subscribed |
Example
from tigeropen.push.push_client import PushClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='private key path', tiger_id='your tiger id', account='your account')
protocol, host, port = client_config.socket_host_port
push_client = PushClient(host, port, use_ssl=(protocol == 'ssl'))
# define callback method
def on_transaction_changed(account, items):
"""
:param account:
:param items:
:return:
items example:
[('id', 28819544190616576), ('currency', 'USD'), ('sec_type', 'FUT'), ('market', 'SG'), ('symbol', 'CN'),
('multiplier', 1.0), ('action', 'BUY'), ('filled_quantity', 1.0), ('filled_price', 12309.0),
('order_id', 28819544031364096), ('transact_time', 1668774872538), ('create_time', 1668774872946),
('update_time', 1668774872946), ('identifier', 'CN2212'), ('timestamp', 1668774873002), ('segment', 'C')]
"""
print(account, items)
# bind callback method
push_client.transaction_changed = on_transaction_changed
# connect
push_client.connect(client_config.tiger_id, client_config.private_key)
# subscribe
PushClient.subscribe_transaction(account=client_config.account)
# unsubscribe
PushClient.unsubscribe_transaction()
Response
use PushClient.transaction_changed
to handle callback,first argument is 'account',second argument is a list。
The fields meaning can refer to get_transactions
Name | Type | Description |
---|---|---|
segment | String | Securities Category C: (Commodities Futures), S: (Securities Stocks) |
id | long | transaction ID |
order_id | long | unique order id |
symbol | String | Stock ticker symbol, exmaple: 'AAPL', '00700', 'ES', 'CN' |
identifier | String | asset identifier. The identifier of stocks is identical to its symbol. Futures contracts will also includes their month code. Example: 'CN2201' |
currency | String | Currency. USD, HKD, etc. |
market | String | market. US、HK |
account | String | Account |
sec_type | String | Security type. STK-stocks, FUT-futures |
action | String | BUY or SELL |
multiplier | int | multiplier for options, warrants and CBBC |
filled_quantity | Long | filled quantity |
filled_price | double | filled price |
filled | int | filled quantity |
transact_time | long | transaction time |
create_time | long | create time |
update_time | long | update time |
timestamp | long | timestamp |
Callback data example
items: [('id', 28819544190616576), ('currency', 'USD'), ('sec_type', 'FUT'), ('market', 'SG'), ('symbol', 'CN'),
('multiplier', 1.0), ('action', 'BUY'), ('filled_quantity', 1.0), ('filled_price', 12309.0),
('order_id', 28819544031364096), ('transact_time', 1668774872538), ('create_time', 1668774872946),
('update_time', 1668774872946), ('identifier', 'CN2212'), ('timestamp', 1668774873002), ('segment', 'C')]