# 十一、 C# 函數庫 ## 11.1 域名 Namespace MdcCSApi ## 11.2 MdcSession 連線物件 ### 11.2.1 連線資訊 #### 11.2.1.1 Start 方法 要求物件開始連線登入程序 細節請參 [mdca_connection_start](/3jSr3fihTyCjq2eTkUKUcw#9132-mdca_connection_start-%E6%96%B9%E6%B3%95),除 Handle 外。 #### 11.2.1.2 Close 方法 要求關閉回收連線 細節請參 [mdca_connection_close](/3jSr3fihTyCjq2eTkUKUcw#9133-mdca_connection_close-%E6%96%B9%E6%B3%95),除 Handle 外。 ### 11.2.2 行情快照訂閱 #### 11.2.2.1 QuotationSubscribe 方法 訂閱即時行情 **函數原型:** ``` void QuotationSubscribe(string Exchange, string[] Commoditys) ``` **參數:** Exchange: 查詢交易所 Commoditys: 訂閱商品陣列 **例外 (RuntimeErrorException):** 依 [mdca_quotation_subscribe](/3jSr3fihTyCjq2eTkUKUcw#9161-mdca_quotation_subscribe-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.2.2.2 QuotationUnsubscribe 方法 解訂閱即時行情 **函數原型:** ``` void QuotationUnsubscribe(string Exchange, string[] Commoditys) ``` **參數:** Exchange: 查詢交易所 Commoditys: 解訂閱商品陣列 **例外 (RuntimeErrorException):** 依 [mdca_quotation_unsubscribe](/3jSr3fihTyCjq2eTkUKUcw#9162-mdca_quotation_unsubscribe-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.2.2.3 QuotationRequest 方法 行情快照查詢 **函數原型:** ``` void QuotationRequest (UInt32 RequestId, string Exchange, string[] Commoditys) ``` **參數:** RequestId: 查詢識別ID Exchange: 查詢交易所 Commoditys: 查詢商品陣列 **例外 (RuntimeErrorException):** 依 [mdca_quotation_request](/3jSr3fihTyCjq2eTkUKUcw#9163-mdca_quotation_request-%E6%96%B9%E6%B3%95) 的Result 產生例外。 ### 11.2.3 即時與歷史查詢 --- #### 11.2.3.1 HistoryRequest 方法 歷史資料查詢訂閱 **說明:** 此呼叫向伺服端要求資料,取得伺服回應時,會從 [OnHistoryResponse](/t--ZA6_RRXS99V04pAiJ7Q#11243-OnHistoryResponse-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95) 中得到一 次性完整的資料結構內容。 **函數原型:** ``` void HistoryRequest(RequestArgument argument) ``` **參數:** argument: 查詢參數 (參 [Mdcs_RequestArgument](/v-KO6tAmRqmK8ykncHtxSQ#89-QuotationBasic-%E8%A1%8C%E6%83%85%E9%9D%9C%E6%85%8B%E8%B3%87%E6%96%99%E7%B5%90%E6%A7%8B)) **例外 (RuntimeErrorException):** 依 [mdca_history_request](/3jSr3fihTyCjq2eTkUKUcw#9171-mdca_history_request-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.2.3.2 HistoryUnsubscribe 方法 取消歷史資料訂閱 **說明:** 此呼叫會解除即時行情的訂閱活動,並回收工作。 **函數原型:** ``` void HistoryUnsubscribe(uint RequestId) ``` **參數:** RequestId: 查詢唯一識別碼 **例外 (RuntimeErrorException):** 依 [mdca_history_unsubscribe](/3jSr3fihTyCjq2eTkUKUcw#9172-mdca_history_unsubscribe-%E6%96%B9%E6%B3%95) 的Result 產生例外。 ### 11.2.4 事件虛函式 --- #### 11.2.4.1 OnConnectionState 事件方法 連線狀態事件 細節請參 [mdca_listener::connection_state](/3jSr3fihTyCjq2eTkUKUcw#9211-connection_state-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- #### 11.2.4.2 OnQuotationChange 事件方法 初始化快照資料 及 即時行情變動 事件 細節請參 [mdca_listener::quotation_change](/3jSr3fihTyCjq2eTkUKUcw#9212-quotation_change-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- #### 11.2.4.3 OnHistoryResponse 事件方法 歷史資料查詢訂閱回應 細節請參 [mdca_listener::history_response](/3jSr3fihTyCjq2eTkUKUcw#9213-history_response-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- #### 11.2.4.4 OnQuotationResponse 事件方法 快照行情查詢回傳事件 細節請參 [mdca_listener::quotation_response](/3jSr3fihTyCjq2eTkUKUcw#9214-quotation_response-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- #### 11.2.4.5 OnCommodityResponse 事件方法 商品資訊查詢回傳事件 細節請參 [mdca_listener::commodity_response](/3jSr3fihTyCjq2eTkUKUcw#9215-commodity_response-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- #### 11.2.4.6 OnCommodityChange 事件方法 商品資訊變動回傳事件 細節請參 [mdca_listener::commodity_change](/3jSr3fihTyCjq2eTkUKUcw#9216-commodity_change-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- #### 11.2.4.7 OnContinuousChange 事件方法 連續月資訊變動回傳事件 細節請參 [mdca_listener::continuous_change](/3jSr3fihTyCjq2eTkUKUcw#9217-continuous_change-%E4%BA%8B%E4%BB%B6%E6%96%B9%E6%B3%95),除 Handle 外。 --- ## 11.3 MdcToolkit 工具函式物件 ### 11.3.1 價格處理函式 #### 11.3.1.1 PriceString 方法 價格轉換字串 **函數原型:** ``` string PriceString(CommodityRoot commodity_root, Commodity commodity, double price) ``` **參數:** commodity_root: 商品根物件 commodity: 商品物件 price: 待轉換價格 **返回值:** 轉換出來的價格字串 **例外 (RuntimeErrorException):** 依 [mdca_price_string](/3jSr3fihTyCjq2eTkUKUcw?view#9181-mdca_price_string-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.3.1.2 StringPrice 方法 字串轉換為價格 **函數原型:** ``` double StringPrice(CommodityRoot commodity_root, Commodity commodity, string price) ``` **參數:** commodity_root: 商品根物件 commodity: 商品物件 price: 待轉換價格字串 **返回值:** 轉換出來的價格 **例外 (RuntimeErrorException):** 依 [mdca_string_price](/3jSr3fihTyCjq2eTkUKUcw?view#9182-mdca_string_price-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.3.1.3 PricescaleOffset 方法 價格檔位偏移工具 **函數原型:** ``` double PricescaleOffset(CommodityRoot commodity_root, Commodity commodity, double price, int tick_offset) ``` **參數:** commodity_root: 商品根物件 commodity: 商品物件 price: 待轉換價格字串 tick_offset: 檔位偏移值 **返回值:** 偏移的價格 **例外 (RuntimeErrorException):** 依 [mdca_pricescale_offset](/3jSr3fihTyCjq2eTkUKUcw?view#9183-mdca_pricescale_offset-%E6%96%B9%E6%B3%95) 的Result 產生例外。 ---- #### 11.3.1.4 PricescaleValues 方法 展開價格檔位至價格陣列 **函數原型:** ``` double[] PricescaleValues(double lower_limit_price, double upper_limit_price, CommodityRoot commodity_root, Commodity commodity) ``` **參數:** lower_limit_price: 跌停價 (起始展價的價格) upper_limit_price: 跌停價 (起始展價的價格) commodity_root: 商品根物件 commodity: 商品物件 **返回值:** 價格陣列 **例外 (RuntimeErrorException):** 依 [mdca_pricescale_values](/3jSr3fihTyCjq2eTkUKUcw?view#9184-mdca_pricescale_values-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.3.1.5 PricescaleStrings 方法 展開價格檔位至字串串列 **函數原型:** ``` string[] PricescaleStrings(double lower_limit_price, double upper_limit_price, CommodityRoot commodity_root, Commodity commodity) ``` **參數:** lower_limit_price: 跌停價 (起始展價的價格) upper_limit_price: 跌停價 (起始展價的價格) commodity_root: 商品根物件 commodity: 商品物件 **返回值:** 價格字串陣列 **例外 (RuntimeErrorException):** 依 [mdca_pricescale_strings](/3jSr3fihTyCjq2eTkUKUcw?view#9185-mdca_pricescale_strings-%E6%96%B9%E6%B3%95) 的Result 產生例外。 --- #### 11.3.1.6 PricescaleDetail 方法 取出價格資訊 **函數原型:** ``` void PricescaleDetail(CommodityRoot commodity_root, Commodity commodity, double price, out double integer, out float numerator, out float denominator, out int numerator_decimal_place, out int denominator_digit_place) ``` **參數:** commodity_root: 商品根物件 commodity: 商品物件 price: 價格 integer: 整數 numerator: 分子 denominator: 分母 numerator_decimal_place: 分子小數位數 denominator_digit_place: 分母整數位數 **例外 (RuntimeErrorException):** 依 [mdca_pricescale_detail](/3jSr3fihTyCjq2eTkUKUcw?view#9186-mdca_pricescale_detail-%E6%96%B9%E6%B3%95) 的Result 產生例外。 ## 11.4 MdcCommon 通用資訊物件 ### 11.4.1 Version 方法 函數庫相容版本號 細節請參 [mdca_version](/3jSr3fihTyCjq2eTkUKUcw?view#9111-mdca_version-%E6%96%B9%E6%B3%95)。 ### 11.4.2 FileVersion 方法 函數庫相容版本號 細節請參 [mdca_file_version](/3jSr3fihTyCjq2eTkUKUcw?view#9112-mdca_file_version-%E6%96%B9%E6%B3%95)。 ### 11.4.3 LogFile 方法 設定 Log 檔案路徑及檔名 細節請參 [mdca_log_file](/)。 ### 11.4.4 FileVersion 方法 函數庫相容版本號 細節請參 [mdca_log_flag](/)。 ## 11.5 Mdcs_Quotation 商品行情快照物件 **物件原型:** ``` class Mdcs_Quotation { public string Exchange; /* 交易所 */ public string Commodity; /* 商品代碼 */ public UInt32 UniqueID; /*唯一識別ID */ public Mdcs_Quot_Basic Basic; /* 基本資料 */ public Mdcs_Quot_Deal Deal; /* 成交資料 */ public Mdcs_Quot_Depth Depth; /* 委託簿資料 */ public Mdcs_Depth_Detail Depth_Detail; /* 檔位變動資訊 */ } ``` **說明:** 當 Depth 沒有變動時,Depth_Detial 將為 NULL,當 Depth 有變動時,Depth_Detail 將提供委買(Bids[])、委賣(Asks[]) 委託簿可視(N 檔) 範圍的價量異動資訊清單。 ※ UniqueID 特性請參 [附錄二、UniqueID 應用邏輯與特性](/lSqguQgsQ_W9FmmSMztgBQ#132-%E9%99%84%E9%8C%84%E4%BA%8C%E3%80%81QuotationPtrUniqueID-%E6%87%89%E7%94%A8%E9%82%8F%E8%BC%AF%E8%88%87%E7%89%B9%E6%80%A7) ## 11.6 Mdcs_Depth_Detail 檔位變動資訊物件 **物件原型:** ``` class Mdcs_Depth_Detail { public KeyValuePair<double, uint>[] Asks { get; } /* 委賣變動清單 */ public KeyValuePair<double, uint>[] Bids { get; } /* 委買變動清單 */ } ``` **說明:** 我們使用了 KeyValuePair 來存下價格(Key)、量(Value)的變動資訊,Bids / Asks 為唯讀陣列,當陣列 Length = 0 時,表示該邊委託不存在異動,反之,存在異動的項目,您可依價格Key)、量(Value) 來維護UI,當量為0 時,該價已移出委託視野或因成交消失。 --- ###### tags: `行情API技術文件`