作者cory8249 (Cory)
看板Trading
标题Fw: [心得] 自建数据分析操盘系统
时间Mon Apr 2 16:47:01 2018
※ [本文转录自 Option 看板 #1QmUqh1N ]
作者: cory8249 (Cory) 看板: Option
标题: [心得] 自建数据分析操盘系统
时间: Mon Apr 2 16:43:21 2018
金融交易变化万千,到底要怎麽长期稳定赚钱 ?
我想是每个操盘投资人都想解的问题
但真的有规律可寻吗 ?
某某书写说看 OOXX 指标金叉做多 胜率 80% 真的吗 ?
某某老师说 他的程式回测绩效超猛 去年赚五倍 现在我租了 也要发了吗 ?
还是跟着乡民反着做 听说胜率很高 ?
以上都是我刚入场时,心里的疑惑。充满茫然,不知所措。
既然这样,身为一个资工系宅宅,乾脆自己用擅长的程式,实做数据分析吧!
那要怎麽做? 要写 MultiCharts 吗? 还是自己写 Excel DDE? C# API?
--
经过了一些尝试与挫折後
我发现市面上没有任何一套工具可以满足我做程式化数据分析的追求
( 可能我的追求比较奇怪 )
所以决定走上一条困难的路
就是从头到尾 打造一套分析操盘系统
从底层原始资料收集、资讯库系统、演算法设计、图表视觉化、网站前端即时呈现
全部动手 DIY 自己做!
https://i.imgur.com/QGlS3WZ.png
https://i.imgur.com/398CbpW.png
https://i.imgur.com/ZRMY8Bp.png
--
以下分享这一年来做的工程细节
没有任何圣杯程式指标 也没有交易策略
仅为数据分析系统实做经验谈
没兴趣请赶快左转 XDD
--
首先 交易的 Raw Data 到底是什麽呢 ? K棒吗 ? 均线 ?
就我目前来看,盘中主要有两个:成交明细、五档挂单
https://i.imgur.com/GOYB90D.png
K棒、线、技术指标,都是衍生来的,并非真正原始资料
所以做数据工程,势必要收集最原始的 data
以台指期来看 每天成交约 6-7万笔 10-15万口
如何收集这 几万笔 Data 来分析 势必要透过行情报价API来达成
国内免费的 Tick 报价 我是用群益 C# API
它会以 Callback 形式回传注册的商品即时成交明细
那如何蒐集 有系统化的保存这些资料 供接下来分析使用 ?
这时候势必就把资料库系统派上用场了
我是用 PostgrSQL 而不是 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://webptt.com/cn.aspx?n=bbs/Option/M.1522658603.A.057.html
1F:推 cc45612: 先推不然别人会发现我看不懂 04/02 16:45
2F:推 mummyqq: 还好我看的懂, 技术上是还好 不过全部做完是个大坑 04/02 16:46
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: cory8249 (218.161.34.162), 04/02/2018 16:47:01
3F:→ leolarrel: 我韧体的我看不懂 04/02 19:00
4F:推 firegreen: 原po太强大了,做成这样真的很猛,我用R做,可是没那麽 04/02 20:07
5F:→ firegreen: 多功能 04/02 20:07
6F:推 ketrobo: 做这很累,加油 04/02 20:40
7F:推 Genki626: 先给Cory大推一个 04/02 20:44
8F:推 chenbigdog: 弄这些东西出来能赚钱吗???我觉得是重点耶…(非吐潮) 04/02 22:20
赚不赚钱倒是还好 这套系统的价值 我自己知道 :)
9F:→ passionyeh: 所以你打造了一个看盘+下单+历史数据系统,令人佩服 04/02 23:43
基本上是哦 目标是全功能操盘系统 以後可以不用开券商软体了 XD
※ 编辑: cory8249 (218.161.34.162), 04/03/2018 00:54:15
10F:推 dodo222kimo: 感觉有点深奥 04/03 09:43
11F:→ passionyeh: 如果可以开发成类似像Quantopia的环境给大家开发台股 04/03 13:45
12F:→ passionyeh: 程式交易就好了.国内的MC又差又贵,与其浪费时间在台股 04/03 13:46
13F:→ passionyeh: 不如去国外一堆免费平台开发(基本上免费,进阶要收费) 04/03 13:47
14F:嘘 sbluo: 这些分析TS或MC都做得到,专心开发Algo Trade找到自己的ed 04/03 22:03
15F:→ sbluo: ge才是重中之重,除非你只是要卖股市分析软体。写algo时会 04/03 22:03
16F:→ sbluo: 反过来思考要用那种分析才有edge?适合自己的risk管理?何 04/03 22:03
17F:→ sbluo: 处加码或停利停损?等这些都找到後你会发现这时的分析跟当 04/03 22:03
18F:→ sbluo: 初想的已经很不一样。 04/03 22:03
19F:推 vesta9: 如果您的初衷是数据分析,旁观来看似乎有些本末倒置了。 04/04 00:30
20F:→ vesta9: 不管是要朝视觉化还是深度学习,花一个晚上把 raw data 04/04 00:30
21F:→ vesta9: 准备好其实就可以开始了 04/04 00:30
22F:推 Czero: 写这个真的很累...推一个,感觉真的可以卖给券商了... 04/08 23:09
23F:→ Czero: 现在看盘软体真的很烂,跟过去比完全没进步... 04/08 23:10
24F:→ ninggo: 我也做了一套 结果…还是没赚钱 04/11 03:09
25F:推 asoedarren: 为了要喝自己想喝的牛奶 养了一头牛 辛苦你了 04/13 08:48
26F:推 gncn: 要不要顺便开间公司 卖你的服务或软体? XD 04/15 10:08
27F:推 sma1033: 现成软体限制很多,自己做系统有其价值,大大有考虑卖? 04/19 04:09
28F:→ sma1033: 小弟也自己想写演算法,但是进阶一点的似乎都非得自己做 04/19 04:11
29F:→ sma1033: 一套framework,现成的限制一大堆,要做复杂东西很有难度 04/19 04:12
30F:推 vesta9: 卷商有提供 api 可以收 raw data 可以下 order 就够了, 04/19 11:51
31F:→ vesta9: 限制在哪里?有心踏入演算法,用一些 data science 的 li 04/19 11:51
32F:→ vesta9: brary 从 raw data 去发展,何必用别人的框架?舍简取繁 04/19 11:51
33F:→ vesta9: 作茧自缚,不懂 04/19 11:51
34F:推 ilovetaniji: 这太强了,要推! 04/21 08:50
35F:推 vixplayer: 认真给推,我们交易室老大也是自己弄了一套 04/25 07:20
36F:推 hakk: 光看就觉得好厉害 05/03 22:14
37F:推 superpat: 太强 05/13 10:13
38F:推 sunhero: 太强大了 05/24 07:16
39F:推 israelii: 我觉得你可以卖软体了 板上应该很多人会买 06/17 17:47
40F:→ shaomi: 问一下 不玩比特币了吗 07/11 21:43
41F:推 gofigure: 你可以认真考虑找创业夥伴再拉金主 做成服务型产品 07/17 08:00
42F:推 FatCowboy: 推 10/02 07:27