你需要 spdOrderAPI 來取得交易相關的服務,使用 spdOrderAPI 的程式需要有下列的程式片段
from pySpeedy.spdOrderAPI import spdOrderAPI
class testPyOrderAPI(spdOrderAPI):
def __init__(self):
super().__init__()
# 你可以在這邊初始化任何你會用到的變數
def OnConnected(self):
# 你用來處理交易主機連線成功的程式碼
# 通常我們在這時候嘗試登入交易主機如下
self.LogonProxy('your_id', 'your_pwd', 'your_account')
def OnDisconnected(self):
# 你用來處理交易主機連線中斷的程式碼
def OnLogonResponse(self, IsSucceed, ReplyString):
# 你用來處理交易主機登入成功or失敗的程式碼
def OnReplyNewOrder(self, NID, UDD, Symbol, Price, Side, OrderQty, OrderType, TimeInForce, OrderID):
# 你用來處理委託回報的程式碼
def OnReplyCancelOrder(self, NID, UDD, Symbol, Price, Side, OrderID):
# 你用來處理刪單成功的程式碼
def OnReplyReplaceOrder(self, NID, UDD, Symbol, Price, Side, OrderQty, OrderType, TimeInForce, OrderID):
# 你用來處理改單成功的程式碼
def OnRejectOrder(self, NID, UDD, ActionFrom, ErrCode, ErrMsg):
# 你用來處理新/刪/改單失敗的程式碼
def OnFill(self, NID, UDD, OrderID, ReportSequence, FillPrice, FillQty, FillTime):
# 你用來處理成交回報的程式碼
if __name__ == '__main__':
ObjOrder = testPyOrderAPI()
ObjOrder.EnableMEGACA("xxxxxx.pfx","id","password")
ObjOrder.Connect('交易主機IP', 交易主機 listen port, 視為逾時的秒數)
你需要 spdQuoteAPI 取得行情相關的服務,使用 spdQuoteAPI 的程式需要有下列的程式片段
from pySpeedy.spdQuoteAPI import spdQuoteAPI
class testPyQuoteAPI(spdQuoteAPI):
def __init__(self):
super().__init__()
# 你可以在這邊初始化任何你會用到的變數
def OnConnected(self):
# 你用來處理行情主機連線成功的程式碼
# 通常是不需要特別的處理
def OnDisconnected(self):
# 你用來處理行情主機連線中斷的程式碼
def OnLogonResponse(self, IsSucceed, ReplyString):
# 你用來處理行情主機登入成功的程式碼
# 通常是登入失敗才需要處理
def OnContractDownloadComplete(self):
# 你用來處理商品資料下載成功的程式碼
# 通常是在這時候訂閱商品
# self.Stocks 會存放下載下來的股票商品基本資料
# self.Futures 會存放下載下來的期貨商品基本資料
def OnOrderBook(self, Exchange, Symbol, MsgTime, Msg):
# 你用來處理收到委託簿的程式碼
def OnTrade(self, Exchange, Symbol, MatchTime, MatchPrice, MatchQty, IsTestMatch):
# 你用來處理收到成交訊息的程式碼
if __name__ == '__main__':
ObjQuote = testPyQuoteAPI()
ObjQuote.Logon('行情主機IP', 行情主機 listen port, '登入帳號', '登入密碼', 是否下載商品資料(True/False))