跳至主要内容

報價系統分析

SolPYAPI

當你下載完元富證券的 Python 模組後,使用以下指令安裝報價系統:

pip install .\MasterLink_PythonAPI\SolPYAPI\PY_TradeD-0.1.15-py3-none-any.whl
提示

在我們使用時,該套件的版本為 0.1.15

官方技術文件

核心模組

我們把元富證券的 Python 模組拆解成以下幾個核心模組:

ProductBasic

這是用於記錄和回傳股票相關資訊的類別。

點選展開物件屬性
No.欄位名稱資料類型格式說明
1Exchangestr交易所(TWSE、TAIFEX)
2Symbolstr商品代號(TWSE、TAIFEX)
3Categorystr商品分類(TWSE、TAIFEX)
4TodayRefPricestr參考價(TAIFEX)
5RiseStopPricestr漲停價(TWSE、TAIFEX)
6FallStopPricestr跌停價(TWSE、TAIFEX)
7ChineseNamestrUTF-8商品中文名稱(TWSE)
8PreTotalMatchQtystr上一交易日成交總量(TWSE、TAIFEX)
9PreTodayRefPricestr上一交易日參考價(TWSE、TAIFEX)
10PreClosePricestr上一交易日收盤價(TWSE、TAIFEX)
11IndustryCategorystr參考"產業別代碼表" 產業別(TWSE)
12StockCategorystr參考“證券別代碼表” 證券別(TWSE)
13BoardRemarkstr板別註記(TWSE)
14ClassRemarkstr類股註記(TWSE)
15StockAnomalyCodestr參考"股票異常代碼表" 股票異常代碼(TWSE)
16NonTenParValueRemarkstr非 10 元面額註記(TWSE)
17AbnormalRecommendationIndicatorstr異常推介個股註記(TWSE)
18AbnormalSecuritiesIndicatorstr異常推介個股註記(TWSE)
19DayTradingRemarkstr"0":預設值 "A":可先買後賣或先賣後買現股當沖證券 "B":時表示為 可先買後賣現股當沖證券 SPACE:表示為不可現股當沖證券 可現股當沖註記(TWSE)
20TradingUnitstr交易單位(TWSE)
21TickSizestr最小跳動單位(TWSE)
22prodKindstr契約種類(TAIFEX)
23strikePriceDecimalLocatorstr選擇權商品代號之履約價小數位數(TAIFEX)
24PreTotalTradingAmountstr上一交易日成交總額(TWSE)
25DecimalLocatorstr價格小數位數(TAIFEX)
26BeginDatestrYYYYMMDD上市日期(TAIFEX)
27EndDatestrYYYYMMDD下市日期(TAIFEX)
28FlowGroupstr流程群組(TAIFEX)
29DeliveryDatestrYYYYMMDD最後結算日(TAIFEX)
30DynamicBandingstrY:適用, N:不適用 適用動態價格穩定(TAIFEX)
31ContractSymbolstr契約代號(TAIFEX)
32ContractNamestr契約中文名稱(TAIFEX)
33StockIDstr現貨股票代碼(TAIFEX)
34StatusCodestrN:正常 P:暫停交易 U:即將上市 狀態碼(TAIFEX)
35Currencystr幣別(TAIFEX)
36AcceptQuoteFlagstr是否可報價(TAIFEX)
37BlockTradeFlagstrY:可 N:不可 是否可鉅額交易(TAIFEX)
38ExpiryTypestrS:標準 W:週 到期別(TAIFEX)
39UnderlyingTypestrE S:個股 現貨類別(TAIFEX)
40MarketCloseGroupstr參考"商品收盤時間群組表" 商品收盤時間群組(TAIFEX)
41EndSessionstr一般交易時段:0 盤後交易時段:1 交易時段(TAIFEX)
42isAfterHoursstr早盤 : 0 午盤: 1 早午盤識別(TAIFEX)

ProductTick

即時交易明細資訊。

