Qwen3+Dify搭建AI股票分析系统实战教程

项目概述:AI驱动的实时股票分析系统
在量化投资和智能交易日益普及的今天,借助大语言模型构建个人化的股票分析工具已经成为可能。量化投资起源于1970年代的华尔街,以数学模型和计算机算法为核心驱动力进行投资决策。随着大语言模型的兴起,量化投资正在经历新一轮变革:传统量化依赖预定义的数学公式和统计模型,而LLM的引入使得系统能够理解非结构化信息(如财报文本、新闻情绪),并以自然语言形式输出可解释的投资建议。不过需要注意的是,LLM在金融领域的应用仍处于探索阶段,其输出的策略建议需要经过严格的回测验证才能用于实盘交易。
本文将详细介绍如何基于Dify工作流平台,结合通义千问广告3(Qwen3)大语言模型,构建一个能够实时获取股票数据、计算技术指标、并给出专业交易策略的AI股票分析系统。
关于Dify平台:Dify是一个开源的大语言模型应用开发平台,它提供了可视化的工作流编排能力,允许开发者通过拖拽节点的方式构建复杂的AI应用,而无需编写大量胶水代码。Dify支持多种LLM接入(OpenAI、Anthropic、国产大模型等),并内置了变量管理、条件分支、HTTP请求、代码执行等丰富的节点类型,使得构建端到端的AI工作流变得高效且直观。
关于通义千问3:通义千问3是阿里云推出的新一代大语言模型,在推理能力、指令遵循和多语言理解方面有显著提升。Qwen3支持混合思考模式(thinking/non-thinking),能够在复杂分析任务中展现出更强的逻辑推理链条。通过阿里云百炼平台,开发者可以便捷地获取API Key并将其集成到各类应用中,模型支持超长上下文窗口,非常适合处理包含大量数值数据的金融分析场景。
这个系统的核心能力包括:
- 实时获取真实股票交易数据
- 自动计算RSI、MACD、移动平均线等技术指标
- 评估股票风险与内在价值
- 生成完整的科学投资策略建议
系统架构设计
整个项目的实现分为两个核心部分:
Dify工作流(前端编排)
Dify工作流负责接收用户输入的股票代码和市场类型参数,进行参数校验后将请求发送给后端Server,最终将返回的数据交给千问3大模型进行深度分析。
自定义Server(后端数据服务)
Server端是整个系统的数据引擎,它根据股票代码获取最新的交易数据,并基于这些数据计算各类技术指标(趋势分析、RSI、MACD、移动平均线、成交量等),然后将结构化的分析数据返回给Dify。

整体数据流向为:
用户输入股票代码 → Dify参数校验 → HTTP请求Server → Server获取数据并计算指标 → 返回Dify → 千问3模型深度分析 → 输出投资策略
核心技术指标详解
在深入了解系统实现之前,有必要理解系统所计算的几个核心技术指标,这些指标构成了AI分析的数据基础:
RSI(相对强弱指数)
RSI(Relative Strength Index)是由J. Welles Wilder于1978年提出的动量振荡指标,用于衡量股价涨跌速度和变化幅度。RSI的取值范围为0-100,通常以14个交易日为计算周期。当RSI超过70时,股票被认为处于超买状态,可能面临回调压力;当RSI低于30时,则处于超卖状态,可能存在反弹机会。RSI还可以通过背离信号(股价创新高但RSI未创新高)来预判趋势反转。
MACD(移动平均收敛散度)
MACD(Moving Average Convergence Divergence)是由Gerald Appel在1970年代末提出的趋势跟踪动量指标。它由三个核心组件构成:MACD线(12日EMA与26日EMA的差值)、信号线(MACD线的9日EMA)以及柱状图(MACD线与信号线的差值)。当MACD线上穿信号线时形成"金叉",通常被视为买入信号;下穿时形成"死叉",被视为卖出信号。MACD的优势在于同时捕捉趋势方向和动量变化,是技术分析中使用最广泛的指标之一。
移动平均线(MA)
移动平均线(Moving Average)是技术分析中最基础也最重要的工具之一,通过计算一定周期内收盘价的算术平均值来平滑价格波动、识别趋势方向。常用的周期包括5日(周线)、10日、20日(月线)、60日(季线)和250日(年线)。移动平均线分为简单移动平均线(SMA)和指数移动平均线(EMA),后者对近期价格赋予更高权重,对趋势变化更敏感。多条均线的排列形态(如多头排列、空头排列)和交叉信号(金叉、死叉)是判断市场趋势的重要依据。
布林带(Bollinger Bands)
布林带由John Bollinger在1980年代提出,由三条线组成:中轨为N日简单移动平均线(通常为20日),上轨和下轨分别为中轨加减K倍标准差(通常K=2)。布林带的核心思想是利用统计学中的标准差来度量价格波动率——当波动率增大时带宽扩张,波动率缩小时带宽收窄。股价触及或突破上轨通常意味着短期超买,触及下轨则意味着超卖。布林带收窄(squeeze)往往预示着即将到来的大幅波动。
环境准备与部署
搭建这个AI股票分析系统需要三个基础环境:
- Dify平台:从GitHub下载代码,通过Docker方式部署,过程相对简单
- 通义千问3模型API:登录阿里云百炼平台获取API Key,在Dify中配置模型接入
- 自定义Server:运行在本地8080端口,提供股票数据获取和技术指标计算的接口
Dify工作流详细构建
开始节点:用户输入设计
开始节点需要支持三个输入字段:
- 下拉选择股票:预设常用股票代码供快速选择
- 手动输入股票代码:支持自由输入任意代码
- 市场类型(type):区分A股、港股、美股

