乐于分享
好东西不私藏

如何搭建一个自己的AI量化交易助手

如何搭建一个自己的AI量化交易助手

最近,终于把那个31.8K star的开源项目——daily_stock_analysis完整测评完了。项目的功能完整性很强,但最值得借鉴的,是它内置的11个投资策略

接下来,我会整理这个项目的完整流程,并把这11个策略的核心逻辑,每一条浓缩成一句量化策略,希望能给你们一些参考。

本文共分为八个章节:

  1. 实验摘要:包含整体框架与实验的配置与结果

  2. 数据层:数据源字段介绍

  3. prompt层:LLM System promtp核心内容摘取

  4. 11个核心策略:关键章节,总结11个策略

  5. agent模式:LLM分析流程

  6. 策略路由:LLM策略选择

  7. 持仓风险分析:持仓-规则分析

  8. 回测:LLM效果跟踪


文末有少量测试机会,欢迎大家阅读。

当前,llm的作用应该是辅助进行量化交易,llm可以作为投资的参考、信息的收集与汇总,如果你也是这么想的,那这个项目价值还是挺高的,如果仅仅依赖于llm直接进行赚钱,那还得继续跟进技术发展。

github项目:https://github.com/ZhuLinsen/daily_stock_analysis.git


一.  实验摘要
整个系统我大概梳理了下,可以分为四层,数据层用来获取数据源,计算层通过python计算各类指数分支,ai层用于给出决策和策略,最终给出完整的分析报告。
本次实验使用资源如下:
  • 数据源Tushare
  • AI模型:Deepseek 
  • 新闻源anspire
  • 实验标的:A股-贵州茅台 (600519.SH)
贵州茅台测试结果:
详细报告(部分):

二. 数据层

当前章节主要是介绍下拉去的数据源大概包括哪些核心信息以及项目中的核心定义。

2.1 核心数据结构

日线标准化列(源码中的硬定义):

字段
含义
date
交易日期
open/high/low/close
开高低收
volume
成交量
amount
成交额
pct_chg
涨跌幅

实时行情核心字段:

字段
含义
典型用途
price
最新价
基准
change_pct
涨跌幅
强弱感知
volume_ratio
量比
放量/缩量判断
turnover_rate
换手率
情绪热度
pe_ratio/pb_ratio
PE/PB
估值风险
change_60d
60日涨跌幅
中期趋势

筹码分布(可选,但强烈推荐):

字段
含义
profit_ratio
获利比例(0-1)
avg_cost
平均成本
concentration_90
90%筹码集中度
chip_status
集中/分散/正常

趋势预计算示例(模型直接引用):

{"trend_status": "uptrend","ma_alignment": "bullish","bias_ma5": 2.1,"volume_status": "normal","signal_score": 68,"risk_factors": ["乖离率接近警戒区"]}

2.2 数据层的核心原则

多源降级 + 断点续传 + 前复权对齐

一个源挂了自动切下一个;已经拉过的交易日不重复请求;所有均线计算基于前复权,避免除权缺口造成的假信号。


三. prompt层

梳理了本项目中所有的prompt,并从中提取比较重要的设定,整理出以下四个核心prompt设定