點選展開物件屬性
No.欄位名稱資料類型格式說明
1Exchangestr交易所(TWSE、TAIFEX)
2Symbolstr商品代號(TWSE、TAIFEX)
3MatchTimestr%H:%M:%S.%f成交資料時間(交易所) (TWSE、TAIFEX)
4OrderBookTimestr%H:%M:%S.%f五檔資料時間(交易所) (TWSE、TAIFEX)
5TxSeqstr交易所序號(成交資訊) (TWSE、TAIFEX)
6ObSeqstr交易所序號(五檔資訊) (TWSE、TAIFEX)
7IsTxTrailbool0: 非試撮,1: 試撮 是否為成交試撮資料(TWSE、TAIFEX)
8Is5QTrialbool0: 非試撮,1: 試撮 是否為五檔試撮資料(TWSE、TAIFEX)
9IsTrailbool0: 非試撮,1: 試撮 是否為試撮資料(TWSE、TAIFEX)
10DecimalLocatorstr價格欄位小數位數(TAIFEX)
11MatchPricestr成交價(TWSE、TAIFEX)
12MatchQtystr商品成交量(TAIFEX)
13MatchPriceListlist一筆行情, 多筆成交價(TWSE、TAIFEX)
14MatchQtyListlist一筆行情, 多筆成交量(TWSE、TAIFEX)
15MatchBuyCountstr累計買進成交筆數(TAIFEX)
16MatchSellCountstr累計賣出成交筆數(TAIFEX)
17TotalMatchQtystr商品成交總量(TWSE、TAIFEX)
18TotalTradingAmountstr商品成交總額(TWSE、TAIFEX)
19TradingUnitstr交易單位(TWSE、TAIFEX)
20DayHighstr當日最高價(TWSE、TAIFEX)
21DayLowstr當日最低價(TWSE、TAIFEX)
22RefPricestr參考價(TWSE)
23BuyPricelist五檔報價(買價) (TWSE、TAIFEX)
24BuyQtylist五檔報價(買量) (TWSE、TAIFEX)
25SellPricelist五檔報價(賣價) (TWSE、TAIFEX)
26SellQtylist五檔報價(賣量) (TWSE、TAIFEX)
27AllMarketAmountstr整體市場成交總額(TWSE)
28AllMarketVolumestr整體市場成交數量(TWSE)
29AllMarketCntstr整體市場成交筆數(TWSE)
30AllMarketBuyCntstr整體市場委託買進筆數(TWSE)
31AllMarketSellCntstr整體市場委託賣出筆數(TWSE)
32AllMarketBuyQtystr整體市場委託買進數量(TWSE)
33AllMarketSellQtystr整體市場委託賣出數量(TWSE)
34IsFixedPriceTransactionstr是否為定盤交易(TWSE)
35OpenPricestr開盤價(TWSE、TAIFEX)
36FirstDerivedBuyPricestr衍生委託單第一檔買進價格(TAIFEX)
37FirstDerivedBuyQtystr衍生委託單第一檔買進價格數量(TAIFEX)
38FirstDerivedSellPricestr衍生委託單第一檔賣出價格數量(TAIFEX)
39FirstDerivedSellQtystr衍生委託單第一檔賣出價格數量(TAIFEX)
40TotalBuyOrderstr買進累計委託筆數(TAIFEX)
41TotalBuyQtystr買進累計委託合約數(TAIFEX)
42TotalSellOrderstr賣出累計委託筆數(TAIFEX)
43TotalSellQtystr賣出累計委託合約數(TAIFEX)
44ClosePricestr收盤價(TAIFEX)
45SettlePricestr結算價(TAIFEX)

RCode

這是一個用來記錄報價系統回傳的錯誤代碼的類別。

