2017年7月5日 星期三

下單模組- B. 元大下單API

元大下單API是採用元件物件模型(Component Object Model),這是上世紀九零年代微軟所發展的一套規範,它制定了用戶端程式與及元件間溝通的介面,以達到相互操作(interoperability)所應共同遵循的一套標準。在使用該元件之前,必須先向作業系統註冊,元大下載的檔案裏有一個install_YTFutOrdAP.bat檔可用來執行此動作,但記得使用系統管理員身分執行。


同樣的原因,Java不能直接調用COM,在這邊我是使用JACOB(Java COM Bridge),其下載點: https://sourceforge.net/projects/jacob-project/






上圖第17行中『Yuanta.YuantaOrdCtrl.64』是元大下單元件在註冊表中的名稱。第20行用了一個DispatchProxy的類別,這個類別的作用是在兩個執行緒間傳送COM物件。這一行程式花了我大概一個月的時間,原因是JACOB這套件的API文件寫得不清楚,許多用法都要花時間去試,加上當初我對元件物件模型的運作原理不是很瞭解,因此不明白client端的介面指標無法直接指到物件的介面,必須透過proxy介面作傳送。如果有人不看我的程式碼,能在一個月內把程式寫出來,希望給我個電郵,咱們交個朋友吧。

36~40行是期貨委託的參數,總共15個參數須傳送,一個也不能少,就算是不必填的參數也要用空白傳送,算是蠻麻煩的。目前我也只想到把它寫成方法,以減少不必要的參數,但若要傳送多筆委託,這樣的寫法還是很不方便。


1 個意見:

2018年9月18日 清晨7:58 , Blogger Unknown 提到...

大大,非常感謝無私的分享

 

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