当Agent遇上本地数据:我是如何用ig50构建智能选股体系的
当WorkBuddy遇上本地数据我是如何用本地数据引擎构建智能选股体系的写在前面我不是什么量化大佬就是一个普普通通的A股交易者。之前用WorkBuddy做股票分析的时候最大的感受就是——数据调用的速度永远跟不上思路的变化。每次问一个问题WorkBuddy要去调API、等返回、解析数据等结果出来我当时的判断已经变了。更头疼的是很多API有频率限制做批量分析的时候动不动就被限流。后来我开始用本地数据落盘方案把数据从远程API落盘到本地文件才意识到一个问题WorkBuddy的能力边界很大程度上取决于数据的获取方式。当数据从远程API调用变成本地文件读取整个分析流程的效率提升了一个量级。今天想分享的就是WorkBuddy如何结合本地股票数据ig50构建一套真正好用的智能选股体系。第一阶段从问WorkBuddy到WorkBuddy主动跑最初的痛点一开始用WorkBuddy做股票分析基本是这样的流程我: 帮我看看今天主力资金流入最多的10只股票 WorkBuddy: [调用API] → [等待返回] → [解析数据] → 以下是今天主力资金流入最多的... 我: 再看看这几只股票的龙虎榜情况 WorkBuddy: [调用API] → [等待返回] → [解析数据] → 以下是龙虎榜数据... 我: 再分析一下这几只股票的量价关系 WorkBuddy: [调用API] → [等待返回] → [解析数据] → 以下是量价分析...这样用的问题是每次都是被动的问答WorkBuddy没有自主分析的能力。而且API调用有延迟有频率限制做多维度分析的时候效率很低。第一个转折本地数据解放了WorkBuddy的能力换成本地数据方案之后最大的变化是——WorkBuddy不再需要等待API返回了。数据在本地文件里 /data/stock-a/L2行情指标3秒落盘 /data/stock-a/主力资金流向 /data/stock-a/龙虎榜 /data/stock-a/当天逐笔交易 ...WorkBuddy要做分析直接读本地文件就行importjsonimportpandasaspdfrompathlibimportPath DATA_DIRPath(/data)# WorkBuddy直接读取本地数据defload_main_fund_flow():读取主力资金流向数据pathDATA_DIR/stock-a/主力资金流向withopen(path,r,encodingutf-8)asf:datajson.load(f)returnpd.DataFrame(data)# 一行代码毫秒级返回dfload_main_fund_flow()top_inflowdf.sort_values(主力净流入(万元),ascendingFalse).head(10)没有网络延迟没有频率限制想查多少次就查多少次。更重要的是WorkBuddy可以自主跑完整分析流程了我: 帮我选出今天强势股 WorkBuddy: → 读取主力资金流向数据本地多线程并行读取秒级完成 → 读取涨停股池数据本地多线程并行读取秒级完成 → 读取北向资金数据本地多线程并行读取秒级完成 → 读取龙虎榜数据本地多线程并行读取秒级完成 → 融合分析输出候选股池 → 以下是我筛选的强势股按照主力资金流入涨停强度北向增持综合排名...读本地的速度取决于你的CPU、内存和硬盘速度——SSD多核CPU充足内存几百只股票的数据几秒钟就能读完。从我问一句它答一句到我给个目标它自主跑完这是质的提升。第二阶段构建多维选股框架WorkBuddy的优势可以同时处理多个数据源用API的时候做多维分析很痛苦——每个维度的数据要单独调用还要等API返回最后手动拼接。用本地数据之后WorkBuddy可以同时读取多个数据源多线程并行处理秒级完成融合分析。这个速度的上限取决于本地CPU、内存和硬盘速度。我跟WorkBuddy构建了这样一套选股框架fromconcurrent.futuresimportThreadPoolExecutordefload_data_file(file_path):WorkBuddy多线程读取单个本地数据文件withopen(file_path,r,encodingutf-8)asf:datajson.load(f)returnpd.DataFrame(data)defsmart_stock_selection():智能选股融合多个数据源# WorkBuddy用多线程并行读取多个本地数据文件data_files[DATA_DIR/stock-a/主力资金流向,DATA_DIR/stock-a/涨停股池,DATA_DIR/stock-center/北向资金,DATA_DIR/stock-a/龙虎榜]withThreadPoolExecutor(max_workers4)asexecutor:fund_flow,limit_up,north_money,block_tradelist(executor.map(load_data_file,data_files))# 融合分析逻辑# 维度一主力资金大幅流入1000万元strong_fundfund_flow[fund_flow[主力净流入(万元)]1000]# 维度二涨停或接近涨停涨幅9%strong_pricelimit_up[limit_up[涨幅(%)]9]# 维度三北向资金增持north_buynorth_money[north_money[增持股数(万股)]10]# 维度四大单交易活跃active_tradeblock_trade[block_trade[成交金额(万元)]500]# WorkBuddy自动计算交集找出同时满足多个条件的股票candidatesset(strong_fund[股票代码])set(strong_price[股票代码])# 输出候选股池result[]forcodeincandidates:score0ifcodeinstrong_fund[股票代码].values:score30ifcodeinnorth_buy[股票代码].values:score25ifcodeinactive_trade[股票代码].values:score20result.append({code:code,score:score,reason:主力资金流入涨停北向增持大单活跃})returnsorted(result,keylambdax:x[score],reverseTrue)这套框架的核心是WorkBuddy不用等我一步步问它直接把所有数据源读完给我一个综合评分的结果。五维强势股模型经过反复调整我们固化了一套五维强势股评分模型维度数据来源筛选条件权重资金流向主力资金流向主力净流入1000万30分价格强势涨停股池涨幅9%25分北向增持北向资金增持股数10万股20分机构动向龙虎榜机构净买入500万15分成交活跃大单交易成交金额500万10分WorkBuddy每天会自动跑一遍这个模型输出一个按评分排序的候选股池。我要做的就是在这个候选池里做最后的决策。第三阶段实时监控与预警WorkBuddy做监控的优势可以7x24小时跑之前用API做监控最大的问题是API调用有频率限制做不到真正的实时。换成本地数据之后WorkBuddy可以每隔几秒就扫一遍数据真正的实时监控。importtimefromdatetimeimportdatetimedefreal_time_monitor():WorkBuddy实时监控核心股票池watch_list[000001,000002,600000,600036]# 监控池whileTrue:nowdatetime.now()# WorkBuddy读取实时行情数据本地毫秒级forcodeinwatch_list:realtime_pathDATA_DIR/time/real/codewithopen(realtime_path,r,encodingutf-8)asf:rt_datajson.load(f)pricefloat(rt_data.get(p,0))change_pctfloat(rt_data.get(pc,0))volumefloat(rt_data.get(v,0))# WorkBuddy判断是否触发预警ifchange_pct5:alert(f⚠️{code}涨幅超过5%当前涨幅{change_pct:.2f}%)ifvolumert_data.get(avg_volume,0)*3:alert(f{code}成交量异常放大当前成交量是平均的{volume/rt_data[avg_volume]:.1f}倍)# 每3秒扫描一次time.sleep(3)defalert(message):WorkBuddy发送预警消息print(f[{datetime.now().strftime(%H:%M:%S)}]{message})# 实际应用中可以接入企业微信、钉钉等通知渠道这套监控体系的核心优势是真正的实时每3秒扫描一次不是等API返回的伪实时无频率限制本地数据想扫多少次扫多少次可扩展性强监控池从10只扩展到100只性能几乎无影响6种预警场景我们把预警场景固化成6种预警类型触发条件WorkBuddy行为涨幅预警涨幅5%推送消息跌幅预警跌幅3%推送消息量能异常成交量3倍平均推送分析主力异动主力资金大幅流入/流出推送详情涨停预警股价接近涨停推送提醒炸板预警涨停股打开涨停推送警告WorkBuddy会持续扫描这些条件一旦触发就立刻推送。这对于短线交易来说价值巨大——不需要一直盯着屏幕WorkBuddy会帮你盯着。第四阶段历史数据回测与策略优化WorkBuddy做回测的优势可以批量跑多个策略之前做策略回测最头疼的是数据获取太慢。跑一个策略要先从API拉历史数据拉一周的分钟线就要等好几秒。如果要跑多个策略、多个时间段时间成本很高。换成本地数据之后WorkBuddy可以批量读取历史数据快速完成回测defbacktest_strategy(strategy_func,start_date,end_date):WorkBuddy回测策略results[]# WorkBuddy读取历史K线数据本地毫秒级kline_pathDATA_DIR/stock-a/历史K线forstock_codeinget_all_stock_codes():# 读取单只股票的历史K线stock_klineread_kline_data(kline_path,stock_code,start_date,end_date)ifstock_klineisNone:continue# WorkBuddy运行策略计算收益signalsstrategy_func(stock_kline)# 计算策略收益profitcalculate_profit(signals,stock_kline)results.append({stock:stock_code,profit:profit,win_rate:calculate_win_rate(signals,stock_kline),max_drawdown:calculate_max_drawdown(signals,stock_kline)})returnpd.DataFrame(results)# WorkBuddy批量跑多个策略strategy_results[]forstrategyin[ma_strategy,bollinger_strategy,momentum_strategy]:resultbacktest_strategy(strategy,2024-01-01,2024-12-31)result[strategy]strategy.__name__ strategy_results.append(result)# 对比不同策略的表现comparisonpd.concat(strategy_results).groupby(strategy).agg({profit:mean,win_rate:mean,max_drawdown:mean})WorkBuddy可以在几分钟内跑完多个策略、多只股票、多个时间段的回测这在用API的时候是不可想象的。回测框架的核心能力我们构建的回测框架有几个核心能力能力描述数据来源分钟级回测支持1分钟、5分钟、15分钟等分钟级回测历史K线分钟级日线级回测支持日线、周线、月线回测历史K线日线以上资金流向回测结合主力资金流向分析策略有效性主力资金流向事件驱动回测结合涨停、龙虎榜等事件分析涨停股池、龙虎榜WorkBuddy可以自主选择回测粒度自主分析策略表现给我一个完整的评估报告。第五阶段踩坑与优化教训一数据格式不统一刚开始用的时候发现不同数据源的字段名称、数据格式不完全一致。比如主力资金流向用的是主力净流入(万元)“而北向资金用的是增持股数(万股)”。后来WorkBuddy帮我写了一套数据标准化模块defstandardize_fund_data(df,value_col):WorkBuddy统一资金数据格式# 统一单位为万元if股数invalue_col:df[value_col]df[value_col]/10# 万股转万元假设股价10元# 统一列名dfdf.rename(columns{value_col:资金净流入(万元)})returndf教训二数据更新时间差本地数据虽然快但也要注意更新时间。比如主力资金流向数据通常是盘后更新的而实时行情数据是盘中秒级更新的。WorkBuddy会自动判断数据的时间戳defcheck_data_freshness(data_path):WorkBuddy检查数据新鲜度importos mod_timeos.path.getmtime(data_path)nowtime.time()hours_old(now-mod_time)/3600ifhours_old24:print(f⚠️ 数据已超过24小时未更新)elifhours_old1:print(f 数据更新于{hours_old:.1f}小时前)else:print(f✅ 数据最近1小时内已更新)教训三不能完全依赖WorkBuddyWorkBuddy可以帮你快速筛选、分析但最终买卖决策还是得自己来。框架是工具不是圣杯。我的原则是WorkBuddy给我候选池我做人脑决策。WorkBuddy的评分只是参考我还会结合自己的经验、盘感做最后的判断。总结WorkBuddy本地数据的正确姿势用WorkBuddy结合本地数据做股票分析的这段时间我总结了几个心得✅ 正确的用法用WorkBuddy快速获取数据本地数据让WorkBuddy可以毫秒级读取没有API延迟用WorkBuddy构建分析框架WorkBuddy可以同时处理多个数据源融合分析用WorkBuddy持续监控预警WorkBuddy可以7x24小时跑监控不遗漏机会❌ 错误的用法期望WorkBuddy给你稳赚不赔的策略完全依赖WorkBuddy做交易决策不理解逻辑就盲目跟单给同路人的建议如果你也想用WorkBuddy结合本地数据做股票分析建议从这几个问题开始你的分析维度有哪些资金/技术面/基本面你需要什么粒度的数据分钟级/日线级你的监控需求是什么实时/盘后把这些问题想清楚再去构建你的WorkBuddy分析体系。本地数据是放大器你的方法论才是核心。以上内容仅供交流学习不构成投资建议。股市有风险入市需谨慎。

