Skip to content

AI-powered quantitative trading analysis tool with precise technical indicators and intelligent insights

License

Notifications You must be signed in to change notification settings

jerlinn/PulseTrader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

og-image

PulseTrader - 探讨 AI 量化投资的正确方向

在当今快速变化的金融市场中,我注意到一个吊诡的现象:市面上许多 AI 量化工具似乎在关键环节上偏离了正确方向

核心理念

数据神圣不可侵犯,必须用 100% 可靠的算法来承接。

为什么现有工具偏离正确方向?

  • 让概率替代确定性:把财务数据交给推理处理
  • 用信息掩盖信号:沉迷舆情与财报,忽略量价关系
  • 错置分工:让 AI 做计算,人来意会

PulseTrader 的正确姿势:

  • 算法保底精确:所有技术指标 100% 可验证、可复现
  • 量价优先分析:用量价关系和相对强度刻画情绪,用 SuperTrend 捕捉趋势
  • 化繁为简设计:少量稳健规则抵抗过拟合,回归量价分析本质
  • AI 负责洞察:智能分析与呈现,降低门槛、提高可得性

⚖️ 精确计算与智能洞察的完美平衡

PulseTrader 采用分离式架构设计,确保计算的绝对精确性和 AI 辅助的智能化:

技术架构

graph LR
    %% 用户交互层 - 圆角矩形
    USER([输入股票名称]) --> APP([应用层<br/>TrendInsigt.py])
    
    %% 数据处理层 - 矩形
    APP --> DATA[数据层<br/>stock_data_provider]
    DATA --> CACHE[(缓存层<br/>stock_cache.py<br/>SQLite Database)]
    
    %% 计算引擎层 - 六边形
    CACHE --> SUPER{{指标层<br/>supertrend_component}}
    CACHE --> RSI{{信号层<br/>rsi_component}}
    
    %% 存储管理层 - 梯形
    SUPER --> STORE[/存储层<br/>indicators_storage\]
    RSI --> STORE
    STORE --> CACHE
    
    %% 输出层 - 圆角矩形和菱形
    STORE --> VIZ[可视化层<br/>plotting_component]
    VIZ --> CHART([交互式图表输出])
    
    %% AI 分析层 - 云形状
    STORE --> AI{{AI 分析<br/>analysis.py<br/>GPT-5}}
    AI --> REPORT([智能分析报告])
    
    %% 工具层 - 圆形
    QUERY((查询工具<br/>indicators_query.py)) --> CACHE
    
    %% 用户交互层样式 - 蓝色系
    classDef userLayer fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#000
    class USER,APP,CHART,REPORT userLayer
    
    %% 数据层样式 - 紫色系
    classDef dataLayer fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000
    class DATA dataLayer
    
    %% 存储层样式 - 红色系
    classDef storageLayer fill:#ffebee,stroke:#d32f2f,stroke-width:4px,color:#000
    class CACHE storageLayer
    
    %% 计算层样式 - 橙色系
    classDef computeLayer fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
    class SUPER,RSI computeLayer
    
    %% 存储管理样式 - 绿色系
    classDef mgmtLayer fill:#e8f5e8,stroke:#388e3c,stroke-width:2px,color:#000
    class STORE,VIZ mgmtLayer
    
    %% AI 层样式 - 黄色系
    classDef aiLayer fill:#fff8e1,stroke:#ffa000,stroke-width:2px,color:#000
    class AI aiLayer
    
    %% 工具层样式 - 青色系
    classDef toolLayer fill:#e0f2f1,stroke:#00695c,stroke-width:2px,color:#000
    class QUERY toolLayer
Loading

核心特性

  • 统一数据库:SQLite 一库统管,6 张数据表科学设计,消除重复存储
  • 精确计算:100% 可靠算法,数据完整性检验 + Wilder 等确定性算法
  • 智能缓存:增量更新、快速查询,内置交易日历避免无效请求
  • 多市场支持:统一架构下支持 A 股和港股,自动识别股票代码类型

数据库表结构设计

