2025-10-24 23:33:14 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 21:19:32 +08:00
2025-10-24 23:33:14 +08:00
2025-05-23 19:08:45 +08:00
2025-10-24 23:33:14 +08:00
2025-05-23 21:19:32 +08:00
2025-05-23 21:19:32 +08:00
2025-05-23 21:19:32 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 19:09:55 +08:00
2025-05-23 21:19:32 +08:00
2025-05-23 21:19:32 +08:00
2025-05-23 21:19:32 +08:00

缠论分析系统

一个基于Python实现的完整缠论技术分析系统,支持数字货币市场的实时数据分析和可视化展示。

系统特性

核心功能

  • K线包含关系处理:自动识别和合并K线包含关系
  • 分型识别:精确识别顶分型和底分型,支持多级别强度验证
  • 笔构建:基于分型生成完整的笔结构
  • 线段识别:从笔构建线段,支持线段确认和破坏逻辑
  • 中枢检测:识别不同级别的中枢,分析震荡区间
  • 买卖点信号:实现三类买卖点的自动识别

数据支持

  • 支持多个主流数字货币交易所(Binance、OKX等)
  • 多时间周期分析(1分钟到1周)
  • 实时数据获取和历史数据分析
  • 数据清理和验证机制

可视化功能

  • 交互式图表:基于Plotly的高质量图表
  • Web界面Dash框架构建的现代化Web界面
  • 多层次展示:K线、分型、笔、线段、中枢、买卖点一体化显示
  • 统计分析:提供详细的统计信息和模式分析

项目结构

/chanlun
├── /data              # 数据模块
│   ├── __init__.py
│   ├── data_fetcher.py    # 数据获取(ccxt
│   └── data_processor.py  # 数据处理和清理
├── /core              # 缠论核心逻辑
│   ├── __init__.py
│   ├── kline.py           # K线包含关系处理
│   ├── fractal.py         # 分型识别
│   ├── stroke.py          # 笔逻辑
│   ├── segment.py         # 线段逻辑
│   ├── central_bank.py    # 中枢识别
│   ├── trading_signal.py  # 买卖点信号
│   └── chan_analyzer.py   # 综合分析器
├── /web               # Web可视化
│   ├── __init__.py
│   ├── app.py             # Dash应用
│   └── visualization.py   # 图表生成
├── /tests             # 测试文件
├── main.py            # 主程序入口
├── requirements.txt   # 依赖包
└── README.md         # 说明文档

安装和使用

环境要求

  • Python 3.8+
  • 推荐使用虚拟环境

安装步骤

  1. 克隆项目
git clone <repository-url>
cd chanlun
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate     # Windows
  1. 安装依赖
pip install -r requirements.txt

运行方式

1. Web界面模式(推荐)

python main.py --mode web

然后在浏览器中访问 http://localhost:8050

2. 命令行模式

# 基本分析
python main.py --mode cli --symbol BTC/USDT --timeframe 1h

# 自定义参数
python main.py --mode cli \
    --symbol ETH/USDT \
    --timeframe 4h \
    --limit 1000 \
    --fractal-strength 2 \
    --export

参数说明

参数 说明 默认值
--mode 运行模式:web或cli web
--symbol 交易对 BTC/USDT
--timeframe 时间周期 1h
--limit K线数量 500
--fractal-strength 分型强度 1
--exchange 交易所 binance
--port Web端口 8050
--export 导出结果 False

缠论理论说明

基础概念

  1. K线包含关系

    • 当一根K线的高低点完全包含另一根K线时,需要进行合并处理
    • 合并规则根据当前趋势方向确定
  2. 分型

    • 顶分型:中间K线高点比左右K线都高
    • 底分型:中间K线低点比左右K线都低
    • 支持不同强度的分型识别
    • 连接相邻不同类型分型的直线
    • 必须满足严格的分型交替规则
  3. 线段

    • 由至少3笔组成
    • 有明确的生成和破坏规则
  4. 中枢

    • 至少3个线段的重叠区域
    • 是价格震荡的核心区间
  5. 买卖点

    • 一类:中枢突破点
    • 二类:回拉确认点
    • 三类:次级别突破点

使用示例

Web界面使用

  1. 启动Web服务
  2. 选择交易对和时间周期
  3. 调整分析参数
  4. 点击"获取数据并分析"
  5. 查看可视化结果和统计信息

编程接口

from data.data_fetcher import DataFetcher
from core.chan_analyzer import ChanAnalyzer

# 获取数据
fetcher = DataFetcher()
klines = fetcher.fetch_klines('BTC/USDT', '1h', 500)

# 缠论分析
analyzer = ChanAnalyzer(klines)
results = analyzer.run_full_analysis()

# 获取分析结果
fractals = analyzer.fractals
strokes = analyzer.strokes
segments = analyzer.segments
central_banks = analyzer.central_banks
trading_points = analyzer.trading_points

# 当前市场结构
market_structure = analyzer.get_current_market_structure()

输出说明

分析结果

  • 分型数据:包含位置、价格、类型、强度等信息
  • 笔数据:起止点、方向、长度、强度等
  • 线段数据:组成笔、方向、确认状态等
  • 中枢数据:边界价格、级别、持续时间等
  • 买卖点:类型、价格、强度、描述等

可视化图表

  • K线图与成交量
  • 分型标记(三角形标识)
  • 笔(实线连接)
  • 线段(虚线连接)
  • 中枢(矩形区域)
  • 买卖点(箭头标识)

注意事项

  1. 数据质量:确保网络连接稳定,避免数据获取失败
  2. 计算复杂度:大量数据分析可能需要较长时间
  3. 参数调整:分型强度等参数需要根据具体情况调整
  4. 投资风险:本系统仅供技术分析参考,不构成投资建议

技术特点

  • 模块化设计:各功能模块独立,便于维护和扩展
  • 面向对象:使用OOP设计,代码结构清晰
  • 类型提示:完整的类型注解,提高代码可读性
  • 错误处理:完善的异常处理机制
  • 日志记录:详细的运行日志
  • 可扩展性:支持新增交易所和指标

开发说明

扩展新交易所

data_fetcher.py中添加新的交易所支持:

exchange = ccxt.new_exchange_name({
    # 配置参数
})

添加新指标

在相应模块中实现新的分析方法,遵循现有的接口设计。

自定义可视化

visualization.py中添加新的图表类型。

许可证

本项目采用MIT许可证,详见LICENSE文件。

贡献

欢迎提交Issue和Pull Request来改进本项目。

联系方式

如有问题或建议,请通过GitHub Issues联系。

S
Description
No description provided
Readme
114 KiB
Languages
Python 100%