操作功能前請先登入
詳細功能請參考 API Reference/pfcf
##API初始&登入
import unitrade
from unitrade.unitrade import *
#初始API
api = Unitrade()
# 註冊連線事件
def api_dquote_on_connected():
serverip,port =api.dquote.get_current_server()
dd.loc[0, '內期報價連線'] =f"{serverip} {port} 已連線"
def api_fquote_on_connected():
serverip,port =api.fquote.get_current_server()
dd.loc[0, '外期報價連線'] =f"{serverip} {port} 已連線"
def api_dtrade_on_connected():
serverip,port =api.dtrade.get_current_server()
dd.loc[0, '內期交易連線'] =f"{serverip} {port} 已連線"
def api_ftrade_on_connected():
serverip,port =api.ftrade.get_current_server()
dd.loc[0, '外期交易連線'] =f"{serverip} {port} 已連線"
def api_daccount_on_connected():
url =api.daccount.get_current_server()
dd.loc[0, '內期帳務連線'] =f"{url} 已連線"
def api_faccount_on_connected():
url =api.faccount.get_current_server()
dd.loc[0, '外期帳務連線'] =f"{url} 已連線"
def api_dquote_on_disonnected():
serverip,port =api.dquote.get_current_server()
dd.loc[0, '內期報價連線'] =f"{serverip} {port} 斷線"
def api_fquote_on_disonnected():
serverip,port =api.fquote.get_current_server()
dd.loc[0, '外期報價連線'] =f"{serverip} {port} 斷線"
def api_dtrade_on_disonnected():
serverip,port =api.dtrade.get_current_server()
dd.loc[0, '內期交易連線'] =f"{serverip} {port} 斷線"
def api_ftrade_on_disonnected():
serverip,port =api.ftrade.get_current_server()
dd.loc[0, '外期交易連線'] =f"{serverip} {port} 斷線"
def api_daccount_on_disonnected():
url =api.daccount.get_current_server()
dd.loc[0, '外期交易連線'] =f"{url} 斷線"
def api_faccount_on_disonnected():
url =api.daccount.get_current_server()
dd.loc[0, '外期帳務連線'] =f"{url} 斷線"
api.dquote.on_connected=api_dquote_on_connected
api.fquote.on_connected=api_fquote_on_connected
api.dtrade.on_connected=api_dtrade_on_connected
api.ftrade.on_connected=api_ftrade_on_connected
api.daccount.on_connected=api_daccount_on_connected
api.faccount.on_connected=api_faccount_on_connected
api.dquote.on_disonnected=api_dquote_on_disonnected
api.fquote.on_disonnected=api_fquote_on_disonnected
api.dtrade.on_disonnected=api_dtrade_on_disonnected
api.ftrade.on_disonnected=api_ftrade_on_disonnected
api.daccount.on_disonnected=api_daccount_on_disonnected
# 登入api
為了避免執行完,執行階段中斷,沒有顯示到連線狀態,請在此sleep 等待一會兒
#錯誤事件處理
api.on_error = lambda error: print(f'api錯誤 {error}')
#系統登入
loginresponse = api.login(
"url", "帳號", "密碼", '憑證檔名', '憑證密碼')#url,帳號,密碼,憑證檔名,憑證密碼
actno = api.get_accounts()[0]#取得第一個交易帳號
#顯示登入結果
print(loginresponse)
print(f"登入旗標{api.login_status_flag}")
print(f"交易帳號{actno}")
time.sleep(5)
# 取得內期報價連線
print(api.dquote.get_server_list())
# 切換內期報價連線
為了避免執行完,執行階段中斷,沒有顯示到連線狀態,請在此sleep 等待一會兒
api.dquote.set_sever_by_name("217")
display(dd)
time.sleep(5)
# 取得外期報價連線
print(api.fquote.get_server_list())
# 切換外期報價連線
為了避免執行完,執行階段中斷,沒有顯示到連線狀態,請在此sleep 等待一會兒
api.fquote.set_sever_by_name("217")
display(dd)
time.sleep(5)
# 取得內期交易連線
print(api.dtrade.get_server_list())
# 切換內期交易連線
為了避免執行完,執行階段中斷,沒有顯示到連線狀態,請在此sleep 等待一會兒
api.dtrade.set_sever_by_name("99167")
display(dd)
time.sleep(5)
# 取得外期交易連線
print(api.ftrade.get_server_list())
# 切換外期交易連線
為了避免執行完,執行階段中斷,沒有顯示到連線狀態,請在此sleep 等待一會兒
api.ftrade.set_sever_by_name("141")
display(dd)
time.sleep(5)
# *系統登出*
#系統登出
api.logout()
print('登出完畢')
print(f"登入旗標{api.login_status_flag}")