条件分支:参数校验逻辑
由于股票代码有两种输入方式(下拉和手动),两者都不是必填项,因此需要一个条件分支节点来确保至少有一个不为空。这里使用OR逻辑:只要code1或code2任一不为空即可通过,否则返回"股票代码不能为空"的错误提示。
变量聚合与HTTP请求配置
通过变量聚合器将有效的股票代码提取出来,传递给HTTP请求节点。HTTP请求节点的关键配置:
- 请求方式:POST
- 请求地址:
http://172.26.112.1:8080/api/stock(本地Server地址) - Header:Content-Type设为application/json,加上API Key验证
- Body:包含stock code和market type两个参数

数据处理与Qwen3模型分析
Server返回的数据是字符串格式,需要通过代码节点使用json.loads转换为字典。然后根据市场类型(A股/港股/美股)分流到对应的大模型分析节点。
以A股为例,千问3模型的System Prompt设定为"A股投资大师"角色,要求分析以下维度:
- 趋势分析(支撑位、压力位)
- 成交量分析与含义
- 风险评估
- 短期和中期目标价位
- 关键技术指标解读
- 具体交易建议(开仓策略、止损位、仓位管理)
实战效果展示
以002235(安妮股份)为例,系统给出了非常详细的分析结果:

趋势分析结果
系统识别出股价已突破布林带上轨,短期处于强势上涨状态。支撑位精确定位在5.5元(强支撑,6月3日低点)和5.65元(弱支撑,6月4日低点),压力位在6.10元(当日最高点)。结合前文对布林带指标的解释,股价突破上轨意味着当前处于统计意义上的极端高位,虽然短期动能强劲,但也暗示着回调风险的累积,这正是系统同时给出激进型和保守型两种策略的原因。
交易策略输出
系统给出了两种开仓策略:
- 激进型:5.88元直接建仓,止损5.5元
- 保守型:等待回踩5.44-5.50支撑位再建仓
仓位管理建议初始仓位不超过1/3,突破6.10后加仓。同时设定了明确的止损线(5.3元)和减仓条件(三个交易日未创新高)。这种分层建仓和严格止损的策略设计,体现了专业量化交易中风险管理优先的核心原则——在不确定的市场中,控制下行风险往往比追求上行收益更为重要。
技术要点总结
Server端核心逻辑
Server端虽然代码量较大,但核心就两个功能:通过GET方法获取实时股票数据,然后进行技术指标计算(RSI、MACD、布林带、移动平均线、成交量分析等)。计算完成后通过API接口暴露给Dify调用。值得注意的是,技术指标的计算需要足够长的历史数据窗口——例如计算250日均线至少需要250个交易日的数据,MACD的信号线需要在MACD线基础上再取9日EMA,因此Server端在数据获取时需要预留充足的历史数据量,以确保各项指标计算的准确性。
工作流设计思路
整个Dify工作流的设计体现了良好的工程实践:
- 输入校验防止空值
- 变量聚合处理多入口
- 条件分支支持多市场
- 大模型角色设定确保输出质量
这种模块化的设计使得系统易于扩展和维护。例如,未来可以轻松添加新的市场类型(如日股、欧股),只需在条件分支中增加新的路径并配置对应的System Prompt即可。同样,如果需要引入基本面分析数据(如市盈率、营收增长率),只需在Server端增加相应的数据获取和计算模块,工作流的整体结构无需大幅调整。
注意事项
- 本系统仅作为辅助分析工具,投资决策需结合个人判断
- Server端需要稳定的股票数据源,确保数据的实时性和准确性
- API Key需要妥善保管,建议通过环境变量方式配置
- 不同市场(A股/港股/美股)的技术指标计算逻辑可能有差异,需要分别处理
核心要点
相关推荐

M&M's斥资数百万换掉人工蓝色素,为什么这么难?
玛氏公司投入数百万美元,试图用螺旋藻天然色素替代M&M豆中的人工蓝色素,却因物料浓稠堵塞管道、残留物引发霉菌风险而被迫改造整条产线。本文解析这场配方迁移背后的工程难题、消费者与监管推力,以及"无人工色素不等于健康"的清醒判断。

Meta全球AI开发者黑客松组队需求:计算机视觉与医疗AI方向
Reddit开发者发帖为Meta Global AI Developer Hackathon招募队友,方向聚焦计算机视觉与医疗AI。本文分析这一组队信号背后的赛道逻辑、技能互补需求与黑客松选题策略。

Claude 多个模型报错:Fable 5.1、Sonnet 5.5、Haiku 5.5 故障复盘
Claude Fable 5.1、Sonnet 5.5、Haiku 5.5 及 Opus 5.5 fast mode 出现错误率升高,官方 17 分钟内完成定位与恢复。本文梳理故障时间线、多模型连带故障的技术原因,以及对开发者重试与降级策略的实际启示。