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

FTrade Objects

class FTrade()

on_error

錯誤事件

on_connected

連線成功事件

on_disonnected

斷線事件

on_reply

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

on_match

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

get_current_server

def get_current_server()

目前連結主機

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

get_server_list

def get_server_list()

透過可連結主機

回傳值 dict[Server]
型別 說明  
key str servername
value Server 主機物件
範例
server_list = unitrade.ftrade.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.ftrade.set_sever_by_name("xxx")
if success:
    print("連線成功")
else:
    print("連線失敗")

order

def order(obj) -> FOrderResponse

下單

參數
參數 型別 說明
obj FOrderObject 下單物件
回傳值 FOrderResponse
型別 說明  
issend bool 是否送出
errorcode str 錯誤代碼
errormsg str 錯誤訊息
note str 傳入的備註
seq str 下單序號
範例
# FOrderObject(actno='1234567', subactno='', exchange='CME', symbol='NQ', maturitymonthyear='202406', putorcall='', strikeprice='', symbol2='', maturitymonthyear2='', putorcall2='', strikeprice2='', side1='', side2='', bs='S', ordertype='M', price=0, stopprice=0, orderqty=1, ordercondition='R', opencloseflag='', dtrade='', note='ordertest')
orderresponse=unitrade.ftrade.order(FOrderObject)
# FOrderResponse(issend=True, errorcode='', errormsg='', note='ordertest', seq='AGmb80002')

replace_order

def replace_order(obj) -> FOrderResponse

改單

參數
參數 型別 說明
obj FReplaceObject 下單物件
回傳值 FOrderResponse
型別 說明  
issend bool 是否送出
errorcode str 錯誤代碼
errormsg str 錯誤訊息
note str 傳入的備註
seq str 下單序號
範例
# FReplaceObject(replacetype='m', actno='1234567', orderno='AGmb80002', ordercondition='R', ordertype='M', price=0, stopprice=0, orderqty=1, note='ordertest')
orderresponse=unitrade.ftrade.replace_order(FReplaceObject)
# FOrderResponse(issend=True, errorcode='', errormsg='', note='ordertest', seq='AGmb80002')

query_reply

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

查詢委託回報

參數
參數 型別 說明
actno str 帳號
networkid_st str 網路單號起
networkid_ed str 網路單號迄
beginOrderTime str 委託時間起
endOrderTime str 委託時間迄
回傳值 FQueryReplyResponse
型別 說明  
ok bool True 成功 /False 失敗
error str 錯誤訊息
data List[FOrderReply] 回報集合
範例
response = unitrade.ftrade.query_reply('1234567', 10, '', '', '', '')
# FQueryReplyResponse(ok=True, error='', data=[
# FOrderReply(brokerid='F008000', investoracno='1234567', networkid='1J', ordertime='100453124', orderno='C0009', subact='', productkind='1', exchange='CME', symbol='MNQ', maturitymonthyear='202506', putorcall='F', strikeprice='0.0000000', symbol2='', maturitymonthyear2='', putorcall2='', strikeprice2='0.0000000', side1='', side2='', bs='B', ordertype='L', price='21614.7500000', stopprice='0.0000000', orderqty='2', nomatchqty='2', matchqty='0', delqty='0', pricebase='1', ordercondition='R', opencloseflag=' ', ae='F0657', odrsrc='E', odrmedia='', order_src='', tradedate='20250619', note='', op='', aeflag='', loginid='', mdate='06/19/2025 10:04:53', orderstatus='委託成功', statuscode='0000', seq='', rawstatus=None), 
# ..])

query_match

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

查詢成交回報

參數
參數 型別 說明
actno str 帳號
networkid_st str 網路單號起
networkid_ed str 網路單號迄
begin_match_time str 成交時間起
end_match_time str 成交時間迄
回傳值 FQueryReplyResponse
型別 說明  
ok bool True 成功 /False 失敗
error str 錯誤訊息
data List[FMatchReply] 成回集合
範例
response = unitrade.ftrade.query_match('1234567', 10, '', '', '', '')
# FQueryMatchResponse(ok=True, error='', data=[
#  FMatchReply(brokerid='F008000', investoracno='1234567', networkid='15N', matchtime='100454169', orderno='C0010', subact='', productkind='', exchange='CME', symbol='MNQ', maturitymonthyear='202506', putorcall='F', strikeprice='0.0000000', symbol2='', maturitymonthyear2='', putorcall2='', strikeprice2='0.0000000', side1='', side2='', bs='B', matchprice='21836.5000000', matchqty='1', matchseq='31iPYtn05f770utMc5NP17', pricebase='1', note='', mdate=''), 
# ..])

close

def close()

關閉物件