3.1 System Prompt原则
    结论先行:核心总结一句话,不超过30字分仓建议:无持仓VS有持仓,给出不同建议精确价位:止损、人场必须给出具体数字,不能含糊检查清单可视化:✅⚠️❌ 三个符号风险优先:风险警报必须显著,高严重度风险直接降级信号
    3.2 舆情段的强制规则
    以下是 **{stock_name}({code})** 近{news_window_days}日的新闻搜索结果,请重点提取:1. 🚨 风险警报:减持、处罚、利空2. 🎯 利好催化:业绩、合同、政策3. 📊 业绩预期:年报预告、业绩快报4. 🕒 时间规则(强制):   - 输出到各字段的每一条都必须带具体日期(YYYY-MM-DD   - 超出近{news_window_days}日窗口的新闻一律忽略   - 时间未知、无法确定发布日期的新闻一律忽略
    3.3 数据缺失时的禁令
    ⚠️ 数据缺失警告由于接口限制,当前无法获取完整的实时行情和技术指标数据。请忽略上述表格中的N/A数据,重点依据【舆情情报】中的新闻进行基本面和情绪面分析。在回答技术面问题(如均线、乖离率)时,请直接说明“数据缺失,无法判断”,严禁编造数据。
    3.4 五问检查清单
    ### 重点关注(必须明确回答):1. 当前结构是否满足激活技能的关键触发条件?2. 当前入场位置与风险回报是否合理?若偏离过大,请明确说明等待条件3. 量能、波动与筹码结构是否支持当前结论?4. 消息面有无重大利空或与技能结论冲突的信息?5. 若结论成立,具体触发条件、止损位、观察点分别是什么?

    四、11个实战策略

    本章节是我认为该项目中最为核心的内容,共11个策略,我会对这个11个策略一一进行梳理,并根据具体的内容,总结成一句实用心法,以供参考。

    策略1:默认多头趋势(bull_trend)

    适用市况:上涨市核心逻辑:趋势向上 + 风险可控 + 不追高

    判断标准:

    • MA5/MA10/MA20 多头排列且MA20斜率向上

    • 优先“回踩不破”而非“高位追涨”

    • 放量突破有效阻力时可提高胜率评级

    • 跌破MA20则降低看多权重

    评分调整:

    • 多头排列 + 趋势良好:+12

    • 回踩关键均线企稳:+8

    • 放量突破关键阻力:+10

    • 跌破MA20:-12

    实战心法:这是默认策略,适合大多数“正常”股票。但不适合暴涨暴跌的妖股。


    策略2:均线金叉(ma_golden_cross)

    适用市况:上涨市核心逻辑:MA5上穿MA10(或MA10上穿MA20)+ 量能确认

    判断标准:

    • 主信号:MA5在最近3个交易日内上穿MA10

    • 强信号:MA10上穿MA20(更慢但更可靠)

    • 金叉日成交量 > 5日均量,量比 > 1.2

    • 盘整后金叉 > 上升趋势中金叉 > 下跌中金叉

    • 乖离率 < 5%

    实战心法:金叉要配合量能。无量金叉=假信号。盘整末端的最可靠。


    策略3:放量突破(volume_breakout)

    适用市况:上涨市核心逻辑:收盘站上阻力位 + 量能显著放大(>2倍均量)

    判断标准:

    • 阻力位:20日高点或前期震荡平台顶部

    • 成交量 > 5日均量的2倍,或量比 > 2.0

    • 收盘价在当日振幅上方30%(强势收盘)

    • 次日开盘在突破位之上(区分真假突破)

    实战心法:很多假突破第二天就跌回去。真突破需要一个“确认日”——次日收盘还在突破位之上。


    策略4:缩量回踩(shrink_pullback)

    适用市况:下跌市/横盘市核心逻辑:上升趋势中回踩MA5/MA10,量能萎缩,获得支撑

    判断标准:

    • 前提:MA5 > MA10 > MA20(上升趋势)

    • 价格回踩MA5(误差1%以内)或MA10(误差2%以内)

    • 回调期间成交量 < 5日均量的70%

    • MA5乖离率 < 2%(最佳买入区间)

    实战心法:这是趋势交易里性价比最高的入场点。既确认了趋势,又拿到了好价格。


    策略5:箱体震荡(box_oscillation)

    适用市况:横盘市核心逻辑:箱体内“贴着支撑买、接近阻力卖”

    判断标准:

    • 箱体底部(支撑):近期多次触碰未跌破的低点连线(至少2-3次)

    • 箱体顶部(阻力):近期多次触碰未突破的高点连线

    • 箱底区域(距支撑≤5%):买入/加仓信号

    • 箱顶区域(距阻力≤5%):减仓/止盈信号

    • 箱中区域:观望

    假突破识别:

    • 单日盘中突破后快速回撤,收盘回到箱内 → 假突破

    • 连续两日收盘突破箱体,且量能放大 → 真突破

    实战心法:箱体策略最怕假突破。用“两日规则”过滤掉大部分假信号。


    策略6:底部放量(bottom_volume)

    适用市况:下跌市核心逻辑:长期下跌后,极端缩量 → 突然放量企稳,潜在反转

    判断标准:

    • 股价从20日高点跌至近期低点,跌幅 > 15%

    • 成交量 > 5日均量的3倍(量比>3.0)

    • 当日K线收阳,最好带长下影线

    • 出现在前期极度缩量之后

    风险提示:

    • 这是反转信号,风险高于趋势跟踪

    • 仓位不超过2-3成

    • 止损设在近期低点下方

    实战心法:底部放量是左侧交易,不要重仓。真正的底部往往不是一波完成的,可能还有二次探底。


    策略7:缠论(chan_theory)

    适用市况:高波动核心逻辑:分型 → 笔 → 线段 → 中枢 → 背驰

    核心信号 – 背驰判断:

    • 顶背驰:价格创新高,MACD红柱面积缩小 → 卖出/减仓

    • 底背驰:价格创新低,MACD绿柱面积缩小 → 买入/加仓

    买卖点体系:

    • 一买(最强):下跌趋势中,最后一个中枢出现底背驰

    • 二买:离开下跌中枢后的第一次回调不破中枢高点

    • 三买:中枢震荡后向上突破(不回中枢内)

    实战心法:缠论很复杂,建议先从“背驰”这个单一信号学起。日线级别底背驰+一买,胜率很高。


    策略8:波浪理论(wave_theory)

    适用市况:高波动核心逻辑:5浪推进 + 3浪调整

    推动浪特征:

    • 第1浪:趋势反转第一波,成交量温和放大

    • 第3浪:最强劲,放大量,MACD强势,绝不是最短浪

    • 第5浪:量能弱于第3浪,出现顶背离则即将结束

    最优买点:

    • 第2浪回调企稳(黄金坑):最安全买点,止损设第1浪起点

    • 第4浪回调企稳:次优买点,止损设第1浪顶部

    • 第3浪初期突破:放量突破第1浪高点时

    实战心法:数浪非常主观。建议把它当成“框架”而非“教条”。3浪不是最短浪——这是唯一的硬约束。


    策略9:龙头策略(dragon_head)

    适用市况:板块热点核心逻辑:板块轮动中识别领涨股

    判断标准:

    • 所在板块在近5-10日涨幅前列

    • 该股在板块内率先上涨或率先涨停

    • 换手率 > 5%,量比 > 1.5

    • 有板块级催化剂(政策、事件、业绩)

    关于乖离的特别说明:

    • 龙头股可适当放宽乖离率要求至7%

    • 但超过10%仍需谨慎

    实战心法:龙头股买的是“板块溢价”,不是个股阿尔法。板块熄火,龙头立刻走人。


    策略10:情绪周期(emotion_cycle)

    适用市况:板块热点核心逻辑:恐慌→悲观→怀疑→希望→乐观→兴奋→贪婪→狂热

    换手率情绪标尺:

    • < 0.5%/日:市场冷淡,潜在底部(贪婪时买入别人的恐慌)

    • 0.5%-2%:正常交投,情绪平稳

    • 2%-5%:活跃,不宜追高

    • 5%-10%:高热度,警惕情绪顶

    • 10%:极度过热,短期顶部

    情绪底部特征(买入区):

    • ✅ 近20日换手率处于近一年低位

    • ✅ 成交量持续萎缩,低于近60日均量50%以上

    • ✅ 近期新闻以低调、中性或负面为主

    • ✅ 股价在MA20附近或以下

    • ✅ 机构持仓稳定(如有数据)

    情绪顶部特征(减仓区):

    • ⚠️ 近5日换手率 > 近20日均值的2倍

    • ⚠️ 成交量脉冲式放大(单日暴量)

    • ⚠️ 新闻以利好兑现、散户追捧为主

    • ⚠️ 股价偏离MA5超过8%

    • ⚠️ MACD出现顶背离

    实战心法:这是最接近“逆向投资”的策略。大众恐慌时我贪婪,大众贪婪时我谨慎。需要极强的心脏。


    策略11:一阳夹三阴(one_yang_three_yin)

    适用市况:形态识别(无特定市况)核心逻辑:大阳 → 缩量三阴 → 再阳突破,整理结束信号

    形态定义(最近5个交易日):

    • 第1日:大阳线(实体 > 股价的2%)

    • 第2-4日:连续三根阴线或小K线

      • 最低价不跌破第1日开盘价

      • 成交量逐步萎缩(量比 < 0.8)

    • 第5日:阳线,收盘价突破第1日收盘价

    实战心法:这个形态本质是“上升中继整理”。三根阴线缩量说明抛压衰竭,再阳突破确认整理结束。


    五、Agent模式

    本章节主要介绍下项目主要是用react agent方式,这在llm agent中是很常用的模式,本质上就是llm规划 -> 执行工具 -> 结果返回-> llm进行思考,决定下一步骤的循环模式。最主要的是在这个模式下嵌入了一套标准四阶段workflow。

     备注:在整个 ReAct 循环中,系统通过提示词引导模型:先凑齐 ① 数据,基于数据分析 ② 和 ③,最后当模型认为信息足以支撑决策时,才会自动进入 ④ 输出结果。

    六、策略路由

    整个系统运行时,策略路由及优先级逻辑,支持用户指定。

    路由逻辑:

    1. 用户显式指定:用户点“箱体震荡”,就用箱体策略

    2. 自动路由:系统根据技术指标推断当前市场状态

      • ma_alignment: bullish + trend_score > 70 → trending_up

      • ma_alignment: bearish → trending_down

      • 均线缠绕 + 窄幅波动 → sideways

    3. 匹配策略:在market_regimes字段上匹配

    4. 兜底:无匹配则用默认激活集

    举例:

    • Agent输出:ma_alignment="bullish"trend_score=78

    • 系统推断:trending_up

    • 选中策略:所有market_regimes包含trending_up

    • 若多个匹配,按优先级排序,Top1作为主策略,其余作为补充视角


    七、持仓风险分析

    持仓分析这一块儿完全依赖于规则,而非llm判断,llm的作用是将规则结果总结成一句口语性话术,不用llm亦可。

    核心指标与默认阈值

    指标
    默认阈值
    含义
    单票集中度
    35%
    单只股票市值占比超35%告警
    行业集中度
    35%
    同一行业权重超35%告警
    最大回撤
    15%
    区间内最大回撤超15%告警
    止损距离
    10%
    浮亏达10%触发止损
    临近止损
    8%
    浮亏达8%进入观察

    风险报告内容

    • 单标的集中度:各股票市值权重 vs 阈值

    • 行业集中度:按行业分类汇总后 vs 阈值

    • 回撤监控:当前回撤 vs 历史最大回撤

    • 止损临近/触发列表:哪些标的已到止损线

    AI的辅助角色PortfolioAgent可以在规则结果的基础上,生成口语化的叙事和建议(“你的白酒仓位过重,且这几只白酒股相关性高,波动会被放大”),但不替代规则计算


    八、回测

    回测的目的是根据事后真实变化,判断LLM的分析是否有效。

    方向推断逻辑(关键词匹配)

    备注:用于分析llm的输出,匹配具体的意图

    operation_advice字段中提取意图:

    _BULLISH_KEYWORDS =("买入","加仓","做多","buy","add")_BEARISH_KEYWORDS =("卖出","减仓","做空","sell","reduce")_HOLD_KEYWORDS =("持有","hold")_WAIT_KEYWORDS =("观望","等待","wait")_NEGATION_PATTERNS =("不","不要","别","not","don't","no","never","avoid")

    逻辑:

    • “不加仓”因为有否定词,不会误判为bullish

    • “建议观望,等待回踩”会被识别为WAIT

    • 中性带宽内的横盘 → 方向判断为NEUTRAL

    回测输出

    字段
    含义
    direction_expected
    bull/bear/hold/wait
    direction_correct
    方向是否与后续走势一致
    simulated_return_pct
    若按建议操作的模拟收益
    neutral_band_triggered
    是否在中性带宽内(窄幅震荡)

    回测示例(虚构数据)

    分析日建议:“缩量回踩MA5,可轻仓介入,止损MA20下方”

    → 推断意图:BULLISH→ 后5日涨幅:+3.2%(方向正确)→ 模拟收益:+2.8%(假设半仓介入)


    以上,本次实践告一段落,如果有想测试某个A股的分析报告,可以点一下关注以及在评论区打出对应的股票代码,我会在后台给出当前时刻的股票分析报告,会有一定的延时。因为涉及到大量token消耗,会适量给出,先到先得。

    如果觉得有用,【赞同】+【评论】+【关注】就是对我最大的鼓励,感谢,下期见。