艾略特波浪理论智能选股系统

ElliottWaveScanner - 艾略特波浪理论智能选股系统

基于艾略特波浪理论的智能股票分析和选股系统,自动识别波浪模式并生成投资建议。

项目简介

ElliottWaveScanner 是一个 .NET 8 C# 控制台应用程序,实现了艾略特波浪理论的自动化分析。系统能够:

  • 自动识别股票的波浪结构(1-2-3-4-5 推动浪和 A-B-C 修正浪)
  • 根据波浪位置生成买入/卖出/持有建议
  • 支持多种数据源(通过 MooTdx 集成通达信数据)
  • 生成详细的分析报告(控制台、CSV、JSON 格式)
  • 提供波浪置信度和风险等级评估

功能特性

波浪分析

  • 推动浪识别: 自动识别 1-2-3-4-5 推动浪结构
  • 修正浪识别: 识别 A-B-C 修正浪模式
  • 延伸浪检测: 检测 3 浪和 5 浪的延伸情况
  • 失败浪识别: 识别失败浪模式
  • 规则验证: 验证艾略特波浪的基本规则

选股策略

  • 基于波浪位置的智能选股
  • 综合评分系统(0-100分)
  • 风险等级评估(1-5级)
  • 多维度信号生成

数据支持

  • 支持 MooTdx 数据源(通达信)
  • 支持实时行情和历史K线数据
  • 支持股票列表和基本信息获取

报告生成

  • 控制台彩色报告输出
  • CSV 格式导出
  • JSON 格式导出
  • 详细的波浪分析说明

系统要求

  • .NET 8.0 SDK
  • Python 3.13
  • 通达信客户端(用于数据源)
  • Windows 操作系统

安装步骤

1. 克隆项目

bash 复制代码
git clone https://github.com/yourusername/ElliottWaveScanner.git
cd ElliottWaveScanner

2. 安装 Python 依赖

bash 复制代码
pip install mootdx

3. 配置 Python 路径

编辑 ElliottWaveScanner.csproj,确保 Python DLL 路径正确:

xml 复制代码
<PropertyGroup>
  <PythonDll>C:\\Python313\\python313.dll</PythonDll>
</PropertyGroup>

4. 配置通达信数据路径

编辑 DataProviders/MooTdxDataProvider.cs,设置通达信数据目录:

csharp 复制代码
_reader = ReaderFactory.factory(market: "std", tdxdir: "D:/new_tdx");

5. 还原 NuGet 包

bash 复制代码
dotnet restore

使用方法

构建项目

bash 复制代码
dotnet build

运行程序

bash 复制代码
dotnet run

发布为可执行文件

bash 复制代码
dotnet publish -c Release -r win-x64 --self-contained

项目结构

复制代码
ElliottWaveScanner/
├── Analysis/                  # 分析引擎
│   └── ElliottWaveEngine.cs   # 艾略特波浪分析核心引擎
├── DataProviders/             # 数据提供者
│   ├── IStockDataProvider.cs  # 数据提供者接口
│   ├── MooTdxDataProvider.cs # MooTdx 数据提供者
│   ├── MockStockDataProvider.cs # 模拟数据提供者
│   ├── DataFrameHelper.cs    # DataFrame 转换辅助类
│   └── PythonEngineHelper.cs  # Python 引擎辅助类
├── Models/                    # 数据模型
│   ├── Stock.cs              # 股票模型
│   ├── PriceBar.cs           # K线数据模型
│   └── Wave.cs               # 波浪模型
├── Reports/                   # 报告生成
│   └── ReportGenerator.cs   # 报告生成器
├── Services/                  # 业务逻辑
│   └── ElliottWaveScanner.cs # 选股扫描器
├── Program.cs                 # 程序入口
└── ElliottWaveScanner.csproj # 项目配置文件

艾略特波浪理论说明

推动浪(1-2-3-4-5)

  • 1浪: 上涨趋势起点,通常涨幅较小,成交量温和
  • 2浪: 1浪后的回调,不应跌破1浪起点(回撤通常不超过61.8%)
  • 3浪: 最强上涨浪,通常涨幅最大,成交量最大(最佳买入时机)
  • 4浪: 3浪后的回调,不应与1浪价格区间重叠
  • 5浪: 最后一波上涨,可能延伸,注意风险

修正浪(A-B-C)

  • A浪: 下跌回调开始,市场开始转向
  • B浪: 下跌中的反弹,通常较弱
  • C浪: 最后一波下跌,可能反转

重要规则

  1. 浪2不能回撤超过浪1的100%
  2. 浪3通常是最强的浪
  3. 浪4不能与浪1的价格区间重叠
  4. 浪4回调不能超过浪3的100%
  5. 浪3和浪5可能出现延伸

选股信号说明

强烈买入信号

  • 3浪主升阶段
  • 高置信度分析
  • 上涨趋势明确

买入信号

  • 1浪起点
  • 4浪回调结束
  • C浪完成可能反转

持有/关注

  • 2浪回调中
  • B浪反弹中
  • 趋势不明朗

观望/谨慎

  • A浪下跌中
  • 5浪末期
  • 趋势转折点

卖出信号

  • 5浪完成
  • 高风险位置
  • 趋势可能反转

配置选项

选股条件(StockFilterCriteria)

csharp 复制代码
// 最小成交量
MinVolume = 100000000

// 最小成交额
MinAmount = 1000000000

// 最小波浪置信度
MinConfidence = 60

// 最小分析K线数量
MinPriceBars = 60