點選展開物件屬性
名稱說明
0OK成功
1SOLCLIENT_WOULD_BLOCKAPI 呼叫會阻塞,但請求非阻塞模式
2SOLCLIENT_IN_PROGRESSAPI 呼叫正在進行中(非阻塞模式)
3SOLCLIENT_NOT_READYAPI 無法完成,因為對象未準備好(例如,會話未連接)
4SOLCLIENT_EOS結構化容器上的下一次操作返回了流結束
5SOLCLIENT_NOT_FOUND在 MAP 中查找命名字段未找到
6SOLCLIENT_NOEVENT上下文無事件可處理
7SOLCLIENT_INCOMPLETEAPI 呼叫完成了部分但不是所有請求的功能
8SOLCLIENT_ROLLBACK當交易已回滾時,Commit() 返回此值
9SOLCLIENT_EVENTSolClient 會話事件
10CLIENT_ALREADY_CONNECTED連線已建立
11CLIENT_ALREADY_DISCONNECTED連線已斷線
12ANNOUNCEMENT公告訊息
-1FAIL失敗
-2CONNECTION_REFUSED拒絕連線
-3CONNECTION_FAIL連線失敗
-4ALREADY_EXISTS目標物件已存在
-5NOT_FOUND目標物件不存在
-6CLIENT_NOT_READY連線尚未準備好
-7USER_SUBSCRIPTION_LIMIT_EXCEEDED超過訂閱數上限
-8USER_NOT_APPLIED尚未申請
-9USER_NOT_VERIFIED尚未驗證
-10USER_VERIFICATION_FAIL驗證失敗
-11SUBSCRIPTION_FAIL訂閱商品失敗
-12RECOVERY_FAIL回補失敗
-13DOWNLOAD_PRODUCT_FAIL下載基本資料檔失敗
-14MESSAGE_HANDLER_FAIL訊息處理錯誤
-15FUNCTION_SUBSCRIPTION_LIMIT_EXCEEDED功能訂閱數超過上限
-16USER_NOT_VERIFIED_TWSE尚未驗證 TWSE
-17USER_NOT_VERIFIED_TAIFEX尚未驗證 TAIFEX
-18USER_NOT_VERIFIED_TWSE_TAIFEX尚未驗證 TWSE&TAIFEX
-9999UNKNOWN_ERROR未知錯誤

MarketDataMart

這是報價系統中的一個起始點,類別本身只定義了幾個方法,這些方法會用來觸發事件,例如成交訊息、委託訊息等。

在後續的使用中,必須手動掛載對應的事件處理器。

EventDescription
Fire_OnSystemEvent系統訊息通知
Fire_MarketDataMart_ConnectState系統連線狀態
Fire_OnUpdateBasic商品基本資料更新
Fire_OnUpdateProductBasicList商品基本資料列表更新
Fire_OnUpdateLastSnapshot商品最新快照更新
Fire_OnMatch商品成交訊息
Fire_OnOrderBook商品委託訊息
Fire_OnUpdateTotalOrderQty商品委託量累計更新
Fire_OnUpdateOptionGreeks選擇權商品 Greeks 更新
Fire_OnUpdateOvsBasic海外商品基本資料更新
Fire_OnUpdateOvsMatch海外商品成交資料更新
Fire_OnUpdateOvsOrderBook海外商品五檔資料更新

Sol_D

這個類別的輸入參數是一個 MarketDataMart 類別的實例,並直接將 MarketDataMart 實例送進 MasterQuoteDAPI 類別中,產生另外一個實例。

我們查看 MasterQuoteDAPI 的實作中,會接收到 MarketDataMart 實例後,再次把它送進 SolAPI 類別中,產生另外一個實例。

好吧,這些都是他們的實作方式,先不管了。


Sol_D 類別中,裡面有提供幾個使用者常用的方法:

  • Sol_D.Login: 登入
  • Sol_D.DisConnect: 登出
  • Sol_D.Subscribe: 訂閱商品報價
  • Sol_D.UnSubscribe: 取消訂閱商品報價

還有一些事件處理器,必須先定義外部函數之後,用他們指定的方法掛載:

  • Sol_D.Set_OnLogEvent: 設定登入事件處理器
  • Sol_D.Set_OnInterruptEvent: 設定系統事件處理器
  • Sol_D.Set_OnLoginResultEvent_DAPI: 設定登入結果事件處理器
  • Sol_D.Set_OnAnnouncementEvent_DAPI: 設定公告事件處理器
  • Sol_D.Set_OnVerifiedEvent_DAPI: 設定驗證事件處理器
  • Sol_D.Set_OnSystemEvent_DAPI: 設定系統事件處理器
  • Sol_D.Set_OnUpdateBasic_DAPI: 設定商品基本資料更新事件處理器
  • Sol_D.Set_OnMatch_DAPI: 設定商品成交訊息事件處理器