相关新闻

KVM虚拟化技术原理与实战部署指南

KVM虚拟化技术原理与实战部署指南

1. KVM虚拟化技术概述KVM(Kernel-based Virtual Machine)是Linux内核原生支持的虚拟化解决方案,它通过将Linux内核转变为一个Hypervisor来实现完整的硬件虚拟化。我第一次接触KVM是在2013年为一个云计算项目选型时,当时就被它简洁…

2026/10/27 17:20:50 阅读更多 →
C++固定大小内存池:从原理到实现,解决内存碎片与性能瓶颈

C++固定大小内存池:从原理到实现,解决内存碎片与性能瓶颈

1. 项目概述:为什么我们需要固定大小内存池?在C的世界里,内存管理是每个开发者绕不开的坎。从new和delete这对经典搭档,到现代C的智能指针,我们一直在与内存分配和释放的复杂性作斗争。如果你写过对性能有要求的服务端…

2026/10/27 17:21:32 阅读更多 →
招聘软件收费模式背后的技术栈选型:C++、Java与Rust的实战解析

招聘软件收费模式背后的技术栈选型:C++、Java与Rust的实战解析

1. 项目概述:招聘软件收费模式的技术与商业逻辑最近和几个做技术招聘的朋友聊天,大家普遍有个感觉:市面上的招聘软件,无论是面向企业的SaaS平台,还是面向开发者的垂直社区,收费模式越来越多样,但…

2026/10/26 3:02:55 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →