2016年5月4日 星期三

腳本系統架構

先談一下何謂API(程式介面),舉例來說,我寫了一個功能強大的程式,在你的程式中想要用我程式中的某些功能,這時候透過的就是所謂的API,即程式與程式間的接合介面。我們先看一下哪些部份有提供API讓腳本使用。

java-api:Java語言原生的程式介面。

ac-api:AC系統提供給使用者開發Plugin(外掛)的程式介面。
acs-api:AC系統提供給使用者開發腳本的程式介面。

plugin-api:Plugin(外掛)提供給使用者開發腳本的程式介面。

library-api:使用者自行設計、或第三方提供給使用者開發腳本的程式介面。



(API一詞我們稱"介面",對岸稱做"接口",聽慣了也算蠻貼切的。)

這五個方塊中只有"腳本、Library、Plugin"是使用者能夠加以開發設計的,而Java與AC System就相當於是我們的執行平台,提供介面(接口)的。

腳本
腳本其實就是一個能與AC System結合的Java程式,保有原本Java的特性又有適合做金融分析的程式介面。上圖可以看到四個淺藍色的箭頭,就是腳本能夠使用的介面,其中Java-api與acs-api是有文件可以查詢的,但plugin跟library因為比較靈活多變,就只能看程式碼查詢了,但比較常用的部份我還是會寫教學的。

---

Library(程式/函式庫)
所謂library就像是一個人,腦袋裝不了所有的知識學問,但有需要的話只要上'圖書館'就萬事OK了。把一些有獨立功能的腳本放到library裡,讓其他的腳本也能借閱,就是library的功能,本身其實也是腳本,只是沒有"程式的進入點",只能被動的被使用。

現在的AC中就有一個非常重要的library,就是CustomCore,CustomCore裡寫好了指標及圖形介面,所以主腳本(MyScript)都會繼承CustomCore,因為繼承後該有的東西就大概都有了,省時省力。

---

Plugin(外掛)
外掛程式是一個能與AC同時執行的程式,執行期間能透過ac-api向AC要求資料或進行命令,最常用的介面大概就是操作資料庫寫入報價之類。

另一個方面,外掛還可以提供介面讓腳本使用,舉例說,我可以寫一個腳本透過即時報價的外掛取得某個標的物的內外盤價、掛單量等。通常這些介面都是跟外掛本身的功能有關,不然直接寫library就可以了。

沒有留言:

張貼留言

本人僅以個人知識經驗分享,多所無知,難免有錯,還請見諒。