[心得] 自建數據分析操盤系統
金融交易變化萬千,到底要怎麼長期穩定賺錢 ?
我想是每個操盤投資人都想解的問題
但真的有規律可尋嗎 ?
某某書寫說看 OOXX 指標金叉做多 勝率 80% 真的嗎 ?
某某老師說 他的程式回測績效超猛 去年賺五倍 現在我租了 也要發了嗎 ?
還是跟著鄉民反著做 聽說勝率很高 ?
以上都是我剛入場時,心裡的疑惑。充滿茫然,不知所措。
既然這樣,身為一個資工系宅宅,乾脆自己用擅長的程式,實做數據分析吧!
那要怎麼做? 要寫 MultiCharts 嗎? 還是自己寫 Excel DDE? C# API?
--
經過了一些嘗試與挫折後
我發現市面上沒有任何一套工具可以滿足我做程式化數據分析的追求
( 可能我的追求比較奇怪 )
所以決定走上一條困難的路
就是從頭到尾 打造一套分析操盤系統
從底層原始資料收集、資訊庫系統、演算法設計、圖表視覺化、網站前端即時呈現
全部動手 DIY 自己做!
https://i.imgur.com/QGlS3WZ.png
--
以下分享這一年來做的工程細節
沒有任何聖杯程式指標 也沒有交易策略
僅為數據分析系統實做經驗談
沒興趣請趕快左轉 XDD
--
首先 交易的 Raw Data 到底是什麼呢 ? K棒嗎 ? 均線 ?
就我目前來看,盤中主要有兩個:成交明細、五檔掛單
https://i.imgur.com/GOYB90D.png
K棒、線、技術指標,都是衍生來的,並非真正原始資料
所以做數據工程,勢必要收集最原始的 data
以台指期來看 每天成交約 6-7萬筆 10-15萬口
如何收集這 幾萬筆 Data 來分析 勢必要透過行情報價API來達成
國內免費的 Tick 報價 我是用群益 C# API
它會以 Callback 形式回傳註冊的商品即時成交明細
那如何蒐集 有系統化的保存這些資料 供接下來分析使用 ?
這時候勢必就把資料庫系統派上用場了
我是用 PostgreSQL 而不是 txt csv 文字檔格式
資料正規化 永續性儲存 對後續分析跟維護 有非常大益處
https://i.imgur.com/zcHVA5J.png
目前抓的商品包含: 大台 小台 周選 月選 指標性權值股 (不知不覺也累積3000萬筆了)
涵蓋大部分人會看 有意義的標的商品
之後要做各種不同的分析 都會有幫助
有報價即時存到資料庫之後 接下來要開始認真要做分析
這邊我選擇我擅長的 Python 來做 而不是直接寫在 C#
畢竟在資料分析的領域 毋庸置疑 Python 是目前最強大的
也為之後要導入 AI / Deep Learning Model 做準備
分析程式部份 目前實做幾個我覺得很有意思的
1. 大戶/散戶 成交累積變化
2. 選擇權均價 / 累積金額
3. 權值股開盤後當天強弱走勢
4. 權值股大單走向
5. 期貨買賣掛單變化
細節就不講了 反正有資料想算什麼都可以 大家有興趣可以自己做
畢竟每個人想看的的分析、操作方式都不一樣
這邊可以看出 如果不自己做系統 現成軟體是很難辦到這些事情的
不論 MC 還是 Excel 都幾乎得不到我要的分析
再者 我真正想做的分析 才剛開始 XD
--
分析演算法寫完之後 就要考慮怎麼呈現 讓K棒會跳 圖表數值會更新
直接 Python Matplotlib 絕對是不行的
寫 Qt/wx GUI 我覺得也不是一個好方法
好在現在網頁 js 前端 有一套很棒的 Lib 就是 TradingView
之前玩比特幣 發現很多交易所都用那套 可以接自己的 API 即時畫圖表
所以大部分指標線圖性質的分析 我都把它寫成 Web REST API
串接 TradingView 可以很縮放流暢的觀看
( 哀 看看現在的券商軟體 跟我小時候看我爸在玩的時候 根本沒什麼改變 ...
非線圖類的分析 就要用 React / Chart.js 來寫了
可以畫圓餅圖、長條圖、泡泡圖等等
一樣先想好要做什麼 怎麼開 Data API 怎麼呈現
像是我覺得把選擇權 Call / Put 對稱上下擺 用長條圖就很棒
--
架構大概是這樣 中間還蠻多坑的 每個環節就是熬夜無數天才搞出來的
也陸續找了一些人 組發開團隊 越弄越大
( 不然後端、DB、前端、演算法、交易操盤、策略分析 一個人吃不下啊 XD
POST INSERT
C# Quote API ------> Python Django --------> PostgreSQL
SELECT GET
PostgreSQL --------> Numpy / Pandas ---> Django REST API -----> TradingView
-----> React/Chart.js
^
DLL |
MC 策略 ------> Firebase DB ----------------------------------*
然後 ... 最近又開始大改版了 因為這樣無法達到 Realtime 的速度
所以開始接 Redis / RabbitMQ 同時雙 DB 雙報價源備援 避免群益 API 會斷線/漏資料
之後導入 WebSocket 推播 也會比 Polling 更有效率
同時也開始弄下單機 取代 MC 這個讓我很不爽的東西 ...
搭配 LINE Bot 監控觸發推播 部位風險計算警示等等
終極目標: 全功能網頁版分析操盤系統 + 進階演算法自動下單 + 風控系統
大概是這樣 一點心得 供大家參考
只能說 做這個真的很累 非誠勿試
光是搞 Infrastructure 就弄半天
到底什麼時候可以重新回歸 專心開發 Algo Trade 呢
還有更深奧的 AI / Deep Learning Model
找了幾篇 paper 一直沒時間去實做 都快要忘記 TensorFlow 怎麼寫了 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.34.162
※ 文章網址: https://www.ptt.cc/bbs/Option/M.1522658603.A.057.html
推
04/02 16:45,
6年前
, 1F
04/02 16:45, 1F
推
04/02 16:46,
6年前
, 2F
04/02 16:46, 2F
※ cory8249:轉錄至看板 Trading 04/02 16:47
→
04/02 16:47,
6年前
, 3F
04/02 16:47, 3F
推
04/02 16:47,
6年前
, 4F
04/02 16:47, 4F
推
04/02 17:01,
6年前
, 5F
04/02 17:01, 5F
推
04/02 17:15,
6年前
, 6F
04/02 17:15, 6F
推
04/02 17:26,
6年前
, 7F
04/02 17:26, 7F
推
04/02 17:26,
6年前
, 8F
04/02 17:26, 8F
推
04/02 17:31,
6年前
, 9F
04/02 17:31, 9F
推
04/02 17:33,
6年前
, 10F
04/02 17:33, 10F
推
04/02 17:38,
6年前
, 11F
04/02 17:38, 11F
推
04/02 17:45,
6年前
, 12F
04/02 17:45, 12F
推
04/02 17:48,
6年前
, 13F
04/02 17:48, 13F
我打日內波段當沖 自認還算可以 關鍵多空轉折 分析都有抓到
不過的確 有可能花一堆時間做系統、分析
最後研究不出什麼東西 搞半天沒賺錢
那這樣就 ... 真的是技不如人 或是搞錯方向 只能好好反省檢討囉 XD
※ 編輯: cory8249 (218.161.34.162), 04/02/2018 17:54:15
推
04/02 17:50,
6年前
, 14F
04/02 17:50, 14F
推
04/02 17:51,
6年前
, 15F
04/02 17:51, 15F
→
04/02 17:56,
6年前
, 16F
04/02 17:56, 16F
推
04/02 18:04,
6年前
, 17F
04/02 18:04, 17F
推
04/02 18:12,
6年前
, 18F
04/02 18:12, 18F
推
04/02 18:13,
6年前
, 19F
04/02 18:13, 19F
推
04/02 18:17,
6年前
, 20F
04/02 18:17, 20F
推
04/02 18:21,
6年前
, 21F
04/02 18:21, 21F
推
04/02 18:21,
6年前
, 22F
04/02 18:21, 22F
推
04/02 18:25,
6年前
, 23F
04/02 18:25, 23F
推
04/02 18:25,
6年前
, 24F
04/02 18:25, 24F
推
04/02 18:25,
6年前
, 25F
04/02 18:25, 25F
推
04/02 18:26,
6年前
, 26F
04/02 18:26, 26F
→
04/02 18:26,
6年前
, 27F
04/02 18:26, 27F
推
04/02 18:53,
6年前
, 28F
04/02 18:53, 28F
推
04/02 19:09,
6年前
, 29F
04/02 19:09, 29F
推
04/02 19:11,
6年前
, 30F
04/02 19:11, 30F
推
04/02 19:13,
6年前
, 31F
04/02 19:13, 31F
→
04/02 19:13,
6年前
, 32F
04/02 19:13, 32F
→
04/02 19:14,
6年前
, 33F
04/02 19:14, 33F
推
04/02 19:31,
6年前
, 34F
04/02 19:31, 34F
推
04/02 19:35,
6年前
, 35F
04/02 19:35, 35F
推
04/02 19:44,
6年前
, 36F
04/02 19:44, 36F
推
04/02 19:57,
6年前
, 37F
04/02 19:57, 37F
還有 19 則推文
還有 3 段內文
→
04/03 00:55,
6年前
, 57F
04/03 00:55, 57F
→
04/03 00:56,
6年前
, 58F
04/03 00:56, 58F
→
04/03 00:57,
6年前
, 59F
04/03 00:57, 59F
→
04/03 00:58,
6年前
, 60F
04/03 00:58, 60F
→
04/03 00:58,
6年前
, 61F
04/03 00:58, 61F
→
04/03 00:59,
6年前
, 62F
04/03 00:59, 62F
→
04/03 01:00,
6年前
, 63F
04/03 01:00, 63F
差不多是這個意思 先花半年多建一套基礎設施 蒐集 data
邊做邊弄一些基礎的研究 接下來才真正開始做比較進階的分析
當然想看歷史委託掛單 五檔 純粹是我真的不知道 高頻造市跟法人是如何操作的
或許研究後才發現 我想錯了 這樣對之後分析模型也會有很多啟發
我是認真想打造高規格研究環境 而且要是 Realtime 呈現
不然盤後跑跑 script 靜態分析 對我來說是不太夠
※ 編輯: cory8249 (218.161.34.162), 04/03/2018 01:04:59
推
04/03 01:05,
6年前
, 64F
04/03 01:05, 64F
→
04/03 01:05,
6年前
, 65F
04/03 01:05, 65F
→
04/03 01:08,
6年前
, 66F
04/03 01:08, 66F
→
04/03 01:08,
6年前
, 67F
04/03 01:08, 67F
→
04/03 01:09,
6年前
, 68F
04/03 01:09, 68F
→
04/03 01:10,
6年前
, 69F
04/03 01:10, 69F
我是剛準備要畢業的窮學生 老家住南部鄉下 一坪 5萬 XD
這個是跟朋友一起弄的 人家本業有賺錢 拿一點來玩期貨
反正投資本來就要繳學費 與其繳給市場 或是買一些沒用的軟體
不如做一些比較長遠有價值的事情
這是我們的信念啦~ 也可能到頭來只是一場夢
就跟交易一樣 還沒出場之前 誰能笑到最後還不知道
但大家都很愛來玩這個賽局 不是嗎 ? 即便已知贏家是小眾中的小眾
※ 編輯: cory8249 (218.161.34.162), 04/03/2018 01:21:59
推
04/03 01:22,
6年前
, 70F
04/03 01:22, 70F
→
04/03 01:23,
6年前
, 71F
04/03 01:23, 71F
→
04/03 01:23,
6年前
, 72F
04/03 01:23, 72F
→
04/03 01:24,
6年前
, 73F
04/03 01:24, 73F
→
04/03 01:24,
6年前
, 74F
04/03 01:24, 74F
是呀 軟體系統本身有其價值
如果有人覺得很棒想買 我賣它也能賺點錢 何樂不為 ?
會有問題的是 買方"被騙去買"
以為撿到寶 實際用才發現是個垃圾
這種我是覺得就很差勁
這套系統 當然不是為了做而做
而是看到未來的價值 值得我投入大量時間心力
※ 編輯: cory8249 (218.161.34.162), 04/03/2018 01:36:36
推
04/03 01:28,
6年前
, 75F
04/03 01:28, 75F
推
04/03 01:49,
6年前
, 76F
04/03 01:49, 76F
推
04/03 09:10,
6年前
, 77F
04/03 09:10, 77F
→
04/03 09:11,
6年前
, 78F
04/03 09:11, 78F
→
04/03 09:11,
6年前
, 79F
04/03 09:11, 79F
推
04/03 09:42,
6年前
, 80F
04/03 09:42, 80F
→
04/03 10:54,
6年前
, 81F
04/03 10:54, 81F
推
04/03 14:38,
6年前
, 82F
04/03 14:38, 82F
→
04/03 14:39,
6年前
, 83F
04/03 14:39, 83F
推
04/03 17:10,
6年前
, 84F
04/03 17:10, 84F
推
04/03 19:00,
6年前
, 85F
04/03 19:00, 85F
→
04/03 19:00,
6年前
, 86F
04/03 19:00, 86F
→
04/03 19:00,
6年前
, 87F
04/03 19:00, 87F
推
04/03 19:25,
6年前
, 88F
04/03 19:25, 88F
推
04/06 01:43,
6年前
, 89F
04/06 01:43, 89F
→
05/03 22:15,
6年前
, 90F
05/03 22:15, 90F
推
05/03 22:27,
6年前
, 91F
05/03 22:27, 91F
推
05/03 22:29,
6年前
, 92F
05/03 22:29, 92F
推
11/07 11:01,
5年前
, 93F
11/07 11:01, 93F
討論串 (同標題文章)