內期行情 註冊接收即時和查詢
DQuote Objects
class DQuote()
on_error
錯誤事件
on_connected
連線成功事件
on_disonnected
斷線事件
on_tick_data_trade
成交價事件..傳入物件:DTickDataTrade
on_tick_data_high_low
最高最低價事件..傳入物件:DTickDataHighLow
on_index_data
現貨價事件..傳入物件:DIndexData
on_tick_data_bid_offer
五檔事件..傳入物件:DTickDataBidOffer
on_tick_data_before_trade
試撮成交價事件..傳入物件:DTickDataBeforeTrade
on_tick_data_before_bid_offer
試撮五檔事件..傳入物件:DTickDataBeforeBidOffer
on_tick_data_open
開盤價事件..傳入物件:DTickDataOpen
on_tick_data_settle
收盤行情資料訊息含結算價及未平倉合約數事件..傳入物件:DTickDataSettle
get_current_server
def get_current_server()
目前連結主機
回傳值 str
範例
server = unitrade.dquote.get_current_server()
print(server) # 輸出目前連結的主機
get_server_list
def get_server_list()
透過可連結主機
回傳值 dict[Server]
型別 | 說明 | |
---|---|---|
key | str | servername |
value | Server | 主機物件 |
範例
server_list = unitrade.dquote.get_server_list()
for servername, server in server_list.items():
print(f'主機名稱: {servername})
set_sever_by_name
def set_sever_by_name(servername) -> Tuple[bool, str]
透過主機名稱切換連結主機
參數
參數 | 型別 | 說明 |
---|---|---|
servername | str | 主機名稱 |
回傳值 bool
型別 | 說明 |
---|---|
True | 切換連線成功 |
False | 切換連線失敗 |
範例
success = unitrade.dquote.set_sever_by_name("xxx")
if success:
print("連線成功")
else:
print("連線失敗")
get_subscribe_trade_bid_offer
def get_subscribe_trade_bid_offer()
查詢已註冊成交.賣賣價量 商品
回傳值 list[str]
型別 | 說明 |
---|---|
list[str] | 註冊的商品代碼列表 |
範例
subscribed_products = unitrade.dquote.get_subscribe_trade_bid_offer()
print(subscribed_products) # 輸出已註冊的商品代碼列表
get_subscribe_highlow
def get_subscribe_highlow()
查詢已註冊最高最低價商品代碼列表
回傳值 list[str]
型別 | 說明 |
---|---|
list[str] | 已註冊最高最低價商品代碼列表 |
範例
subscribed_highlow_products = unitrade.dquote.get_subscribe_highlow()
print(subscribed_highlow_products)
# 輸出已註冊的最高最低價商品代碼列表
get_subscribe_index_data
def get_subscribe_index_data()
查詢已註冊現貨 商品
回傳值 list[str]
型別 | 說明 |
---|---|
list[str] | 註冊的現貨商品代碼列表 |
範例
subscribed_index_products = unitrade.dquote.get_subscribe_index_data()
print(subscribed_index_products) # 輸出已註冊的現貨商品代碼列表
get_subscribe_open
def get_subscribe_open()
查詢已註冊開盤價 商品
回傳值 list[str]
型別 | 說明 |
---|---|
list[str] | 註冊的開盤價商品代碼列表 |
範例
subscribed_open_products = unitrade.dquote.get_subscribe_open()
print(subscribed_open_products)
query_tick_data_trade
def query_tick_data_trade(productid) -> DTickDataTradeResponse
查詢最後成交價量
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataTradeResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataTrade | 成交價量資料 |
範例
response = unitrade.dquote.query_tick_data_trade("TXFF5")
# DTickDataTradeResponse(ok=True, error='', data=DTickDataTrade(commodityid='TXFG5', infotime='132333276000', matchprice=21699.0, matchquantity=2, matchtotalqty=45901, matchbuycnt=31986, matchsellcnt=30551, matchtime='132333178000', matchpricedata=[], matchqtydata=[]))
query_tick_data_high_low
def query_tick_data_high_low(productid) -> DTickDataHighLowResponse
查詢最高(低)價
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataHighLowResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataHighLow | 最高(低)價資料 |
範例
response = unitrade.dquote.query_tick_data_high_low("TXFG5")
# DTickDataHighLowResponse(ok=True, error='', data=DTickDataHighLow(commodityid='TXFG5', showtime='105141451000', dayhighprice=21857.0, daylowprice=21675.0))
query_tick_data_before_trade
def query_tick_data_before_trade(productid) -> DTickDataBeforeTradeResponse
查詢最後盤前成交價量
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataBeforeTradeResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataBeforeTrade | 盤前成交價量 |
範例
response = unitrade.dquote.query_tick_data_before_trade("TXFG5")
# DTickDataBeforeTradeResponse(ok=True, error='', data=DTickDataBeforeTrade(commodityid='TXFG5', infotime='084455000000', matchprice=21810.0, matchquantity=125, matchtotalqty=0, matchbuycnt=0, matchsellcnt=0, matchtime='084455000000'))
query_tick_data_open
def query_tick_data_open(productid) -> DTickDataOpenResponse
查詢開盤價
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataOpenResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataOpen | 開盤價 |
範例
response = unitrade.dquote.query_tick_data_open("TXFG5")
# DTickDataOpenResponse(ok=True, error='', data=DTickDataOpen(commodityid='TXFG5', opentime='084500060000', openprice=21820.0, openquantity=159))
query_index_data
def query_index_data(productid) -> DIndexDataResponse
查詢現貨成交價
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DIndexDataResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DIndexData | 現貨成交價 |
範例
response = unitrade.dquote.query_index_data("TXF")
# DIndexDataResponse(ok=True, error='', data=DIndexData(index_kind='TXF', index_time='133325000000', index_value=22003.5))
query_tick_data_bid_offer
def query_tick_data_bid_offer(productid) -> DTickDataBidOfferResponse
查詢最後五檔
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataBidOfferResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataBidOffer | 最後五檔 |
範例
response = unitrade.dquote.query_tick_data_bid_offer("TXFG5")
# DTickDataBidOfferResponse(ok=True, error='', data=DTickDataBidOffer(commodityid='TXFG5', bp1=21704.0, bp2=21703.0, bp3=21702.0, bp4=21701.0, bp5=21700.0, bq1=5, bq2=3, bq3=7, bq4=3, bq5=5, sp1=21706.0, sp2=21708.0, sp3=21709.0, sp4=21710.0, sp5=21711.0, sq1=4, sq2=1, sq3=3, sq4=12, sq5=16))
query_tick_data_before_bid_offer
def query_tick_data_before_bid_offer(
productid) -> DTickDataBeforeBidOfferResponse
查詢最後盤前五檔
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataBeforeBidOfferResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataBeforeBidOffer | 最後盤前五檔 |
範例
response = unitrade.dquote.query_tick_data_before_bid_offer("TXFG5")
# DTickDataBeforeBidOfferResponse(ok=True, error='', data=DTickDataBeforeBidOffer(commodityid='TXFG5', bp1=21810.0, bp2=21809.0, bp3=21808.0, bp4=21807.0, bp5=21805.0, bq1=1, bq2=5, bq3=2, bq4=3, bq5=3, sp1=21811.0, sp2=21815.0, sp3=21816.0, sp4=21819.0, sp5=21821.0, sq1=1, sq2=10, sq3=1, sq4=1, sq5=1))
query_tick_data_settle
def query_tick_data_settle(productid) -> DTickDataSettleResponse
查詢收盤行情資料訊息含結算價及未平倉合約數
參數
參數 | 型別 | 說明 |
---|---|---|
productid | str | 商品代碼 |
回傳值 DTickDataSettleResponse
型別 | 說明 | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | DTickDataSettle | 收盤行情資料訊息含結算價及未平倉合約數 |
範例
response = unitrade.dquote.query_tick_data_settle("TXFG5")
# DTickDataSettleResponse(ok=True, error='', data=DTickDataSettle(commodityid='TXFH5', period_high_price=23414.0, period_low_price=20375.0, daily_high_price=23406.0, daily_low_price=22977.0, open_price=23241.0, last_bid_price=22990.0, last_ask_price=22994.0, close_price=22990.0, total_bid_orders=68643, total_bid_volume=106919, total_ask_orders=66629, total_ask_volume=109130, total_trades=141625, total_trade_volume=105402, merged_bid_orders=69154, merged_bid_volume=109064, merged_ask_orders=67274, merged_ask_volume=110849, merged_volume=105411, settlement_price=22996.0, open_interest=95637, block_trade_volume=0))
subscribe_trade_bid_offer
def subscribe_trade_bid_offer(productid) -> Tuple[bool, str]
註冊成交.賣賣價量
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
unsubscribe_trade_bid_offer
def unsubscribe_trade_bid_offer(productid) -> Tuple[bool, str]
反註冊成交.賣賣價量
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
subscribe_high_low
def subscribe_high_low(productid) -> Tuple[bool, str]
註冊最高最低價
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
unsubscribe_high_low
def unsubscribe_high_low(productid) -> Tuple[bool, str]
反註冊最高最低價
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
subscribe_open
def subscribe_open(productid) -> Tuple[bool, str]
註冊開盤價
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
unsubscribe_open
def unsubscribe_open(productid) -> Tuple[bool, str]
反註冊開盤價
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
subscribe_index_data
def subscribe_index_data(kind, index) -> Tuple[bool, str]
註冊現貨價
Parameters
Name | Type | Description |
---|---|---|
index | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
unsubscribe_index_data
def unsubscribe_index_data(kind, index) -> Tuple[bool, str]
反註冊現貨價
Parameters
Name | Type | Description |
---|---|---|
index | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
subscribe_settle
def subscribe_settle(productid) -> Tuple[bool, str]
註冊收盤行情資料訊息含結算價及未平倉合約數
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
unsubscribe_settle
def unsubscribe_settle(productid) -> Tuple[bool, str]
反註收盤行情資料訊息含結算價及未平倉合約數
Parameters
Name | Type | Description |
---|---|---|
productid | str | 商品代碼 |
Returns
Type | Description |
---|---|
bool | 是否成功 |
str | 錯誤訊息 |
get_history_bardata
def get_history_bardata(interval, startdate, enddate, productkind, productid,
count) -> BarDataResponse
查詢歷史K線資料
Parameters
Name | Type | Description |
---|---|---|
interval | str | D:日K、1K:分K |
startdate | datetime | 起始日期 (格式: datetime(YYYY, MM, DD, HH, mm ,ss)) |
enddate | datetime | 結束日期 (格式: datetime(YYYY, MM, DD, HH, mm ,ss)) |
productkind | str | 商品種類 1:期貨 2:選擇權 4:期貨價差 |
productid | str | 商品代碼 |
count | int | 取得K線數量 |
Returns BarDataResponse
Type | Description | |
---|---|---|
ok | bool | 是否成功 |
error | str | 錯誤訊息 |
data | List[BarData] | 歷史K線資料 |
範例
response = unitrade.dquote.get_history_bardata("1K", datetime(2025, 6, 10, 0, 0, 0), datetime(2025, 7, 7, 0, 0, 0), "1", "MXFG5", 2)
# BarDataResponse(ok=True, error='', data=[BarData(productId='MXFG5', productkind=None, date='20250627', time='084500', open=22199.0, high=22206.0, low=22186.0, close=22191.0, volume=1608), BarData(productId='MXFG5', productkind=None, date='20250627', time='084600', open=22191.0, high=22195.0, low=22178.0, close=22187.0, volume=761)])
close
def close()
關閉物件
Format Objects
class Format()
I020_HEAD
成交價揭示
I021_HEAD
最高最低價揭示
I022_HEAD
盤前揭示成交價揭示
I023_HEAD
定時開盤價量揭示
I060_HEAD
現貨價
I080_HEAD
委託簿揭示
I082_HEAD
盤前委託簿揭示
I072_HEAD
收盤行情資料訊息含結算價及未平倉合約數
I020
成交價揭示
I021
最高最低價揭示
I022
盤前揭示成交價揭示
I023
定時開盤價量揭示
I060
現貨價
I080
委託簿揭示
I082
盤前委託簿揭示
X010
商品基本資料訊息
X020
成交價量揭示訊息
X021
盤中最高低價揭示訊息
X060
現貨標的資訊
X080
委託簿揭示訊息
I072
收盤行情資料訊息含結算價及未平倉合約數