近一個月以來,投入 goristock 開發時間突然的增加,我覺得 v0.3 這一版本還滿多可以和大家分享的東西,所以在這裡向大家介紹。
首先關於 XMPP 的部份,新增了兩個重要的功能:計算機與新聞搜尋。
計算機
有的時候在看股票會去計算股價買賣手續費的問題,怕自己的帳戶錢不夠,或者是簡單計算獲利狀況。在這之前都要拿台計算機在旁邊計算,所以就想,何不就加入計算機的功能在 XMPP 中。因此現在只要打上 cal <算式> 就會回傳計算結果。另外也可以計算買、賣股票時,實際應付、應收的金額,只要輸入 cal buy <公告股價>(買),cal sell <公告股價>(賣)
新聞搜尋
新聞搜尋部份則使用 Google News Search API,調整成以台灣、財經為主的新聞搜尋。相關的查詢方式可以參考使用說明。
goristock.py
在 goristock 主程式部份,之前只有依據各股收盤價來計算相關的均價分析,但未來是要朝向看盤系統的目標開發,所以將各股基本的開盤、最高、最低資料也納入核心程式中,核心程式的資料也就較完整些。
memcache 快取
在 v0.2 中加入 memcache(memcached) 快取的機制,可以將抓取的資料暫時放到快取中,當下次查詢時就不用再到證交所去抓資料,減少等待排隊取資料的時間。當初構想希望可以在空閒時間時,程式透過 GAE 幫忙建立快取資料。但是卻因為如此,會發生在當日收盤、盤後盤之後(14:30)抓不到當日最新的股價資訊。
這狀況我測試了很久,不管是用丟棄快取然後重新建立,或是在某一時間直接向證交所抓取資料,當還是沒有辦法解決這樣的問題。也試著嘗試詢問 GAE groups,但似乎是伺服器端的問題,它不理你就沒有辦法。
不過最後我還是回去重新觀察證交所網站,發現一個很特別的網址,當我們送出查詢的時候,證交所會導向一個頁面後,推測應該是資料處理的頁面。處理完畢後才導向最後呈現資料的頁面。
換句話說,只要觸發那個處理資料的頁面,就可以抓取到最新的資料,而不會發生伺服器端的快取問題。也就這樣,資料抓取、快取的問題就解決了!過程真的很好玩,一步步找出關鍵的問題點。詳細的 code 可以參考這裡。
API
最後 v0.3 版應觀眾要求,加入 API 服務。之前用過不少其他的 API,但就是沒寫過,參考了滿多的 API 寫作方式、資料提供格式,暫時寫出最基本的 API 服務,也盡快釋出給大家,希望能從大家那裡收取多一點意見。如果想要提供意見可以參考 Dev 建議的方式反應,感謝。
Next, about v0.4
那下一版本呢?下一版的 goristock 設定目標是將完成基本的網頁版功能、圖表呈現、個人頁面紀錄。恩,所以看起來還滿多需要 working 的!當然還是歡迎大家給我點意見吧!或許會列入未來開發的目標!
首先關於 XMPP 的部份,新增了兩個重要的功能:計算機與新聞搜尋。
計算機
有的時候在看股票會去計算股價買賣手續費的問題,怕自己的帳戶錢不夠,或者是簡單計算獲利狀況。在這之前都要拿台計算機在旁邊計算,所以就想,何不就加入計算機的功能在 XMPP 中。因此現在只要打上 cal <算式> 就會回傳計算結果。另外也可以計算買、賣股票時,實際應付、應收的金額,只要輸入 cal buy <公告股價>(買),cal sell <公告股價>(賣)
新聞搜尋
新聞搜尋部份則使用 Google News Search API,調整成以台灣、財經為主的新聞搜尋。相關的查詢方式可以參考使用說明。
goristock.py
在 goristock 主程式部份,之前只有依據各股收盤價來計算相關的均價分析,但未來是要朝向看盤系統的目標開發,所以將各股基本的開盤、最高、最低資料也納入核心程式中,核心程式的資料也就較完整些。
memcache 快取
在 v0.2 中加入 memcache(memcached) 快取的機制,可以將抓取的資料暫時放到快取中,當下次查詢時就不用再到證交所去抓資料,減少等待排隊取資料的時間。當初構想希望可以在空閒時間時,程式透過 GAE 幫忙建立快取資料。但是卻因為如此,會發生在當日收盤、盤後盤之後(14:30)抓不到當日最新的股價資訊。
這狀況我測試了很久,不管是用丟棄快取然後重新建立,或是在某一時間直接向證交所抓取資料,當還是沒有辦法解決這樣的問題。也試著嘗試詢問 GAE groups,但似乎是伺服器端的問題,它不理你就沒有辦法。
不過最後我還是回去重新觀察證交所網站,發現一個很特別的網址,當我們送出查詢的時候,證交所會導向一個頁面後,推測應該是資料處理的頁面。處理完畢後才導向最後呈現資料的頁面。
換句話說,只要觸發那個處理資料的頁面,就可以抓取到最新的資料,而不會發生伺服器端的快取問題。也就這樣,資料抓取、快取的問題就解決了!過程真的很好玩,一步步找出關鍵的問題點。詳細的 code 可以參考這裡。
API
最後 v0.3 版應觀眾要求,加入 API 服務。之前用過不少其他的 API,但就是沒寫過,參考了滿多的 API 寫作方式、資料提供格式,暫時寫出最基本的 API 服務,也盡快釋出給大家,希望能從大家那裡收取多一點意見。如果想要提供意見可以參考 Dev 建議的方式反應,感謝。
Next, about v0.4
那下一版本呢?下一版的 goristock 設定目標是將完成基本的網頁版功能、圖表呈現、個人頁面紀錄。恩,所以看起來還滿多需要 working 的!當然還是歡迎大家給我點意見吧!或許會列入未來開發的目標!
留言
張貼留言