%%{init: {'theme':'forest'}}%%
erDiagram
    stock_data ||--o{ technical_indicators : symbol
    technical_indicators ||--o{ rsi_divergences : symbol
    technical_indicators ||--o{ trend_signals : symbol
    stock_data ||--|| stock_info : code
    
    stock_data {
        integer id PK
        string symbol
        string stock_name
        string date
        real open_price
        real high_price  
        real low_price
        real close_price
        integer volume
        real daily_change_pct
        string market_type "a=A股, hk=港股"
        datetime created_at
        datetime updated_at
        unique symbol_date "UNIQUE(symbol, date)"
    }
    
    technical_indicators {
        integer id PK
        string symbol
        string stock_name
        string date
        real rsi14
        real ma10
        real daily_change_pct
        integer trend
        real upper_band
        real lower_band
        real volume
        real vol_ratio
        real vol_20d_avg
        real vol_20d_max
        real vol_50d_min
        integer is_high_vol_bar
        integer is_sky_vol_bar
        integer is_low_vol_bar
        integer near_20d_high
        integer price_condition
        datetime created_at
        datetime updated_at
        unique symbol_date "UNIQUE(symbol, date)"
    }
    
    rsi_divergences {
        integer id PK
        string symbol
        string stock_name
        string date
        string prev_date
        string type
        string timeframe
        real rsi_change
        real price_change
        real confidence
        real current_rsi
        real prev_rsi
        real current_price
        real prev_price
        datetime created_at
    }
    
    trend_signals {
        integer id PK
        string symbol
        string stock_name
        string date
        string signal_type
        real price
        real trend_value
        datetime created_at
    }
    
    stock_info {
        integer id PK
        string code
        string name
        string market_type "a=A股, hk=港股"
        datetime created_at
        datetime updated_at
        unique code_market "UNIQUE(code, market_type)"
    }
    
    trading_calendar {
        integer id PK
        string trade_date
        datetime created_at
        unique trade_date "UNIQUE(trade_date)"
    }
Loading

AI 智能分析层

Agent Z 交易助手的核心能力:

  • 量价核心:重视脉冲、背离等关键信号模式
  • 信号聚焦:极端条件深入分析,常规范围让图表说话
  • 左侧交易偏好:在弱势中寻找机会,避免追涨
  • 确定性偏好:信号冲突时优选等待
  • 动态仓位管理:基于 Kelly 准则的渐进式建仓和分层止损策略

化繁为简的设计理念

graph LR
    %% 输入层
    COMPLEX([复杂的市场信息]) --> FILTER{过滤机制}
    
    %% 过滤分支
    FILTER --> |基本面| NOISE1([财报迷宫])
    FILTER --> |舆  情| NOISE2([新闻噪音])
    FILTER --> |量价关系| CORE([核心信号])
    
    %% 核心分析层
    CORE --> TREND{{趋势判断}}
    CORE --> RSI_DIV{{情绪极值}}
    
    %% 输出层
    TREND --> SIGNAL([清晰的投资信号])
    RSI_DIV --> SIGNAL
    
    %% 噪音信息
    classDef noiseLayer fill:#ffebee,stroke:#d32f2f,stroke-width:2px,color:#000
    class COMPLEX,NOISE1,NOISE2 noiseLayer
    
    %% 过滤决策
    classDef filterLayer fill:#f5f5f5,stroke:#616161,stroke-width:2px,color:#000
    class FILTER filterLayer
    
    %% 核心信号
    classDef coreLayer fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px,color:#000
    class CORE coreLayer
    
    %% 分析引擎
    classDef engineLayer fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
    class TREND,RSI_DIV engineLayer
    
    %% 最终输出
    classDef outputLayer fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#000
    class SIGNAL outputLayer
Loading

可视化特点:默认采用对数坐标——用距离表示百分比,跨数量级比较更可靠;交互式图表一键切换周期

demo.mp4

成交量指标系统

三大成交量信号识别

  • 极致缩量:当日成交量为 50 日最低量,往往出现在市场恐慌或关注度极低时
  • 放量:20 日最高成交量 + 接近 20 日新高 + 强势上涨(日涨幅 >1.5% 且盘中涨幅 >2%)
  • 爆量:放量基础上成交量超过 20 日均量 3.5 倍的极端情况

量价配合原理

graph LR
    %% 量价关系分析
    VOL([成交量数据]) --> CALC{指标计算}
    PRICE([价格数据]) --> CALC
    
    %% 三种成交量信号判断
    CALC --> LOW[极致缩量<br/>50 日最低量<br/>情绪低迷信号]
    CALC --> HIGH[放量<br/>量价齐升<br/>资金关注度高]
    CALC --> SKY[爆量<br/>极端爆量<br/>情绪达到沸点]
    
    %% 投资含义
    LOW --> MEANING1[孕育机会]
    HIGH --> MEANING2[趋势延续]
    SKY --> MEANING3[谨慎追高]
    
    %% 样式定义
    classDef volLow fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000
    classDef volHigh fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
    classDef volSky fill:#ffebee,stroke:#d32f2f,stroke-width:2px,color:#000
    classDef meaning fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px,color:#000
    
    class LOW,MEANING1 volLow
    class HIGH,MEANING2 volHigh
    class SKY,MEANING3 volSky
    class VOL,PRICE,CALC meaning
Loading

🧐 一个真正好用的量化投资工具

核心优势

数据精确性:100% 算法可靠,每个计算结果可手工验证,LLM 推理与数据计算完全分离

实用性导向:目标是清晰可执行的交易计划,而非好看的回测曲线

简化设计

  • 极简交互:输入股票名称即开始分析
  • 对数坐标:用距离代表百分比,相同倍数即相同高度,长期趋势与复利一眼可读
  • 人性量化:RSI 背离检测捕捉情绪临界点

🚀 快速开始

该项目的分析模块需要 AIHUBMIX API KEY,先到 Aihubmix 官网申请

环境准备

安装 .NET Runtime(技术指标计算依赖):

# macOS
brew install dotnet

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y dotnet-runtime-8.0

# Windows
# 下载并安装 .NET 8.0 Runtime: https://dotnet.microsoft.com/download

安装项目依赖

# 克隆仓库
git clone https://github.com/jerlinn/PulseTrader.git
cd PulseTrader

# 安装依赖
pip install -r requirements.txt

# 配置系统环境变量
# 例如,在 ~/.zshrc 中加入
export AIHUBMIX_API_KEY="在上面申请的密钥"

# 运行指令使其生效
source ~/.zshrc

使用方式

All-in-One 模式(推荐)

# 交互式分析(推荐新用户)
python pulse_trader.py

# 直接分析指定 A 股
python pulse_trader.py --stock "杭钢股份"

# 直接分析指定港股(支持股票名称或代码)
python pulse_trader.py --stock "腾讯控股"
python pulse_trader.py --stock "00700"

# 仅技术分析(无 AI)
python pulse_trader.py --stock "东方电气" --no-ai

独立组件模式

# 技术分析组件
python TrendInsigt.py

# AI 分析组件
python analysis.py --chart figures/股票名_PulseTrader_日期.png

# 数据查询工具
python indicators_query.py 杭钢股份 --export

AI 分析定制

# 指定分析上下文
python analysis.py --context "今日减仓比例指导"
python analysis.py --context "分析突破有效性,判断追涨时机"

📖 项目结构

PulseTrader/
├── pulse_trader.py             # 🚀 All-in-One 集成脚本(推荐入口)
├── TrendInsigt.py              # 技术分析组件(可独立运行)
├── analysis.py                 # AI 分析组件(可独立运行)
├── analyst_prompt.md           # AI 分析师 system prompt
├── plotting_component.py       # 绘图组件(对数坐标可视化)
├── rsi_component.py            # RSI 计算与背离检测
├── supertrend_component.py     # SuperTrend 指标计算
├── volume_indicators.py        # 成交量指标计算(极致缩量、放量、爆量)
├── stock_data_provider.py      # 数据提供者接口(支持 A 股+港股)
├── stock_cache.py              # 统一数据库管理(SQLite)
├── indicators_storage.py       # 技术指标计算和存储
├── indicators_query.py         # 数据查询和导出工具
├── cache/
│   └── stock_data.db           # SQLite 数据库(统一存储)
├── figures/                    # 生成的图表文件
├── reports/                    # AI 分析报告(Markdown)
├── USAGE_PULSE_TRADER.md       # All-in-One 脚本详细使用指南
├── USAGE_INDICATORS_STORAGE.md # 数据存储系统文档
└── requirements.txt            # 项目依赖

层次设计

  • 集成层: pulse_trader.py - 统一入口
  • 分析层: TrendInsigt.py + analysis.py - 独立组件
  • 计算层: rsi_component.py + supertrend_component.py + volume_indicators.py - 核心算法
  • 数据层: stock_data_provider.py + stock_cache.py - 数据管理

多市场支持

支持 A 股和港股,智能识别输入

  • A 股代码:6 位数字格式(如 600519, 000001
  • 港股代码:5 位数字格式,以 0 开头(如 00700, 00941
  • 自动搜索:输入股票名称时自动跨市场搜索
  • 精确匹配:支持 XD 前缀等特殊情况处理

Todo

  • 组件化
  • 对接 LLM
  • 构建场域,影响 LLM 行为
  • prompt 层面大幅简化报告,提升可操作性和易读性
  • 数据库统计和管理功能
  • 数据交互设计优化:股票名称 → 数据和图表 → LLM → 报告
  • 分析时可以传入用户的其他上下文,如具体的问题或额外信息
  • 数据结构优化,实现数据持久化机制
  • 数据传递:补充交易量和量比的存储和传递
  • 修复非交易日获取数据时的处理异常
  • 对于除权除息日这种边缘情况,用 XD 前缀去匹配
  • All-in-one 脚本
  • H 股支持
  • 成交量指标:极致缩量、放量、爆量识别与可视化
  • 优化相对强度阈值、峰值算法和置信度阈值(详见 rsi_component.py 代码注释)
  • Deepseek 支持?
  • 美股支持

🤝 贡献指南

欢迎所有形式的贡献!无论你是想报告 bug、提出功能建议、改进文档还是提交代码。 请查看 CONTRIBUTING 了解详情。

⚠️ 免责声明

本项目仅供学习、研究和技术交流使用,不构成任何投资建议。

  • 非投资建议:所有分析结果均不构成投资建议,投资决策风险自担
  • 学习用途:作为 AI 与量化分析的教育工具,用于算法研究和技术交流
  • 技术限制:不保证数据源完整性,不应用于实盘交易决策
  • 合规使用:用户应遵守当地法规,与专业投资顾问咨询后再做决策

📄 许可证

本项目采用 GPL-3.0 许可证,详见 LICENSE 文件。

  • 完全开源:代码公开透明,个人学习研究完全自由
  • 商业使用:需遵循 GPL-3.0,衍生作品必须同样开源
  • 核心价值:推动行业正确发展,建立开放透明的投资工具生态

🔗 关注作者

Follow @eviljer 获取更多 AI 玩法。

About

AI-powered quantitative trading analysis tool with precise technical indicators and intelligent insights

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages