作者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 形式回传注册的商品即时成交明细
那如何蒐集 有系统化的保存这些资料 供接下来分析使用 ?
这时候势必就把资料库系统派上用场了
我是用 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://webptt.com/cn.aspx?n=bbs/Option/M.1522658603.A.057.html
1F:推 cc45612: 先推不然别人会发现我看不懂 04/02 16:45
2F:推 mummyqq: 还好我看的懂, 技术上是还好 不过全部做完是个大坑 04/02 16:46
※ cory8249:转录至看板 Trading 04/02 16:47
3F:→ feita5566: 真的是看不懂,这用来玩当冲还是波段呢 04/02 16:47
4F:推 ZhouGongJin: 真的不容易...给个推 04/02 16:47
5F:推 hinabi: 辛苦了给推 04/02 17:01
6F:推 bohun: cory哥猛猛的 04/02 17:15
7F:推 walhalla: 高手推 04/02 17:26
8F:推 john668: 重点还是要能赚钱 不要全完善了还是没找到赚钱方法 04/02 17:26
9F:推 gn00295120: 这是用来搜集资料的 赞 04/02 17:31
10F:推 jensol: = = 04/02 17:33
11F:推 kolinru: 你这套做完拿出来卖应该就可以赚钱 04/02 17:38
12F:推 hermithsieh: C大必推 04/02 17:45
13F:推 naginagi: 高手 (拜 04/02 17:48
我打日内波段当冲 自认还算可以 关键多空转折 分析都有抓到
不过的确 有可能花一堆时间做系统、分析
最後研究不出什麽东西 搞半天没赚钱
那这样就 ... 真的是技不如人 或是搞错方向 只能好好反省检讨罗 XD
※ 编辑: cory8249 (218.161.34.162), 04/02/2018 17:54:15
14F:推 Destery: 先给推 能卖也有绩效的话 应该是不错 04/02 17:50
15F:推 zxc2051516: 大神好,看不懂qwq 04/02 17:51
16F:→ kindheart: 用心推 04/02 17:56
17F:推 zikamilo: 感谢分享 04/02 18:04
18F:推 Befine: 卖系统功能就赚翻了 04/02 18:12
19F:推 aaadult: 放在github上 我给你star XDD 04/02 18:13
20F:推 Altair: 真的 拿来卖就赚翻了 应该可打爆大部分市售软体 04/02 18:17
21F:推 mummyqq: 建议可以做成online版 收月租费 绩效应该屌打买股 04/02 18:21
22F:推 john668: 倒是真的做出来我也有兴趣买 XD 04/02 18:21
23F:推 cobrasgo: 是个喜欢动手做的朋友呢 04/02 18:25
24F:推 stock123: 推,用心! 04/02 18:25
25F:推 Lowpapa: 要真能赚钱才是好东西 不然就是shit 加油 04/02 18:25
26F:推 iceberg: 推,我也正在自建Python期货分析系统 04/02 18:26
27F:→ cobrasgo: 我也搞了一套,有时间可以交流一下 04/02 18:26
28F:推 V1512: 拿来卖啦,快打爆mc 04/02 18:53
29F:推 poker0531: 先推个 大工程 04/02 19:09
30F:推 aa072012: 高手! 04/02 19:11
31F:推 lrm549: 我想既不如人是一回事 但这套能卖钱是肯定的 推个试用版 04/02 19:13
32F:→ lrm549: 给版友用 04/02 19:13
33F:→ lrm549: 用订阅制的 应该就够赚了 04/02 19:14
34F:推 sde7w9xzo: 已经可以卖软体了,接下来只差找个帮你行销的投顾 04/02 19:31
35F:推 kevin5: 研发策略或许先做比较好QQ 04/02 19:35
36F:推 AlexLeee: K5哥佛心 04/02 19:44
37F:推 ssdog: 做好这套 就屌打MC 你光卖软体就身价数十亿了 还写啥策略 04/02 19:57
商业化部份 当然是有认真在考虑
不过板规有说不能广告业配 所以这边就... 纯分享技术 XDD
讲实话蛮困难的 弄到现在累积开销也百万了 都是烧钱烧时间
虽然我觉得外面大部分软体都很废
随便写个 KD 还是均线 金叉死差 就叫多空指标
但是不得不说 一般人是不会 care
大部分只看招生广告 随便贴个对帐单 学员见证 OOXX
或是包装一下 随便调 over-fitting 参数的 MC 策略 说自己是 AI
什麽秒赚 必来点 下单机 .. 反正越唬烂越有人信
系统有系统的价值 ( MC XQ TradingView )
研究有研究的价值 ( 法人研究部报告 学术 Paper 期刊 )
帐户权益数又是另一回事 ( $$$$$ )
我觉得这几项是分开来看的
当然最理想是写几套策略後 躺着赚 这是最终努力的目标
但是也挺难的 毕竟交易变数真的太多
市场随时在变 分析方法也会持续精进
我们有各种 MC 策略 自己平常盯盘 主观交易 + 数据分析 打当冲
K线型态价量理论 不敢说很精通 但绝对也看几十本书 花上千小时研究过
平常也在 Option 板看看高手们的分享讨论 我觉得都很棒
有讨论有成长 活着不要死掉 才是真的
祝大家都能赚钱 之後有空再放一些分析跟研究出来 请大家多指教
※ 编辑: cory8249 (218.161.34.162), 04/02/2018 20:32:53
38F:推 mouthwang: 推一波 04/02 20:05
39F:推 kain777: 怎麽这麽像tradeview 04/02 20:22
40F:推 lrm549: 因为他介面就是 04/02 20:41
是呀 去官网申请一下 charting lib 就可以接自己报价来用了 这套很棒
※ 编辑: cory8249 (218.161.34.162), 04/02/2018 20:57:43
41F:推 s3bck: 推 04/02 21:20
43F:→ mepowerlmay: 笑了一下 04/02 22:01
44F:推 zap7042: 推一个,加油! 04/02 22:17
45F:→ yzfr6: 为何用 PostgreSQL? 04/03 00:22
46F:推 trader888: 推 04/03 00:24
47F:推 kdfc95: 推 04/03 00:38
48F:嘘 darkMood: postgreSql强大又免费啊,很多公司用啊 04/03 00:40
49F:→ darkMood: MC没有有些无知的人眼中那麽烂啦,打造自己的系统容易 04/03 00:41
50F:→ darkMood: 打造一个给卖给别人打造系统的系统难多啦 04/03 00:41
51F:→ darkMood: 原po这东西说起来拿钱就堆得出来啊,那些分析又没啥新玩 04/03 00:41
52F:→ darkMood: 意,动不动就原始资料有多伟大,其实没那回事啦,至於 04/03 00:42
53F:→ darkMood: 程式的部份你花钱,满街都是只会写程师的工程师啦 04/03 00:42
54F:→ darkMood: 反正又是一个爱证明自己很会写程式/软体的人啊...... 04/03 00:43
MC 会让我用到不爽 是一天到晚当机 喷 error
一堆奇怪的 bug 凯卫也不修 小秘书 NPC 只会回说 帮你远端唷~
报价常断 各种不稳 下单机有 bug
觉得买专业版根本浪费钱 ...
这个市场一摊死水 大家都在摆烂 我也很无奈 只好自己来做罗
※ 编辑: cory8249 (218.161.34.162), 04/03/2018 00:51:59
55F:→ darkMood: 人家MC赚爽爽,你写程式软体写爽爽,就这样。 04/03 00:44
56F:推 BoyPlunger: 期待你实单 成为让期货商後台注目的焦点 04/03 00:55
57F:→ BoyPlunger: 目前看起来就是一个pure工程师架设让人崇拜的交易系统 04/03 00:55
58F:→ BoyPlunger: 你分析程式的部分已经有不少人做过研究了 04/03 00:56
59F:→ BoyPlunger: 等於你打掉全台期货商的软体自建一套看盘软体 04/03 00:57
60F:→ BoyPlunger: 你说的看到市场单子怎麽挂上去的挂哪个价格大户心态 04/03 00:58
61F:→ BoyPlunger: 等等之类的这几十年来不晓得多少人想要研究出名堂 04/03 00:58
62F:→ BoyPlunger: 如果你单纯是看五档那就太慢了 想找到委托book 04/03 00:59
63F:→ BoyPlunger: 你就会想往高频程式去走 到最後你会发现 怎麽都在对干 04/03 01:00
差不多是这个意思 先花半年多建一套基础设施 蒐集 data
边做边弄一些基础的研究 接下来才真正开始做比较进阶的分析
当然想看历史委托挂单 五档 纯粹是我真的不知道 高频造市跟法人是如何操作的
或许研究後才发现 我想错了 这样对之後分析模型也会有很多启发
我是认真想打造高规格研究环境 而且要是 Realtime 呈现
不然盘後跑跑 script 静态分析 对我来说是不太够
※ 编辑: cory8249 (218.161.34.162), 04/03/2018 01:04:59
64F:推 BoyPlunger: 只能说您程式功力一级棒 但是分析像你说的刚开始 04/03 01:05
65F:→ BoyPlunger: 我很想知道您的时间跟金钱怎麽来的 您学生吗? 04/03 01:05
66F:→ BoyPlunger: 说说学生时代的例子某位高材生有个富老爸 04/03 01:08
67F:→ BoyPlunger: 书念得好人又帅又高又有女友 只要担心念书研究 04/03 01:08
68F:→ BoyPlunger: 所以无後顾之忧把程式技能点到满 04/03 01:09
69F:→ BoyPlunger: 之後要做跨领域产业的程式开发都不是难事 04/03 01:10
我是刚准备要毕业的穷学生 老家住南部乡下 一坪 5万 XD
这个是跟朋友一起弄的 人家本业有赚钱 拿一点来玩期货
反正投资本来就要缴学费 与其缴给市场 或是买一些没用的软体
不如做一些比较长远有价值的事情
这是我们的信念啦~ 也可能到头来只是一场梦
就跟交易一样 还没出场之前 谁能笑到最後还不知道
但大家都很爱来玩这个赛局 不是吗 ? 即便已知赢家是小众中的小众
※ 编辑: cory8249 (218.161.34.162), 04/03/2018 01:21:59
70F:推 BoyPlunger: 看过很多工程师来市场重写系统可能因为这是它们的专业 04/03 01:22
71F:→ BoyPlunger: 就好像律师不修改一下契约的法条就没办法显示他的专才 04/03 01:23
72F:→ BoyPlunger: 但是工程师很多写到最後全部去卖软体讯号系统 04/03 01:23
73F:→ BoyPlunger: 因为无风险不需承担盈亏 建议去向期货商兜售 04/03 01:24
74F:→ BoyPlunger: 你会发现怎麽比交易还好赚阿 04/03 01:24
是呀 软体系统本身有其价值
如果有人觉得很棒想买 我卖它也能赚点钱 何乐不为 ?
会有问题的是 买方"被骗去买"
以为捡到宝 实际用才发现是个垃圾
这种我是觉得就很差劲
这套系统 当然不是为了做而做
而是看到未来的价值 值得我投入大量时间心力
※ 编辑: cory8249 (218.161.34.162), 04/03/2018 01:36:36
75F:推 BoyPlunger: 你知道真正赢家都是很黑的 2/6就是真的大赢家的作为 04/03 01:28
76F:推 bean0917: 大推!!曾经也有这样的梦想要做一套自己的系统 04/03 01:49
77F:推 iuowsiq: 有心投入研究给个推,不过很烧钱,建议拿去股版卖 XD 04/03 09:10
78F:→ iuowsiq: 反正你不卖他们,他们也是拿钱去给一堆阿猫阿狗股神花 04/03 09:11
79F:→ iuowsiq: 赚来的钱,继续投入研究,这才是长久之计 04/03 09:11
80F:推 Geel: 超猛推 04/03 09:42
81F:→ Wilkie: 白费功夫 04/03 10:54
82F:推 sova0809: 有用心推一个 但说实话如果你不是机构者 使用这种系统积 04/03 14:38
83F:→ sova0809: 效会比预期至少打个7折 这是散户没办法的先天限制 04/03 14:39
84F:推 lrm549: 不至於 20年後大概就可以媲美法人机构的绩效了 04/03 17:10
85F:推 sova0809: 期货系统每隔一个世代系统就会变化 我是没这麽乐观 这 04/03 19:00
86F:→ sova0809: 类系统建立起来长期维护跟微调变动参数及策略会很累人 04/03 19:00
87F:→ sova0809: 没有团队很难做久 04/03 19:00
88F:推 aragorn1128: 推 04/03 19:25
89F:推 openball: 我看到热情,不管赚不赚钱,我都觉得值得 04/06 01:43
90F:→ hakk: 光看就觉得好厉害 05/03 22:15
91F:推 hakk: 说认真的,我认为这真的可以拿来卖钱,绝对有市场 05/03 22:27
92F:推 hakk: 而且比目前市面上一些操盘软体强大许多 05/03 22:29
93F:推 howardou3000: 有介绍用什麽工具就给推 11/07 11:01