iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
Elastic Stack on Cloud

Elastic 戰台股系列 第 16

[Day16] 選股策略實作 - Multi Index Search

一步一步走了半個月,今天要來實作一個很簡單的選股策略,20 週線選股,概念上類似 CMoney 的長線聚寶盆。

資料檢視

目前兩個主要的 Index 資料內容如下圖:
https://ithelp.ithome.com.tw/upload/images/20200928/20129624FBao1k3H4V.png
history-prices-daily 存放每日的收盤資訊,tech-analysis-sma 存放每日的移動平均技術指標,包含 20/60/100 日均價,以及 5/20 日均量。

Multi Index Search

走硬漢風的工程師,一開始想的應該是直接打兩個 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 看看:
https://ithelp.ithome.com.tw/upload/images/20200928/20129624eHsCFiyYdb.png

這樣就可以透過 Pandas 進行選股邏輯運算了。但問題來了,用迴圈打 API 這種方式問題很大啊,不僅查尋時間過長,大量的打 API 本身就是一件奇怪的事情。我得研究一下怎麼優化才行了。 

今天在公司被高階主管電爆,寫不出什麼好東西,蓋牌。


上一篇
[Day15] 修改 Index 的正確姿勢
下一篇
[Day17] 選股策略實作 - Multi Search API
系列文
Elastic 戰台股30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言