內期交易 負責下單,改單,回報接收,回報查詢

DTrade Objects

class DTrade()

on_error

錯誤事件

on_connected

連線成功事件

on_disonnected

斷線事件

on_reply

回報接收事件..傳入物件:DOrderReply

on_match

成回接收事件..傳入物件:DOrderReply

get_current_server

def get_current_server()

目前連結主機

回傳值 str
範例
server = unitrade.dtrade.get_current_server()
print(server)  # 輸出目前連結的主機 

get_server_list

def get_server_list()

透過可連結主機

回傳值 dict[Server]
型別 說明  
key str servername
value Server 主機物件
範例
server_list = unitrade.dtrade.get_server_list()
for servername, server in server_list.items():
    print(f'主機名稱: {servername})

set_sever_by_name

def set_sever_by_name(servername)

透過主機名稱切換連結主機

參數
參數 型別 說明
servername str 主機名稱
回傳值 bool
型別 說明
True 切換連線成功
False 切換連線失敗
範例
success = unitrade.dtrade.set_sever_by_name("xxx")
if success:
    print("連線成功")
else:
    print("連線失敗")

order

def order(obj: DOrderObject) -> DOrderResponse

下單

參數
參數 型別 說明
obj DOrderObject 下單物件
回傳值 DOrderResponse
型別 說明  
issend bool 是否送出
errorcode str 錯誤代碼
errormsg str 錯誤訊息
note str 傳入的備註
seq str 下單序號
範例
# DOrderObject(actno='1234567', subactno='', productid='TXFF5', bs='B', ordertype='M', price=0, orderqty=5, ordercondition='R', opencloseflag='', dtrade='N', note='ordertest')
orderresponse=unitrade.dtrade.order(DOrderObject)
# DOrderResponse(issend=True, errorcode='', errormsg='', note='ordertest', seq='0002')

replace_order

def replace_order(obj: DReplaceObject) -> DOrderResponse

改單

參數
參數 型別 說明
obj DReplaceObject 下單物件
回傳值 DOrderResponse
型別 說明  
issend bool 是否送出
errorcode str 錯誤代碼
errormsg str 錯誤訊息
note str 傳入的備註
seq str 下單序號
範例
# DReplaceObject(replacetype='5', orderno='A0001', orderqty=1, actno='1234567', note='ordertest')
response=unitrade.dtrade.replace_order(DReplaceObject)
# DOrderResponse(issend=True, errorcode='', errormsg='', note='ordertest', seq='0002')

query_reply

def query_reply(actno, num_of_query, network_id_start, network_id_end,
                begin_order_time, end_order_time) -> DQueryReplyResponse

查詢委託回報

參數
參數 型別 說明
actno str 帳號
networkid_st str 網路單號起
networkid_ed str 網路單號迄
beginOrderTime str 委託時間起
endOrderTime str 委託時間迄
回傳值 QueryReplyResponse
型別 說明  
ok bool True 成功 /False 失敗
error str 錯誤訊息
data List[OrderReply] 回報集合
範例
response = unitrade.dtrade.query_reply('1234567', 10, '', '', '', '')
# DQueryReplyResponse(ok=True, error='', data=[
#  DOrderReply(brokerid='F008000', investoracno='1234567', networkid='2500000001', ordertime='100439030', orderno='aa001', subact='', productkind='1', productid='TMFG5', bs='B', ordertype='L', price='21730.0000', orderqty='1', nomatchqty='0', matchqty='0', delqty='0', ordercondition='R', opencloseflag='', ae='', odrsrc='Y', odrmedia='', order_src='M', tradedate='20250619', note='', op='', aeflag=None, loginid=None, mdate='2025/06/19 10:04:39', orderstatus='TTO0002:尚未開始接收委託或者不接受此種委託', statuscode='9902', seq='19        ', rawstatus=None),            
# ..])

query_match

def query_match(actno, num_of_query, network_id_start, network_id_end,
                begin_match_time, end_match_time) -> DQueryMatchResponse

查詢成交回報

參數
參數 型別 說明
actno str 帳號
networkid_st str 網路單號起
networkid_ed str 網路單號迄
begin_match_time str 成交時間起
end_match_time str 成交時間迄
回傳值 QueryReplyResponse
型別 說明  
ok bool True 成功 /False 失敗
error str 錯誤訊息
data List[MatchReply] 成回集合
範例
response = unitrade.dtrade.query_match('1234567', 10, '', '', '', '')
# DQueryMatchResponse(ok=True, error='', data=[
#  DMatchReply(brokerid='F008000', investoracno='1234567', networkid='2500000001', matchtime='100439030', orderno='aa001', subact='', productkind='1', productid='TMFG5', bs='B', matchprice='21730.0000', matchqty='1', matchseq='', matchpricefoot1='', matchpricefoot2='', note=''),
# ..])

close

def close()

關閉物件