Stock 板


LINE

我如何打造一套 TradingView 自动交易系统,让台指期交易从此不用熬夜盯盘 一个工程师的开源专案分享:从痛点到解决方案的完整历程 --- 凌晨三点,手机警报响起。 我从床上弹起,睡眼惺忪地盯着 TradingView 的通知——我的策略发出了做多讯号。匆 忙打开电脑,登入券商下单系统,结果价格早就跑掉了。 这样的场景,在我身上发生过无数次。 身为一个使用 TradingView 做台指期交易的投资人,我一直有个困扰:明明策略很准, 但人跟不上机器的速度。 於是,我决定自己写一套自动交易系统。 --- 为什麽市面上的方案都不适合我? 在动手之前,我研究过市面上的解决方案: 付费的自动交易平台——每个月要付好几千块,而且我不放心把 API 金钥交给第三方。 自己串 Shioaji API——永丰金的文件其实写得不错,但要处理的细节太多:连线管理、 错误处理、订单状态追踪光是解决「Too Many Connections」这个错误就花了我好几 天。 现成的开源专案——找了一圈,要嘛太阳春只能下单,要嘛架构太复杂难以维护。 所以我决定:自己从头打造一套符合需求的系统,然後开源出来让大家一起用。 --- 我想要的系统长什麽样子? 在开始写程式之前,我先列出了几个必要条件: 1. TradingView 警报直接触发下单 我不想改变现有的工作流程。我习惯在 TradingView 上写策略、看图表,所以系统必须 能直接接收 TradingView 的 Webhook。 2. 不用写程式就能用 虽然我是工程师,但我希望这套系统连不会写程式的朋友也能用。设定档填一填、 Docker 指令跑一跑,就应该要能动。 3. 稳定可靠,不会漏单 这是拿真钱在交易,系统挂掉可不是开玩笑的。必须有完善的错误处理和自动重连机制。 4. 有个好看的介面 我想要一个控制台,可以看到所有订单纪录、目前持仓、成交状态。不是只能看 log 那 种工程师 style。 5. 资料留在自己手上 API 金钥、交易纪录,这些敏感资料我不想放在别人的伺服器上。系统必须能跑在自己的 机器上。 --- 技术架构:如何解决「连线数过多」的问题 如果你用过 Shioaji API,应该知道它有连线数限制。同时开太多连线就会被踢掉。 这在一般情况下不是问题,但当你的系统需要同时处理多个请求(比如 TradingView 连 续发出好几个警报),就会出状况。 我的解决方案是:用 Redis 做讯息伫列,确保只维持一条 Shioaji 连线。 架构大概是这样: TradingView Webhook → FastAPI 接收请求 → Redis 讯息伫列 → Trading Worker( 唯一的 Shioaji 连线)→ 永丰金证券 不管有多少请求同时进来,都会乖乖排队,由 Trading Worker 一个一个处理。 这个架构还有个好处:API 服务可以开多个 worker 来处理更多请求,但交易的部分永远 只有一条连线,不会触发限制。 --- 控制台介面:让交易一目了然 身为一个重视使用体验的工程师,我花了不少时间在控制台的设计上。 委托纪录页面可以看到: ‧ 每一笔订单的时间、商品、方向、数量 ‧ 即时状态(待处理、已送出、已成交、已取消) ‧ 成交价格和成交量 ‧ 筛选和汇出功能 持仓页面可以看到: ‧ 目前持有的部位 ‧ 未实现损益 ‧ 持仓成本 TradingView 设定页面则提供: ‧ Webhook URL 一键复制 ‧ JSON 格式范例 ‧ Pine Script 策略范本 这些功能在交易时真的很实用,尤其是报税的时候可以一键汇出 CSV,省了很多整理资料 的时间。 --- 实际使用心得 这套系统我自己已经用了一段时间,分享几个心得: 模拟模式很重要 刚开始一定要用模拟模式测试。不只是测系统有没有 bug,更重要的是确认你的 TradingView 策略逻辑是对的。我就曾经因为 alert_message 设错,结果做多讯号变成 做空 网路稳定度是关键 自动交易最怕的就是网路断线。我後来把系统部署到云端(AWS),uptime 比放在家里的 电脑好太多。 不要过度优化策略 有了自动交易系统之後,很容易陷入一直改策略的回圈。但说实话,一个简单稳定的策略 ,长期下来通常比复杂的策略表现更好。 --- 开源:让更多人受惠 这套系统我决定完全开源,放在 GitHub 上让大家自由使用。 GitHub:https://github.com/luisleo526/shioaji-api-dashboard 为什麽要开源? 一方面是回馈社群。我在开发过程中参考了很多开源专案和网路上的分享,现在换我贡献 一点东西。 另一方面,开源可以让更多人帮忙找 bug、提供改进建议。一个人的力量有限,但社群的 力量是无穷的。 --- 如果你需要更多帮助 开源版本已经可以满足大部分需求,但如果你有以下状况,我也提供付费的客制化服务: 不想自己架设伺服器——我可以帮你部署到 AWS/GCP,设定好 SSL 和监控,确保 24/7 稳定运行。 需要特殊功能——比如多帐户下单、LINE 通知、特殊的风控逻辑,都可以依需求开发。 有交易想法但不会写 PineScript——我可以帮你把策略逻辑转换成可自动执行的程式。 完全不懂技术——我提供一对一教学,从零开始手把手带你设定。 有兴趣的话,欢迎来信讨论:[email protected] --- 写在最後 自动交易不是圣杯,它只是一个工具。 好的工具可以帮你节省时间、减少情绪干扰、提高执行效率。但最终决定成败的,还是你 的交易策略和风险管理。 希望这套系统能帮助到和我一样,想要让交易更有效率的人。 如果你觉得这篇文章有帮助,欢迎分享给有需要的朋友。也欢迎到 GitHub 给个 Star, 这是对开源作者最大的鼓励! --- 免责声明 自动交易有风险,期货交易可能损失超过原始投资金额。本文仅供学习参考,不构成任何 投资建议。使用前请务必先用模拟模式充分测试,并审慎评估自身风险承受能力。 --- 如果你对这个专案有任何问题或建议,欢迎在下方留言,或是到 GitHub 发 Issue。 也欢迎追踪我,之後会分享更多关於程式交易的心得。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.240.150.107 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Stock/M.1767108933.A.F46.html
1F:推 dreamdds : 强! 12/30 23:37
2F:→ kslman : 看不懂,但大为震撼 12/30 23:38
3F:推 ss425727100 : 希望有影片可以让我这种麻瓜懂 12/30 23:39
暂时没有要经营短影音社群,先说声抱歉了
4F:推 nightop : 虽然没用这个但愿意分享就是好事推个 12/30 23:50
5F:推 Destiny6 : 感谢分享,可惜没玩期货... 12/30 23:53
最近会再补上证券的部分,敬请期待
6F:推 israelii : 我看不懂 但觉得好像很厉害 12/30 23:53
7F:→ OxFFFFFFFF : 有分享就推一个。 12/30 23:55
8F:推 wsx26997785 : 这软体自从拿掉台湾国旗後 我就没再花钱了 12/30 23:55
甚麽软体要花钱?
9F:推 EHacker : 推 12/30 23:56
10F:推 ProTrader : 愿意主动分享 台湾程式交易界的太阳 12/31 00:03
11F:推 yu90097 : 推一个 12/31 00:03
12F:推 atien666 : 推分享 12/31 00:04
13F:→ ProTrader : 很适合给想学程式交易的新手菜鸟当范本 12/31 00:05
程式交易的部分偏少,可能会有点硬
14F:推 abc21086999 : 可以偷偷问MQ为什麽选Redisㄇ 12/31 00:05
老实说我对MQ没什麽研究,刚好本身工作会用就直接使用
15F:推 Jeff1989 : 感谢分享 12/31 00:07
16F:推 whyhsu : 推 12/31 00:08
17F:推 h311013 : 推 大神 12/31 00:13
18F:推 eknbz : 开源推 12/31 00:13
19F:推 hayashijun : 推分享,正好最近在研究这个 12/31 00:15
20F:推 ly102530 : 推 好神 12/31 00:16
21F:推 sonyvaio : 推 12/31 00:19
22F:→ ZO20 : shioaji 真的好用推推 12/31 00:20
23F:推 offstage : 有分享有推 12/31 00:25
24F:推 how5708 : 推 好强 12/31 00:32
25F:推 rockfu : 纯推! 12/31 00:38
26F:推 f14108 : 推 12/31 00:52
27F:推 ETTom : 推 感谢分享开源 12/31 00:54
28F:推 kickflip : 推分享 12/31 00:55
29F:推 daniel0202 : 用一段时间了 感谢开源 12/31 00:56
※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 01:02:28
30F:推 victoryss : 太屌了,我完全看不懂,跪着看 12/31 01:01
我的用意其实不是分享code work,是尽可能让有这个需求的人直接套用, 虽然如此,但似乎看懂README.md也是需要一点工程底。 如果愿意跟AI沟通一下,应该是可以直接上手的。 实在不行,就让我赚点吧XD
31F:推 pkmilk : 推 12/31 01:04
32F:推 zsquarez : 推! 12/31 01:06
※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 01:09:42
33F:推 labihua : 卡个 有策略但不会写 12/31 01:08
欢迎寄信给我
34F:推 kan8634 : 推 12/31 01:09
35F:推 asd97013 : 推大神 12/31 01:12
36F:推 Nimin : 强啊 12/31 01:29
※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 01:29:54
37F:推 GanKer : 想知道33楼策略 ^_^ 12/31 01:34
38F:推 a89567936 : 推大神 我本来也是想直接自己串的 但後来发现 如果 12/31 01:35
39F:→ a89567936 : 是做台指 台股 自动交易的话 好像用XQ就能办到 能 12/31 01:35
40F:→ a89567936 : 自动下单还不用自己串API 新手也好入门 一个月订阅 12/31 01:35
41F:→ a89567936 : 模组1000块而已 12/31 01:35
一定有其他付费产品,只是身为工程师会在意各种[可控性],不否认我在意的 可控性可能不够,就看自己喜欢哪一种方式吧 ※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 01:37:49
42F:推 a89567936 : 想询问大大 当初架设这个系统是边看YT 边问AI 学的 12/31 01:45
43F:→ a89567936 : 吗 因为发现网路上好像蛮多教学的 但不知道从哪下 12/31 01:45
44F:→ a89567936 : 手 12/31 01:45
这问题问到重点了,我这边分享一下,要串自动交易的话,要先了解甚麽是Webhook Webhook是一个event-triggered的通讯方式,对於程式交易而言,就是有一个 「不知道甚麽时候」发生的事件会传到你的伺服器上,这个事件包含但不限於 开多,平多,开空,平空 所以概念上,你只要能够写出一个系统,可以处理这四种事件,那就是一个可用的 交易系统了(不考虑策略设计) 要如何接收到这个事件,首先你要有办法架一个伺服器去「配合」跑策略的提供商, 去接收HTTP的request,这偏向网路的後端工程。 我的开源专案虽然是写TradingView,但如果你自己本身有其他跑策略的系统, 用特定来源的OHLCV来决定要不要进出场,那其实我开源的系统也可以直接套 至於要怎麽执行这个事件,就要看券商的API文件,我接过元大、国票、永丰, 最後决定使用永丰的还是因为他的文件更接近工程师(虽然有待加强,但是瑕不掩瑜) 倘若你问我我怎麽知道这些的? 因为我弄过更复杂的系统,所以以上就是信手拈来了 ※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 01:57:54
45F:推 c94dk40204 : 推~ 12/31 01:51
※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 02:00:18
46F:推 ptt930109 : 推! 12/31 02:14
47F:→ kevinmeng2 : 我之前用api 觉得好麻烦,所以最後放弃了 12/31 02:19
48F:→ kevinmeng2 : 而且很容易被量化交易单狙击…别问我怎麽知道的 12/31 02:20
49F:→ kevinmeng2 : 我是美股的ib 12/31 02:21
IB本身确实就麻烦,那个2FA很搞人 ※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 02:32:51
50F:推 a89567936 : 谢谢版主这麽耐心的解说!因为我是做IC设计的 可以 12/31 02:37
51F:→ a89567936 : 说是跟後端完全没相关 真的要花时间好好研究了! 12/31 02:37
52F:→ a89567936 : 不然以後要把现有策略延伸到美股或虚拟币 迟早要 12/31 02:37
53F:→ a89567936 : 自己动手串 因为XQ只有针对台股跟期权而已 12/31 02:37
虚拟货币算是相对友善,几乎每一间都有很好好的API文件与支援,美股的话,我认为 相对难处理,甚至可能会需要写RPA去触发自动交易 ※ 编辑: iHaveAPen (111.240.150.107 台湾), 12/31/2025 02:55:07
54F:推 pig96383 : 推分享 12/31 03:17
55F:→ yunf : 加油 12/31 03:32
56F:推 Autumn7Maple: 推 12/31 04:37
57F:推 jackgn : 感谢大大分享 12/31 05:18
58F:推 Syoshinsya : 推分享,希望有空研究 QQ 12/31 05:25
59F:推 herculus6502: 推 12/31 05:34
60F:推 superpat : 推分享 12/31 06:27
61F:推 goldpork : 推 12/31 06:38
62F:推 pc007ya : 分享推 12/31 06:53
63F:推 Gloomy : 推 12/31 07:08
64F:推 superich : 推分享 12/31 07:09
65F:推 gtcw : 推推 12/31 07:09
66F:推 yasashii1111: 伟大的人,谢谢 12/31 07:29
67F:→ guk : 是不是可以赚钱?明年用这个可以发年报吗 12/31 07:31
68F:推 n555123 : 推,好人一生平安 12/31 07:48
69F:推 lifeterry : redis 就方便,稳定,好用,你单机程式交易,不用 12/31 07:55
70F:→ lifeterry : 搞到message queue 的丛集,另外有版权更偏自由开 12/31 07:55
71F:→ lifeterry : 源的 valkey 可以用 12/31 07:55
72F:→ lifeterry : 我原本也是程式交易,但是当冲策略太逊,被定期不 12/31 07:57
73F:→ lifeterry : 定额 etf 虐,就躺平了 12/31 07:57
74F:推 downtoearth : 真 工程师 12/31 08:05
75F:推 TWeng : 推 12/31 08:06
76F:推 Jodomaday : 推 12/31 08:17
77F:推 chiuweiyu : 感谢分享 12/31 08:19
78F:推 Fiendyux : 感谢分享 12/31 08:23
79F:推 Lowpapa : 好 12/31 08:37
80F:推 seohyunfans : 推 12/31 08:40
81F:推 tomroy : 赞 分享推 12/31 09:20
82F:推 antohsu : 谢分享! 12/31 09:29
83F:推 paulsweet : 感谢分享 12/31 09:48
84F:推 zaqimon : 推 12/31 09:54
85F:→ zaqimon : 如果台湾能开放第三方平台直接下单就不用这麽麻烦了 12/31 09:57
86F:推 tamynumber1 : 推分享 12/31 10:21
87F:推 estd1971 : 推推~ 12/31 10:40
88F:推 xup61069 : 专业推 12/31 11:13
89F:推 h760108 : 这ai润稿吧? 12/31 11:58
90F:推 Hey2 : 推 好猛 12/31 12:21
91F:推 card : 推 12/31 12:32
92F:推 photomac : 推用心 12/31 13:17
93F:推 newjett0617 : 推 12/31 13:21
94F:推 littlestar66: 好心大神推推 12/31 16:16
95F:推 issac520 : 神人 跪着看 12/31 21:19
96F:推 kmoy : 先推 01/02 21:38







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP