委託回報¶
下單、改單或刪單後,會收到交易所的委託或成交回報。
設定回呼¶
stat 為回報類型,msg 為回報內容。未設定回呼時,登入後會將回報印在主控台。
def order_callback(stat, msg):
print(stat, msg)
api.set_order_callback(order_callback)
未自訂回呼時,主控台會印出委託回報。下面是新單;改價、改量、刪單的 act 分別為 改價、改量、刪單。
【 委託回報 】
主動委託回報: {'回應訊息': '', '分公司代碼': '6620', '交易帳號': 'YOUR_ACCOUNT_ID', '商品代號': '0056', '商品名稱': '元大高股息', '原始委託日期': '20241114', '原始委託時間': '114047000', '原始預約單編號': '', '委託價格': '36.8', '原始委託股數': '2000', '已成交股數': '0', '已取消股數': '0', '變更後股數': '2000', 'entsta': '盤中單', '委託單編號': 'CA115', '市場別': '集中', 'ptype': '限價', 'side': 'Buy', 'apcode': '整張(仟股)', 'trdt': None, '是否可取消': None, 'entcond': 'ROD', 'act': '新單', 'trantp': None, '是否被交易所主動刪單': '否', '變更前股數': '0', '原始委託來源': '002', '委託來源名稱': '口袋證券官網'}
【 委託回報 】
改價時 委託價格 為 '36.9'、act 為 '改價'、變更前股數 為 '2000'。改量時 已取消股數 為 '1000'、變更後股數 為 '1000'、act 為 '改量'。刪單時 變更後股數 為 '0'、act 為 '刪單'。
若回報是 JSON,order_callback 的 stat 為 OrderState.StockOrder(成交為 OrderState.StockDeal),msg 為下面的內容。
static public void MyCallBackFunction(OrderState orderState, dynamic msg)
{
Console.WriteLine("my_order_callback");
Console.WriteLine($"OrderState.{orderState} - {msg}");
}
pocketx.SetOrderCallback((orderState, msg) => {
Console.WriteLine($"訂單狀態變更: {orderState} - {msg}");
});
[2025-10-30 14:38:43][INF][SYSTEM] Set Order Callback Successfully!!!
委託回報¶
OrderState.StockOrder
{
"operation": {
"op_type": "Cancel",
"op_code": "",
"op_msg": ""
},
"order": {
"id": "",
"seqno": 355251,
"ordno": "CP354",
"account": "<your-account-info>",
"action": "Buy",
"price": "56.0",
"quantity": "5",
"order_type": "ROD",
"price_type": "LMT",
"order_cond": "Cash",
"order_lot": "Common",
"custom_field": "Test"
},
"status": {
"id": "",
"exchange_ts": "113842123",
"modified_price": "56.0",
"cancel_quantity": "1000",
"order_quantity": "0",
"web_id": ""
},
"contract": {
"security_type": "STK",
"exchange": "TSE",
"code": "0050",
"symbol": "TSE0050",
"name": "元大台灣50",
"currency": "TWD"
}
}
OrderState.StockOrder - {
"stat": "SORDER",
"msg": {
"operation": {
"op_type": "Cancel",
"op_code": "",
"op_msg": ""
},
"order": {
"id": "",
"seqno": 355251,
"ordno": "CP354",
"account": "<your-account-ino>",
"action": "Buy",
"price": "56.0",
"quantity": "5",
"order_type": "ROD",
"price_type": "LMT",
"order_cond": "Cash",
"order_lot": "Common",
"custom_field": "Test"
},
"status": {
"id": "",
"exchange_ts": "113842123",
"modified_price": "56.0",
"cancel_quantity": "1000",
"order_quantity": "0",
"web_id": ""
},
"contract": {
"security_type": "STK",
"exchange": "TSE",
"code": "0050",
"symbol": "TSE0050",
"name": "元大台灣50",
"currency": "TWD"
}
}
}
operation¶
op_type (string): {
"New": 新單,
"Cancel": 刪單,
"UpdatePrice": 改價,
"UpdateQty": 改量
}
op_code (string): {"00": 成功, others: 失敗}
op_msg (string): 錯誤訊息
order¶
id (string): 與成交回報的 trade_id 相同
seqno (string): 平台單號
ordno (string): 委託單號
account (dict): 帳號資訊
action (string): 買賣別 {Buy, Sell}
price (float or int): 委託價格
quantity (int): 委託數量
order_type (string): 委託類別 {ROD, IOC, FOK}
price_type (string): {LMT: 限價, MKT: 市價, MKP: 範圍市價}
order_cond (string): {
Cash: 現股,
MarginTrading: 融資,
ShortSelling: 融券
}
order_lot (string): {
Common: 整股,
Fixing: 定盤,
Odd: 盤後零股,
IntradayOdd: 盤中零股
}
custom_field (string): 自訂欄位
status¶
id (string): 與成交回報的 trade_id 相同
exchange_ts (float): 交易所時間
modified_price (float or int): 改價
cancel_quantity (int): 取消數量
order_quantity (int): 委託數量
web_id (string): 下單平台代碼
contract¶
security_type (string): 商品類別
exchange (string): 交易所
code (string): 商品代碼
symbol (string): 符號
name (string): 商品名稱
currency (string): 幣別
成交回報¶
stat 為 OrderState.StockDeal。欄位格式與委託回報同頁的 C# 範例一併對照;目前頁面上的成交範例仍是佔位內容。