基于 Python 的量化股票分析工具,采用多维度分析框架,为股票交易提供结构化的决策支持。支持定时任务自动化和 n8n 工作流集成。
| 模块 | 功能 |
|---|---|
| 📊 6维度技术分析 | 趋势DK信号、主力筹码、全市场筹码、主力资金、量价关系、板块资金 |
| 📈 技术指标计算 | MACD、RSI、KDJ、布林带 |
| 📰 情感分析引擎 | 中文文本情感分析,支持程度副词、否定词、转折词加权 |
| 🗞️ 市场新闻聚合 | 财联社、新浪财经多源新闻 + 热词提取 |
| 🧪 筹码回测框架 | 4种内置策略,支持批量回测和参数优化 |
| 🔀 多数据源融合 | Provider Manager + 算法保底机制(akshare + efinance) |
| 📝 标准化输出 | LLM友好的JSON结构化数据 + 人类可读的Markdown报告 |
# 进入项目目录
cd /home/xtremcer/nas/auto-stock
# 分析默认股票(盛屯矿业 600711)
./run.sh
# 分析指定股票
./run.sh --code 000001 --name 平安银行
# 分析指定股票(自动获取名称)
./run.sh --code 600519# 最快模式 - 跳过新闻和市场上下文
./run.sh --no-news --no-market
# 只输出 JSON(n8n 集成用)
./run.sh --json-only --no-news./run.sh --date 2026-04-24./
├── run.sh # 快捷运行脚本
├── main.py # 主程序入口
├── config.py # 配置文件
├── requirements.txt # 依赖包列表
├── 使用说明.md # 完整使用文档
├── VERSION # 版本号
├── CHANGELOG.md # 变更日志
├── venv/ # Python虚拟环境
├── data/ # 输出报告目录
├── modules/ # 核心分析模块
│ ├── stock_analyzer.py # 主分析协调器
│ ├── news_sentiment.py # 新闻情绪分析
│ ├── market_sentiment.py # 市场情绪分析
│ ├── portfolio.py # 持仓数据
│ └── dimensions/ # 6个独立分析维度
├── indicators/ # 技术指标计算
│ ├── macd.py, rsi.py, kdj.py, bollinger.py
├── data_providers/ # 数据源提供者
│ ├── sentiment_analyzer.py # 情感分析引擎
│ ├── market_news.py # 市场新闻聚合
│ ├── provider_manager.py # 多数据源融合引擎
│ ├── fusion_engine.py # 数据融合算法
│ ├── akshare_provider.py # akshare 数据源
│ ├── efinance_provider.py # efinance 数据源
│ └── chip_algorithm.py # 筹码算法保底
├── backtest/ # 回测框架
│ └── chip_backtest.py # 筹码策略回测
└── core/ # 核心工具
└── output_formatter.py # 输出格式化器
运行成功后,data/ 目录下生成两个文件:
data/
├── 2026_04_24_主升浪策略分析报告.md # 人类可读报告
└── 2026_04_24_主升浪策略分析报告.json # LLM友好结构化数据
# 每个交易日 15:30 收盘后自动分析
30 15 * * 1-5 cd /home/xtremcer/nas/auto-stock && ./run.sh --json-only --no-news >> /tmp/stock.log 2>&1
# 每周五 16:00 批量回测验证
0 16 * * 5 cd /home/xtremcer/nas/auto-stock && python3 test_sentiment_backtest.py >> /tmp/backtest.log 2>&1在 n8n Execute Command 节点中运行:
cd /home/xtremcer/nas/auto-stock && ./run.sh --json-only --no-news --code 000001然后用 Read File 节点读取生成的 JSON 文件,解析后通过 Telegram/钉钉发送通知。
from backtest.chip_backtest import ChipBacktester, CompositeChipStrategy
backtester = ChipBacktester()
result = backtester.backtest(
stock_code="000001",
strategy=CompositeChipStrategy(),
hold_days=10
)
print(f"胜率: {result.win_rate:.1%}")
print(f"盈亏比: {result.profit_factor:.2f}")
print(f"总收益率: {result.total_pnl:.2%}")| 策略 | 说明 |
|---|---|
ProfitRatioStrategy |
获利比例 < 20% 买入,> 80% 卖出 |
ConcentrationStrategy |
集中度快速上升买入,快速下降卖出 |
ChipPeakStrategy |
价格从下逼近筹码峰买入,跌破筹码峰卖出 |
CompositeChipStrategy |
三者加权(40% + 35% + 25%) |
完整使用说明请见:使用说明.md
当前版本:v0.1.0.0
查看 CHANGELOG.md 了解更新历史。
🤖 Powered by Claude Code