C#複委託交易API使用手冊
C#複委託交易API流程說明
API驗證流程
請先下載API元件,並使用您的程式登入元富API,登入測試環境。
下單(依照數位API網站線上驗證下單內容,於您的程式進行委託下單)。
下單完成後,於數位API網站線上驗證頁面輸入委託書號。
以上步驟完成後,於數位API網站線上驗證頁面點選"驗證"。
驗證成功後及驗證完成,須待人員審核,請稍待審核流程,方能開通權限。
關聯網站
C#複委託交易API範例程式說明
1. 系統需求
-
須先以系統管理員身分執行路徑: MasterTradeOvsStkCSSample\bin\Release_x64\RegOCX.bat,進行api元件註冊(檔案路徑不可存在中文)
-
.Net Framwork 4.8
-
Visual Studio 2022
-
如果MLSecuritiesATL_x64.dll出現註冊失敗的訊息,請先去微軟官方網站下載並安裝套件https://aka.ms/vs/17/release/vc_redist.x64.exe
API規格
物件名稱: MasterTradeOvsStkAPI:
API主要物件,負責API證券連線、交易、回報等行為
一、 方法
A. 連線
Connect:建立連線
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | aLoginID | String | 使用者名稱 |
In | aLoginPw | String | 使用者密碼 |
In | euServerKind | TEServerKind | Release:連線至交易主機 SIM:連線至模擬競賽主機 |
In | IsForce | String | 單一帳號認證成功即下單 |
B. 切斷連線
Disconnect:切斷連線
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
- | - | - | - |
C. 下單
SendOvsStkOrder_New:新單
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | NewOrder | TOvsStkOrder_NEW | 請閱:資料格A.新單格式 |
Out | aMsg | String | 訊息 |
D. 刪單
SendOvsStkOrder_Del:刪單
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | DelOrder | TOvsStkOrder_DEL | 請閱: 資料格B.刪單格式 |
Out | aMsg | String | 訊息 |
E. 交割款查詢
SendOvsStkQry_SettleAmt
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | tmpQry | TOvsStkQry_SettleAmt | |
以下為TOvsStkQry_SettleAmt欄位說明: | |||
Broker | String | 輸入分公司代碼 | |
MAccNo7 | String | 輸入交易帳號7碼 | |
DateS | String | 查詢起始日期(yyyyMMdd) | |
DateE | String | 查詢結束日期(yyyyMMdd) | |
Out | aMsg | String | 訊息 |
F. 即時庫存查詢
SendOvsStkQry_Bal
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | tmpQry | TOvsStkQry_Bal | |
以下為TOvsStkQry_Bal欄位說明: | |||
Broker | String | 輸入分公司代碼 | |
MAccNo7 | String | 輸入交易帳號7碼 | |
Out | aMsg | String | 訊息 |
G. 庫存明細查詢
SendOvsStkQry_BalDtl
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | tmpQry | TOvsStkQry_BalDtl | |
以下為TOvsStkQry_BalDtl欄位說明: | |||
Broker | String | 輸入分公司代碼 | |
MAccNo7 | String | 輸入交易帳號7碼 | |
Out | aMsg | String | 訊息 |
H. 委託查詢
SendOvsStkQry_Order
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | tmpQry | TOvsStkQry_Order | |
以下為TOvsStkQry_Order欄位說明: | |||
Broker | String | 輸入分公司代碼 | |
MAccNo7 | String | 輸入交易帳號7碼 | |
DateS | String | 查詢起始日期(yyyyMMdd) | |
DateE | String | 查詢結束日期(yyyyMMdd) | |
Out | aMsg | String | 訊息 |
I. 成交查詢
SendOvsStkQry_Deal
輸入/輸出 | 欄位名稱 | 格式 | 說明 |
---|---|---|---|
In | tmpQry | TOvsStkQry_Deal | |
以下為TOvsStkQry_Deal欄位說明: | |||
Broker | String | 輸入分公司代碼 | |
MAccNo7 | String | 輸入交易帳號7碼 | |
DateS | String | 查詢起始日期(yyyyMMdd) | |
DateE | String | 查詢結束日期(yyyyMMdd) | |
Out | aMsg | String | 訊息 |
二、 事件
A. 系統訊息
OnSystemEvent:系統訊息事件
欄位名稱 | 格式 | 說明 |
---|---|---|
aMsg | String | 系統訊息文字 |
B. 證券公告
OnAnnouncementEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
aMsg | String | 公告訊息 |
C. 通知複委託證券可以開始委託
OnOvsStkStartToOrderEvent:請注意:必須收到此Event的通知, 才可以開始委託
欄位名稱 | 格式 | 說明 |
---|---|---|
- | - | - |
D. 返回可交易複委託證券帳號
OnOvsStockAccListUpdateEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
aAccList | List‹TCommonAccData› | 可交易複委託證券帳號列表, 請閱:資料格式C.複委託證券帳號格式 |
E. 複委託證券交易回補完成
OnRptOvsStk_RecoverDoneEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
aRptResultList | TRptOvsStkResultList: List‹TRptOvsStkResult› |
回報列表, 請閱:資料格式D.回報格式 |
aRptDealDtlList | TRptOvsStkDtlLSS:List‹object› | 成交明細, object為TRptOvsStkDtl_Deal, 請閱:資料格式E.成交格式 |
F. 複委託證券交易即時回報
OnRptOvsStk_RealTimeResultEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
aPushResutList | List‹string› |
string為Json, 格式:TRptOvsStkResult, 請閱:資料格式D.回報格式 |
G. 複委託證券交易收單ACK
OnOvsStkORD_ACKEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
tmpORD_ACK | TOvsStkOrder_ORD_ACK: OrderStu:收單狀態, |
請閱:資料格式F.收單狀態列舉說明 |
Time:時間 | ||
Msg:訊息 | ||
OrgOrderContent:原始委託物件 | 請閱:資料格式G.原始委託物件格式 |
H. 交割款查詢結果
OnOvsStkQryResSettleAmtEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
tmpQryRes | TOvsStkQryRes_SettleAmt | |
以下為TOvsStkQryRes_SettleAmt欄位說明: | ||
Broker | String | 輸入分公司代碼 |
MAccNo7 | String | 輸入交易帳號7碼 |
DateS | String | 查詢起始日期(yyyyMMdd) |
DateE | String | 查詢結束日期(yyyyMMdd) |
QryResStu | String | 查詢結果狀態(0:表示查詢成功, 其餘視為查詢失敗) |
QryResTime | String | 查詢結果返回時間 |
QryResMsg | String | 查詢結果訊息 |
QryRes | List‹TOvsStkQryResSettleAmt› | 查詢結果,請閱:資料格式H.交割款查詢結果格式 |
A. 即時庫存查詢結果
OnOvsStkQryResBalEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
tmpQryRes | TOvsStkQryRes_Bal | |
以下為TOvsStkQryRes_Bal欄位說明: | ||
Broker | String | 輸入分公司代碼 |
MAccNo7 | String | 輸入交易帳號7碼 |
QryResStu | String | 查詢結果狀態(0:表示查詢成功, 其餘視為查詢失敗) |
QryResTime | String | 查詢結果返回時間 |
QryResMsg | String | 查詢結果訊息 |
QryRes | List‹TOvsStkQryResBal› | 查詢結果, 請閱:資料格式I.即時庫存查詢結果格式 |
B. 庫存明細查詢結果
OnOvsStkQryResBalDtlEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
tmpQryRes | TOvsStkQryRes_BalDtl | |
以下為TOvsStkQryRes_BalDtl欄位說明: | ||
Broker | String | 輸入分公司代碼 |
MAccNo7 | String | 輸入交易帳號7碼 |
QryResStu | String | 查詢結果狀態(0:表示查詢成功, 其餘視為查詢失敗) |
QryResTime | String | 查詢結果返回時間 |
QryResMsg | String | 查詢結果訊息 |
QryRes | List‹TOvsStkQryResBalDtl› | 查詢結果, 請閱:資料格式J.庫存明細查詢結果格式 |
C. 委託查詢結果
OnOvsStkQryResOrderEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
tmpQryRes | TOvsStkQryRes_Order | |
以下為TOvsStkQryRes_Order欄位說明: | ||
Broker | String | 輸入分公司代碼 |
MAccNo7 | String | 輸入交易帳號7碼 |
DateS | String | 查詢起始日期(yyyyMMdd) |
DateE | String | 查詢結束日期(yyyyMMdd) |
QryResStu | String | 查詢結果狀態(0:表示查詢成功, 其餘視為查詢失敗) |
QryResTime | String | 查詢結果返回時間 |
QryResMsg | String | 查詢結果訊息 |
QryRes | List‹TOvsStkQryResOrder› | 查詢結果,請閱:資料格式K.委託查詢結果格式 |
D. 成交查詢結果
OnOvsStkQryResDealEvent
欄位名稱 | 格式 | 說明 |
---|---|---|
tmpQryRes | TOvsStkQryRes_Deal | |
以下為TOvsStkQryRes_Deal欄位說明: | ||
Broker | String | 輸入分公司代碼 |
MAccNo7 | String | 輸入交易帳號7碼 |
DateS | String | 查詢起始日期(yyyyMMdd) |
DateE | String | 查詢結束日期(yyyyMMdd) |
QryResStu | String | 查詢結果狀態(0:表示查詢成功, 其餘視為查詢失敗) |
QryResTime | String | 查詢結果返回時間 |
QryResMsg | String | 查詢結果訊息 |
QryRes | List‹TOvsStkQryResDeal› | 查詢結果,請閱:資料格式L.成交查詢結果格式 |
三、 資料格式
A. 新單格式: TOvsStkOrder_NEW
欄位名稱 | 格式 | 說明 |
---|---|---|
SegMkt | String | 請填入0:整股 |
Broker | String | 分公司代碼 |
MAccNo7 | String | 七碼母帳號 |
AccNo7 | String | 七碼子帳號 (註:不為母子戶者, 請填入七碼母帳號) |
BSType | String | 買賣別(B/S) |
Exchange | String | 元富交易所代碼, 美股請填入US |
Symbol | String | 商品代號(ex:NVDA) |
PriceType | String | 價格類別, 請填入2 (2:限價) |
OrderPrice | String | 委託價 |
OrderQty | String | 委託量(股數) |
OrderType | String | 單別(0:單日單, 1:長效單) |
SettleType | String | 委託台外幣, 請填入Y或N, 不可填入空字串或不填 (Y:外幣交割, N:台幣交割) |
B. 刪單格式: TOvsStkOrder_DEL
欄位名稱 | 格式 | 說明 |
---|---|---|
Broker | String | 分公司代碼 |
MAccNo7 | String | 七碼母帳號 |
AccNo7 | String | 七碼子帳號 (註:不為母子戶者, 請填入七碼母帳號) |
OrderNo | String | 原委託單號 |
OrderDate | String | 原委託單的委託日期 |
NetId | String | 網路單號(請填入空字串) |
C. 複委託證券帳號格式: TCommonAccData
欄位名稱 | 格式 | 說明 |
---|---|---|
AccType | String | OvsStk:複委託證 |
BkrNo | String | 分公司代碼 |
AccNo | String | Broker-七碼子帳號 |
MAccNo | String | Broker-七碼母帳號 |
AccNo7 | String | 七碼子帳號 |
MAccNo7 | String | 七碼母帳號 |
IsSub | boolean | 是否為母子戶 |
D. 回報格式: TRptOvsStkResult
欄位名稱 | 格式 | 說明 |
---|---|---|
OrderStatus | String | 2:委託成功 6:已刪單 71:部份成交 72:已完全成交 11:委託失敗 |
Function_Code | String | 交易性質(01:新單 04:刪單) |
OrderDate | String | 委託單日期YYYYMMDD |
Broker | String | 分公司代碼 |
OrderNo | String | 委託單號 |
AccNo7 | String | 七碼子帳號 |
Exchange | String | 元富交易所代碼, 美股為US |
Symbol | String | 商品代碼ex:NVDA |
BSType | String | 買賣別B/S |
Price | decimal | 委託價 |
OrderQty | Integer | 委託量(股數) |
CumQty | decimal | 成交數量(股數) |
DelQty | Integer | 刪單數量(股數) |
LeavesQty | Integer | 剩餘有效委託數量(股數) |
PriceType | String | 價格類別(2:限價) |
OrderType | String | 單別(0:單日單, 1:長效單) |
SettleType | String | 台外幣業務別(Y:外幣, N:台幣) |
OrderTime | String | 委託時間HHmmss |
DealTime | String | 成交時間HHmmss |
Msg | String | 訊息 |
以下為即時回報專用: | ||
Single_OrderStatus | TERptOvsStkOrderStatus | 本次回報狀態: 2:委託成功回報 6:刪單成功回報 7:成交回報 11:錯誤回報 |
Single_Price | decimal | 價格 (本次若為委託成功, 則為委託價; 若為成交回報, 則為成交單價) |
Single_Price | Integer | 數量(股數) (本次若為委託成功, 則為委託量; 若為成交回報, 則為成交單量) |
Single_RejCode | TERptOvsStkOrderRejectCode | 拒絕委託類型: 1:新單 2:刪單 |
E. 成交格式: TRptOvsStkDtl_Deal
欄位名稱 | 格式 | 說明 |
---|---|---|
Function_Code | String | 交易性質(01:新單 04:刪單) |
OrderDate | String | 委託單日期YYYYMMDD |
Broker | String | 分公司代碼 |
OrderNo | String | 委託單號 |
DealDate | String | 成交日期YYYYMMDD |
Time | String | 時間HHmmss |
AccNo7 | String | 七碼子帳號 |
Exchange | String | 元富交易所代碼, 美股為US |
Symbol | String | 商品代碼ex:NVDA |
Price | decimal | 委託價 |
BSType | String | 買賣別B/S |
DealSn | String | 市場撮合流水號 |
DealAmt | decimal | 成交金額 |
Tax | decimal | 交易稅 |
Fee | decimal | 手續費 |
SettleAmt | decimal | 應收付金額 |
BrokerFee | decimal | 上手手續費 |
DealNo | String | 成交單號 |
Qty | Integer | 成交數量(股數) |
SettleType | String | 台外幣業務別(Y:外幣, N:台幣) |
OrderTime | String | 委託時間HHmmss |
DealTime | String | 成交時間HHmmss |
F. 收單狀態列舉說明: TEOvsStkOrderKind
代碼 | 說明 |
---|---|
-1 | Local未送單 |
-999 | 無法辨別的錯誤 |
-900 | 暫停收單 |
-901 | 新單委託收單失敗 |
-902 | 刪單委託收單失敗 |
-903 | 減量委託收單失敗 |
-904 | 改價委託收單失敗 |
11 | 新單委託已送至交易主機 |
12 | 刪單委託已送至交易主機 |
13 | 減量委託已送至交易主機 |
14 | 改價委託已送至交易主機 |
G. 原始委託物件格式: TOvsStkOrder
欄位名稱 | 格式 | 說明 |
---|---|---|
Memo | String | 備註 |
OrderKind | TEOvsStkOrderKind | 10:新單委託 20:刪單委託 |
CAOrder | String | 收單成功才有資料 |
H. 交割款查詢結果格式: TOvsStkQryResSettleAmt
欄位名稱 | 格式 | 說明 |
---|---|---|
Exchange | String | 交易所代碼 |
DealDate | String | 成交日期 |
SettleDate | String | 交割日期 |
SettleAmt | String | 交割金額(+/-) |
SettleCur | String | 交割幣別 |
SettleAmt_NTD | String | 台幣應收付金額(+/-) |
ExchRate | String | 匯率 |
SettleType | String | 台外幣業務別(Y:外幣 N:台幣) |
I. 即時庫存查詢結果格式: TOvsStkQryResBal
欄位名稱 | 格式 | 說明 |
---|---|---|
Exchange | String | 交易所代碼 |
Symbol | String | 商品代碼 |
OpenBalQty | String | 昨日庫存 |
OrderQty_B | String | 買入數量 |
DealQty_B | String | 買入成交數量 |
OrderQty_S | String | 賣出數量 |
DealQty_S | String | 賣出成交數量 |
BalQtyAvi | String | 目前可用庫存 |
BalQty | String | 實際庫存 |
CostAmt | String | 庫存成本 |
BalAvgPri | String | 均價 |
ProdName | String | 商品名稱 |
Gain | String | 損益(+/-) |
Profitability | String | 報酬率%(+/-) |
Cur | String | 幣別 |
CostAmt_NTD | String | 台幣庫存成本 |
SegMkt | String | 類別(0:整股 1.定額) |
SettleType | String | 台外幣業務別(Y:外幣 N:台幣) |
J. 庫存明細查詢結果格式: TOvsStkQryResBalDtl
欄位名稱 | 格式 | 說明 |
---|---|---|
Exchange | String | 交易所代碼 |
DealDate | String | 成交日期 |
DealNo | String | 成交單號 |
Symbol | String | 商品代碼 |
BSType | String | 買賣別(B/S) |
DealQty | String | 成交數量 |
DealAmt | String | 成交價金 |
SettleAmt | String | 應收付金額(+/-) |
CutQty | String | 已平倉數量 |
SettleAmt_Cut | String | 平倉應收付金額(+/-) |
BalQty | String | 未平倉數量 |
Cur | String | 幣別 |
ProdName | String | 商品名稱 |
SegMkt | String | 類別(0:整股 1.定額) |
SettleType | String | 台外幣業務別(Y:外幣 N:台幣) |
K. 委託查詢結果格式: TOvsStkQryResOrder
欄位名稱 | 格式 | 說明 |
---|---|---|
OrderDate | String | 委託單日期 |
NetNo | String | 網路單號 |
OrderNo | String | 委託單號 |
Exchange | String | 交易所代碼 |
Symbol | String | 商品代碼 |
OrderQty | String | 委託數量 |
OrderPri | String | 委託價 |
BSType | String | 買賣別(B/S) |
DealQty | String | 成交數量 |
OrderType | String | 長效單(GTC)0:單日單 1:長效單 |
Src | String | 來源別(下單管道) |
OrdStu | String | 委託狀態 |
ErrMsg | String | 錯誤原因說明 |
SendOrderDate | String | 下單日期 |
SendOrderTime | String | 下單時間 |
ProdName | String | 商品名稱 |
WKQty | String | 未成交數量 |
OrdStuType | String | 委託單狀態類別碼: A01委託成功 A02改量成功 A03刪單成功 A04全部成交 A05部份成交 A06部分成交其餘刪單 A07委託失敗 A08委託收到 A09改量收到 A10刪單收到 A11改單失敗 A12刪單失敗 B01委託成功 B02部份成交 B03全部成交 B04部份成交其餘刪單 B05刪單成功 Z01預約收到 Z02預約取消 |
PriceType | String | 價格種類(1:市場價,2:限價) |
SegMkt | String | 類別(0:整股 1.定額) |
SettleType | String | 台外幣業務別(Y:外幣 N:台幣) |
L. 成交查詢結果格式: TOvsStkQryResDeal
欄位名稱 | 格式 | 說明 |
---|---|---|
DealDate | String | 成交日期 |
OrderDate | String | 委託單日期 |
OrderNo | String | 委託單號 |
Exchange | String | 交易所代碼 |
Symbol | String | 商品代碼 |
DealQty | String | 成交數量 |
DealPri | String | 成交價 |
BSType | String | 買賣別(B/S) |
DealAmt | String | 成交價金 |
DealTime | String | 成交時間 |
DealNo | String | 成交單號 |
ProdName | String | 商品名稱 |
Cur | String | 幣別 |
SegMkt | String | 類別(0:整股 1.定額) |
SettleType | String | 台外幣業務別(Y:外幣 N:台幣) |