从天天盯盘到AI助理代劳我是如何用ig50本地数据构建交易辅助体系的写在前面做交易的人都有过一天5个半小时钉在屏幕前的经历。早上9点半开盘下午3点收盘中间不敢离开屏幕。涨停了要盯炸板了要盯异动了要盯——生怕错过任何一个交易机会。但人的注意力是有限的盯几个小时之后效率必然下降。有时候眼看着股票拉起来了反应过来的时候已经涨了五六个点。收盘之后还要复盘翻财经网站、看龙虎榜、算主力资金流向一晃就到半夜。后来用WorkBuddy做交易辅助发现一个尴尬的问题WorkBuddy调API的速度跟不上盘面变化的速度。等WorkBuddy把数据拉回来、分析完、推送给我股价已经涨上去了。更烦人的是API有频率限制想让它帮我扫一遍全市场的异动根本做不到。直到我把ig50本地数据落盘方案用上才真正体会到什么叫交易助理——WorkBuddy读本地文件毫秒级返回全市场扫描几分钟完成异动预警秒级推送。我终于不用天天钉在屏幕前了。今天想分享的就是我如何用WorkBuddy结合ig50本地数据构建一套完整的交易辅助体系。第一阶段盯盘的痛点你懂的典型的一天做短线的人典型的一天是这样的08:30 起床刷财经新闻看隔夜美股走势 09:15 集合竞价开始盯着自选股的开盘价 09:25 竞价结束记录高开/低开的股票 09:30 开盘盯着板块龙头股走势 09:30-10:00 开盘半小时最关键的时段一刻不敢松懈 10:00-11:30 盘中震荡时不时刷新行情看看有没有异动 11:30-13:00 午休吃饭顺便看看上午的复盘 13:00-14:00 下午开盘继续盯 14:00-15:00 尾盘半小时又要高度集中看资金流向 15:00 收盘长舒一口气 15:00-17:00 复盘翻龙虎榜、算主力资金流向、看涨跌停统计 19:00-22:00 看研报、刷论坛、选第二天的标的这样一天下来眼睛累心累而且效率并不高。因为人的注意力很难持续集中5个半小时中间必然会错过一些机会。更关键的是——你盯得住自选股里的20只盯得住全市场5500只吗很多时候大牛股启动的时候根本不在你的自选股里等你发现的时候已经涨了不少了。试过用API做辅助但效果不理想后来我试着用WorkBuddy调API做交易辅助想着可以让它帮我分担一些。但实际效果并不理想问题一API有频率限制主流的金融数据API免费版通常限制每分钟调用次数。比如每分钟只能调60次那就意味着平均1秒只能查1次。这对于秒级变化的股价来说根本算不上实时。想让它扫描全市场5500只股票的异动等它扫完行情早变了。问题二API有延迟WorkBuddy调API要经过网络请求、数据返回、数据解析整个过程通常需要几百毫秒到几秒。如果同时监控多只股票串行调用API的时间会更长。等预警推送过来股价可能已经涨完了。问题三数据不完整更烦人的是API返回的数据经常不完整。有的股票有主力资金流向数据有的没有有的股票历史K线是对的有的复权价格对不上。这种数据质量你敢拿来做实盘决策吗第二阶段本地数据让交易助理真正可用ig50的安装和初体验ig50的安装其实没什么门槛。我用的是Linux云服务器8核16G按照[官方安装指引](file:///f:/java/workplaces/weibo/ig507-html/home/start-guide.html#L253-L278)一行命令就装好了wget-qOig50_shell.tar https://gitee.com/igtrade/ighub/releases/download/last/ig50_shell.tartarxf ig50_shell.tarrm-fig50_shell.tarsed-is/\r$//./ig50_install.shchmodx ./ig50_install.sh./ig50_install.sh装好之后授权文件一放程序就开始自动跑了。数据目录在/ig50-data进去一看整整齐齐的文件夹/ig50-data ├── base/ # 基础数据 │ ├── gplist/ # 股票列表 │ ├── it/ # 指数行业概念树 │ └── ... ├── time/ # 时间序列数据 │ ├── a/ # A股 │ │ ├── real/ # 实时数据 │ │ │ └── time/{code} # 每只股票一个JSON文件3秒更新一次 │ │ └── history/ # 历史数据 │ │ └── trade/{code}/ # 日K/周K/月K/季K/年K │ ├── hk/ # 港股 │ ├── us/ # 美股 │ ├── zijin/ # 资金流向 │ ├── zdtgc/ # 涨跌停股池 │ ├── rzrq/ # 融资融券 │ ├── f10/ # 基本面数据 │ └── ...数据全是标准JSON打开一看就明白。比如实时行情的文件{code:000001,name:平安银行,p:12.35,pc:2.35,o:12.10,h:12.45,l:12.00,v:85623400,a:1056234000}p是当前价pc是涨跌幅o是开盘h是最高l是最低v是成交量a是成交额。一目了然不用做什么复杂的解析。速度对比天壤之别我做了一个简单的测试读取100只股票的实时行情方式耗时说明API串行调用约50秒还要考虑频率限制实际可能更久本地文件单线程读取约100毫秒就是普通的文件IO速度本地文件多线程读取约25毫秒8线程并行取决于CPU和硬盘从50秒到25毫秒差了2000倍。这个速度意味着什么意味着WorkBuddy可以在1分钟内把全市场5500只股票的实时行情扫一遍找出所有符合条件的异动股。而这在API时代是根本做不到的。第三阶段我的交易辅助体系——行情问答不用再翻财经网站了有了本地数据我每天早上不用再刷五六个财经网站了。打开WorkBuddy直接问我: 今天行情怎么样WorkBuddy会自动去读本地数据然后给我一个完整的市场概况截至 14:38沪深京主要指数表现 上证指数 3128.450.82% 深证成指 9856.721.24% 创业板指 1923.181.87% 科创50 876.302.15% 两市成交额 8642 亿元较昨日放量 12.3% 上涨 3284 家下跌 1867 家 涨停 58 家跌停 7 家 申万一级行业涨幅榜 1. 电子3.21% 2. 通信2.76% 3. 计算机2.58% 主力资金净流入前三 1. 半导体48.6亿 2. AI算力32.4亿 3. 创新药21.8亿 北向资金净买入 42.6 亿元已连续 5 日净流入这些数据全都是从本地JSON文件里读出来的毫秒级获取不用等任何API返回。个股深度分析想问某只股票的情况也直接说我: 贵州茅台最近怎么样WorkBuddy会去读实时行情 → 当前价格、涨跌幅最近10天日K线 → 近期走势最近资金流向 → 主力动向所属板块 → 板块联动情况近一年财务指标 → 基本面情况然后输出一份完整的分析贵州茅台600519当前价格 1685.00 元涨幅 1.85% 近期走势 近5日3.2%近10日5.6%近20日8.1% 5日均线1672.5010日均线1658.3020日均线1642.80 目前处于均线多头排列短期趋势向上 资金流向 近3日主力净流入2.3亿 近5日主力净流入4.8亿 近10日主力净流入7.2亿 主力资金持续流入机构关注度较高 所属板块 白酒1.2%、消费0.8% 板块内今日涨幅排名第5/38 基本面 ROE近四季28.5% 毛利率91.2% 净利率50.8% 资产负债率22.5% 基本面优秀财务指标稳健 综合判断短期趋势向上资金面良好基本面稳健可关注你要是用API做这个分析光调各个接口就要等半天。但本地数据WorkBuddy一口气全读完几秒钟就给你结果。第四阶段我的交易辅助体系——异动监控自选股监控自选股里的20只股票我让WorkBuddy每3秒扫描一次WATCH_LIST[600519,000858,601318,000001,...]defmonitor_watch_list():监控自选股whileTrue:ifnotis_trading_time():time.sleep(60)continuealerts[]forcodeinWATCH_LIST:# 读本地实时行情pathDATA_DIR/time/a/real/time/codewithopen(path,r,encodingutf-8)asf:datajson.load(f)change_pctfloat(data.get(pc,0))volumefloat(data.get(v,0))avg_volumefloat(data.get(avg_volume,1))# 涨幅预警ifchange_pct5:alerts.append(f{data[name]}{code}涨幅{change_pct:.2f}%)# 跌幅预警ifchange_pct-3:alerts.append(f{data[name]}{code}跌幅{change_pct:.2f}%)# 量能异常ifvolumeavg_volume*3:alerts.append(f{data[name]}{code}放量{volume/avg_volume:.1f}倍)# 推送预警ifalerts:send_to_wechat(alerts)time.sleep(3)我把预警推送到微信上手机一响我就知道自选股里有情况了不用一直盯着屏幕。全市场异动扫描自选股之外更重要的是发现全市场的机会。5500只股票人眼盯不过来但WorkBuddy可以deffull_market_scan():全市场异动扫描# 获取所有A股代码all_codesload_stock_list()# 多线程批量读取实时行情5500只约30秒读完quotesbatch_load_quotes(all_codes,max_workers32)result{limit_up:[],# 涨停limit_down:[],# 跌停rocket_launch:[],# 火箭发射涨速超2%high_dive:[],# 高台跳水跌速超2%volume_surge:[]# 放量成交量5倍平均}forqinquotes:codeq.get(code)nameq.get(name)change_pctfloat(q.get(pc,0))volume_ratiofloat(q.get(v,0))/max(float(q.get(avg_volume,1)),1)ifchange_pct9.8:result[limit_up].append((code,name,change_pct))elifchange_pct-9.8:result[limit_down].append((code,name,change_pct))elifchange_pct3:result[rocket_launch].append((code,name,change_pct))elifchange_pct-3:result[high_dive].append((code,name,change_pct))ifvolume_ratio5:result[volume_surge].append((code,name,volume_ratio))returnresult# 每5分钟扫描一次全市场whileTrue:ifis_trading_time():resultfull_market_scan()message[]ifresult[limit_up]:message.append(f 涨停{len(result[limit_up])}家)forcode,name,pctinresult[limit_up][:10]:message.append(f{name}{code}{pct:.2f}%)ifresult[rocket_launch]:message.append(f 快速拉升{len(result[rocket_launch])}家)ifresult[volume_surge]:message.append(f 放量异动{len(result[volume_surge])}家)ifmessage:send_to_wechat(message)time.sleep(300)每5分钟WorkBuddy就会把全市场扫一遍把涨停、快速拉升、放量异动的股票推送给我。5500只股票全部扫完不到1分钟。这种覆盖率靠人盯盘是不可能做到的。6种固化预警场景我把常用的预警场景都固化下来了预警类型数据来源触发条件推送频率典型价值自选股涨幅实时行情自选股涨幅5%每3秒扫描避免错过持仓股拉升自选股跌幅实时行情自选股跌幅3%每3秒扫描及时止损避险全市场涨停涨跌停股池进入涨停池每10分钟发现市场热点方向主力大幅流入资金流向主力净流入5000万每小时捕捉机构动向板块异动行业资金流板块平均涨幅2%每5分钟第一时间发现板块轮动北向资金北向数据净买入/卖出10亿每小时跟踪外资流向这些预警覆盖了我交易中最关心的场景。WorkBuddy7x24小时帮我盯着有情况立刻推送。我终于不用一天5个半小时钉在屏幕前了。第五阶段我的交易辅助体系——策略回测不用写代码大白话就能回测以前想验证一个策略得自己写代码、拉数据、跑回测折腾半天。现在我直接用大白话跟WorkBuddy说我: 帮我回测一个策略收盘价突破20日最高价买入跌破10日最低价卖出止损5%过去3年在沪深300成分股上的表现如何WorkBuddy会理解策略逻辑突破买入、跌破卖出、止损读取沪深300成分股列表本地读取每只股票过去3年的日K线本地编写回测代码运行回测输出分析报告整个过程不用我写一行代码全是WorkBuddy自主完成的。回测报告示例几分钟后WorkBuddy就把回测结果发给我了 策略回测报告 策略名称20日突破 10日跌破止损 回测区间2022-01-01 至 2024-12-313年 标的池沪深300成分股300只 手续费单边0.03%滑点0.1% 整体表现 ────────────────────────────── 累计收益 38.5% 年化收益 11.5% 最大回撤 -14.2% 夏普比率 0.82 胜率 54.8% 盈亏比 1.85 交易次数 平均每只股票 23 次 ────────────────────────────── 分年度表现 2022年-5.2%沪深300 -21.6% 2023年18.3%沪深300 -11.4% 2024年28.6%沪深300 15.2% 连续3年跑赢沪深300 表现最好的10只股票 1. 600519 贵州茅台 72.3% 胜率62.5% 2. 000858 五粮液 65.8% 胜率58.3% 3. 601899 紫金矿业 58.2% 胜率55.6% ... 表现最差的10只股票 1. 601318 中国平安 -18.5% 胜率48.2% 2. 600036 招商银行 -12.3% 胜率47.5% ... 参数敏感性分析 突破周期20日 → 最优突破15日收益略高但回撤大突破30日收益降低 止损比例5% → 最优止损3%频繁止损止损8%回撤变大这份报告的信息量很大——累计收益、年化、最大回撤、夏普比率、胜率、盈亏比分年度表现个股表现排名甚至参数敏感性分析都做了。有了这份报告你就知道这个策略值不值得上实盘了。多策略对比你还可以让WorkBuddy同时跑多个策略对比哪个更好我: 帮我对比一下这三个策略1均线金叉5上穿202布林带突破 3MACD金叉过去3年在中证500上的表现几分钟后对比表格就出来了策略年化收益最大回撤夏普比率胜率盈亏比交易次数布林带突破14.2%-12.5%0.9556.2%1.9218次/股均线金叉9.8%-15.3%0.5852.5%1.6525次/股MACD金叉7.5%-13.8%0.4851.2%1.5230次/股一目了然布林带突破在这三个策略里表现最好。以前做这种对比要写三份回测代码跑半天。现在几分钟就搞定了。第六阶段踩坑与优化教训一预警不要太多刚开始用的时候我把预警阈值设得太低了——涨幅超过3%就推送结果WorkBuddy一小时能推几十条消息手机响个不停我根本看不过来。后来我索性把通知关了反而错过了重要的预警。后来我调整了阈值涨幅预警从3%调到5%跌幅预警从-2%调到-3%资金异动从1000万调到5000万板块预警只在板块平均涨幅2%时推送调整之后每天推送的预警控制在10-20条每条都值得看。预警的核心不是多而是准。教训二回测≠实盘回测跑出来的收益很漂亮但实盘可能差很多。因为回测是后视镜——你知道未来的价格然后在历史数据上做验证。但实盘是面对未知的。举个例子回测里的收盘价突破20日最高价买入回测的时候你可以在收盘那一刻精确买入。但实盘里你怎么知道收盘价一定能突破你可能在尾盘最后5分钟看到快要突破了就买结果收回来没突破或者你等收盘确认了再买那就是第二天的开盘价了可能已经涨了一两个点。我的原则是回测收益打个五折如果还能接受再考虑上实盘。教训三工具只是辅助决策靠自己WorkBuddyig50这个组合确实帮我省了很多时间。但它是工具不是交易圣杯。比如WorkBuddy推送了一个主力资金大幅流入的预警但我一看这只股票是ST股而且有退市风险那我肯定不会买。又比如回测显示某个策略年化收益20%但这个策略去年的收益特别高前两年都不行那我会怀疑它是不是过拟合了。工具可以帮你提高效率但最终的判断——这个股票能不能买、这个策略能不能用——还是要靠自己。总结我的交易方式彻底变了用WorkBuddy结合ig50本地数据做交易辅助这几个月我的整个交易方式彻底改变了之前人盯盘一天5个半小时钉在屏幕前只能盯着自选股里的20只板块轮动经常后知后觉全市场异动根本发现不了策略回测要自己写代码跑半天收盘后还要花两三个小时复盘现在AI助理代劳WorkBuddy7x24小时帮我监控可以覆盖全市场5500只股票板块轮动第一时间发现异动股秒级推送大白话描述策略回测几分钟完成复盘报告WorkBuddy自动生成从人盯盘到AI助理代劳我终于把自己从屏幕前解放出来了。给同路人的建议如果你也想构建一套类似的交易辅助体系建议从这几步开始先把ig50装起来按照[官方安装指引](file:///f:/java/workplaces/weibo/ig507-html/home/start-guide.html#L253-L278)Linux下一行命令搞定。最低配置8核16G用云服务器最好24小时不关机。ig50提供2周免费试用可以先验证可行性。从最简单的需求开始不要一上来就搞复杂的系统。先让WorkBuddy能回答今天行情怎么样“某只股票最近如何”然后再加自选股监控再扩展到全市场扫描。循序渐进。控制预警数量预警的价值不在于多而在于准。每天推送控制在20条以内每条都值得看。阈值太高可以慢慢调低但太低了会让人麻木。回测是参考不是结论回测跑出来的收益要打个折看。过拟合是量化的天敌简单的策略往往比复杂的策略更可靠。保持自己的判断工具可以帮你提高效率但交易决策还是要自己做。WorkBuddy推送的预警、回测的结果都只是参考。把这些想清楚再去构建你的体系。数据和工具是放大器你的交易逻辑才是核心。以上内容仅供交流学习不构成投资建议。股市有风险入市需谨慎。