2014年7月22日

股市自動交易系統(半完成品) - JavaATS設計與使用

這篇開始,會分幾篇將JavaATS進行解說,第一篇先描述設計的使用方式。

JavaATS設計:
JavaATS的核心是一個Schedule Server,可以設定多個(理論上無限多)Task,
每個Task可以各自定時,時間到時會自動被呼叫執行。
Task就是1個1個的BeanShell Script,每次時間到,都會被呼叫執行1次。
上述的JavaATS描述,其執行示意如下圖:
整個JavaATS的設定,包括:
1. JavaATS啟動時是否執行Init Script?
2. 有哪些Task需要執行?這些Task的執行時間?執行的BeanShell檔案是?
3. MySQL Server資訊設定
4. IM的帳號、密碼、傳訊對象設定
5. NDDEAgent資訊設定

這些資訊全部都紀錄在1個XML設定檔中,並在JavaATS啟動時載入。

JavaATS使用:
JavaATS啟動:
java -jar JavaATSServer.jar [config.xml]

執行畫面如下:

程式啟動後,便會載入Config的XML檔案,從XML檔案裡面取得相關設定,
之後便會根據設定的資料開始定期執行.bsh程式。

以上述畫面中,我測試的設定,JavaATS會執行2個Script,
1個是Init.bsh,另1個是DollarCostAveraging.bsh。

Init.bsh會在系統啟動後執行,
DollarCostAveraging.bsh會每分鐘執行。

Config設定檔如果沒有填,預設會讀取目前目錄下的config.xml。

Config檔案:
Config檔案是一個標準的XML檔案,只要符合XML規格,
可以用文字檔編輯,檔案格式必須是UTF-8。

XML格式畢竟不是給人看的,因此,我另外寫了一個專門設定的UI程式,叫JavaATSGUI。

在視窗(Windows/Linux皆可)下執行:
java -jar JavaATSGUI.jar

執行畫面如下:


可以透過Load將某個Config XML載入,修改後按Save儲存。
也可以直接填寫資訊後,按Save儲存成某個Config XML檔案。

以我測試中的config.xml為例,載入後截圖如下:

檔案下載:
https://www.openfoundry.org/of/projects/2518/download

目前版本MSN的相關設定和功能都還在,
在整個整理完畢上傳後,
會開始修改這個部份,將MSN功能移除,加上Pushbullet支援。

1 則留言:

小爪哇 提到...

給你加加油~
裡頭有些部份我很有興趣,找個時間把環境弄起來試試~