一步一步走了半個月,今天要來實作一個很簡單的選股策略,20 週線選股,概念上類似 CMoney 的長線聚寶盆。
目前兩個主要的 Index 資料內容如下圖:
history-prices-daily 存放每日的收盤資訊,tech-analysis-sma 存放每日的移動平均技術指標,包含 20/60/100 日均價,以及 5/20 日均量。
走硬漢風的工程師,一開始想的應該是直接打兩個 API 分別查出最近一日的收盤價量,與平均值指標。但我打從心底不認為 Elasticsearch 會讓 RD 幹這種事。果然!ES 支援 Multi Index Search:
GET /tech-analysis-sma,history-prices-daily/_search
{
"size": 2,
"sort" : [
{ "date" : {"order" : "desc"}}
],
"query" : {
"match" : { "stock_id": "1101" }
}
}
原來只要在 API 中加個逗點即可喔!把查找到的資料組成 Dataframe 看看:
這樣就可以透過 Pandas 進行選股邏輯運算了。但問題來了,用迴圈打 API 這種方式問題很大啊,不僅查尋時間過長,大量的打 API 本身就是一件奇怪的事情。我得研究一下怎麼優化才行了。
今天在公司被高階主管電爆,寫不出什麼好東西,蓋牌。