// 允许的波浪类型
AllowedWaveTypes = { ImpulseWave1, ImpulseWave3, ... }

波浪分析配置(ElliottWaveConfig)

csharp 复制代码
// 最小所需K线数量
MinBarsRequired = 60

// Pivot点回看周期
PivotLookback = 5

// 最小Pivot点间距
MinPivotDistance = 10

输出示例

控制台输出

复制代码
╔══════════════════════════════════════════════════════════════════════════════╗
║                  艾略特波浪理论智能选股系统 v1.0                           ║
╚══════════════════════════════════════════════════════════════════════════════╝

开始扫描股票...

  >> 正在获取股票列表...
  >> 获取到 5000 只股票,开始分析...
  >> 分析中 [1/5000]: 000001 平安银行
  ...

╔══════════════════════════════════════════════════════════════════════════════╗
║                    艾略特波浪理论选股分析报告                                  ║
╠══════════════════════════════════════════════════════════════════════════════╣
║  分析时间: 2026-02-25 19:03:47                                         ║
║  符合条件股票数量: 25只                                          ║
╚══════════════════════════════════════════════════════════════════════════════╝

══════════════════════════════════════════════════════════════════════════════
  强烈买入信号 (5只)
══════════════════════════════════════════════════════════════════════════════

  【000001】平安银行
  ┌─────────────────────────────────────────────────────────────────┐
  │ 建议: 强烈买入      评分:  85/100  风险: 2/5                      │
  │ 現价:    12.50  涨跌:   +2.35%                              │
  │ 波浪: 推动浪    趋势: Upward    置信度:    78%  │
  │ 位置: 3浪主升中                                │
  │ 整体: 01/15->02/25    10.50->   12.50 ( +19.05%)│
  │ 波浪: 1 2 3 4 5                                     │
  │ 信号:                                                                 │
  │   • 【3浪主升】强烈买入信号                                             │
  │   • 当前处于最强上涨浪,建议重仓持有                                      │
  │   • 上涨趋势 - 整体涨幅: 19.05%                                        │
  └─────────────────────────────────────────────────────────────────┘

...

CSV 输出

csv 复制代码
代码,名称,现价,涨跌%,建议,评分,风险,行业,波浪类型,趋势,置信度%,位置
000001,平安银行,12.50,2.35,强烈买入,85,2,银行,推动浪,Upward,78,3浪主升中

JSON 输出

json 复制代码
[
  {
    "code": "000001",
    "name": "平安银行",
    "currentPrice": 12.50,
    "changePercent": 2.35,
    "recommendation": "强烈买入",
    "score": 85,
    "riskLevel": 2,
    "waveSequences": [...]
  }
]

常见问题

Q: Python DLL 找不到怎么办?

A: 确保 Python 3.13 已正确安装,并在 ElliottWaveScanner.csproj 中配置正确的路径。

Q: 通达信数据路径如何配置?

A: 编辑 DataProviders/MooTdxDataProvider.cs,修改 tdxdir 参数为你的通达信安装目录。

Q: 如何调整选股条件?

A: 在 Services/ElliottWaveScanner.cs 中修改 StockFilterCriteria 的默认值,或在创建扫描器时传入自定义条件。

Q: 支持哪些数据源?

A: 目前支持 MooTdx(通达信),可以通过实现 IStockDataProvider 接口添加其他数据源。

开发指南

代码规范

  • 使用 .NET 8 特性
  • 遵循 C# 命名约定
  • 使用文件作用域命名空间
  • 启用可空引用类型

详细的开发指南请参考 <AGENTS.md>。

添加测试

bash 复制代码
# 添加 xUnit 测试项目
dotnet new xunit -n ElliottWaveScanner.Tests
dotnet add ElliottWaveScanner.Tests reference ElliottWaveScanner.csproj

# 运行测试
dotnet test

贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 <LICENSE> 文件。

免责声明

本软件仅供学习和研究使用,不构成任何投资建议。股市有风险,投资需谨慎。使用本软件产生的任何投资决策风险由使用者自行承担。

联系方式

致谢

  • 艾略特波浪理论创始人 Ralph Nelson Elliott
  • MooTdx 数据库维护者
  • .NET 社区

注意: 本项目仍在开发中,功能可能不完整或有错误。使用时请谨慎。

相关推荐
电子科技圈2 小时前
XMOS推动智能音频等媒体处理技术从嵌入式系统转向全新边缘计算
人工智能·mcu·物联网·设计模式·音视频·边缘计算·iot
小马_xiaoen2 小时前
AI Prompt 工程完全指南:从入门到精通的提示词设计艺术
人工智能·prompt
GetcharZp2 小时前
谁是OpenClaw?这个一夜爆火的“AI打工人”,正在悄悄接管你的电脑!
人工智能·后端
柒.梧.3 小时前
基于Netty+WebSocket+DeepSeek AI 实现即时聊天功能
人工智能·websocket·网络协议
初恋叫萱萱7 小时前
深入解析 Rust + LLM 开发:手把手教你写一个 AI 运维助手
运维·人工智能·rust
AI大模型..7 小时前
Dify 本地部署安装教程(Windows + Docker),大模型入门到精通,收藏这篇就足够了!
人工智能·程序员·开源·llm·github·deepseek·本地化部署
小陈phd10 小时前
多模态大模型学习笔记(七)——多模态数据的表征与对齐
人工智能·算法·机器学习
摆烂小白敲代码10 小时前
腾讯云智能结构化OCR在物流行业的应用
大数据·人工智能·经验分享·ocr·腾讯云