Skip to content

yjydmlh/turtle

Repository files navigation

🐢 缠论分析系统 (Turtle Chan Analysis System)

基于缠中说禅理论的专业技术分析系统,集成实时数据获取、多时间周期聚合、分型识别、笔段构建等核心功能,提供专业的数字货币技术分析服务。

✨ 特性亮点

🔬 专业技术分析

  • 缠论核心功能:分型识别、笔的构建、线段分析、买卖点识别
  • 多时间周期:支持1分钟到1天的7种时间周期聚合
  • 实时数据:集成币安API,获取最新市场数据
  • 智能建议:基于缠论理论生成交易建议和风险提示

🎨 现代化界面

  • 响应式设计:完美适配桌面和移动设备
  • TradingView图表:专业级图表显示,支持缩放和交互
  • 实时更新:数据变化时自动刷新界面
  • 直观操作:简洁的控制面板和友好的用户体验

🏗️ 技术架构

  • 后端:Python + FastAPI,高性能异步API服务
  • 前端:Svelte + TailwindCSS,现代化Web界面
  • 数据库:PostgreSQL + TimescaleDB,时序数据优化
  • 图表:Lightweight Charts,轻量级专业图表库

📋 系统要求

基础环境

  • Python: 3.8+
  • Node.js: 16.0+
  • PostgreSQL: 12.0+ (推荐) 或 SQLite (测试用)
  • 操作系统: Windows 10+, macOS 10.15+, Ubuntu 18.04+

硬件建议

  • 内存: 4GB+ (推荐8GB+)
  • 存储: 10GB+ 可用空间
  • 网络: 稳定的互联网连接(访问币安API)

🚀 快速开始

1️⃣ 项目克隆

git clone https://github.com/your-username/turtle.git
cd turtle

# 初始化Chan模块子模块
git submodule update --init

2️⃣ 后端设置

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

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接等

# 创建数据库表
python create_tables.py

# 运行集成测试
python test_chan_integration.py

3️⃣ 前端设置(可选)

cd frontend

# 安装依赖
npm install

# 开发模式启动
npm run dev

# 构建生产版本
npm run build

4️⃣ 系统启动

# 方式1:快速启动(推荐)
python quick_start.py

# 方式2:手动启动
python run.py

# 方式3:开发模式
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

5️⃣ 访问系统

🔧 详细配置

数据库配置

PostgreSQL (推荐)

# 安装PostgreSQL
sudo apt-get install postgresql postgresql-contrib  # Ubuntu
brew install postgresql  # macOS

# 创建数据库
sudo -u postgres createdb turtle

# 配置.env文件
DATABASE_URL=postgresql://postgres:your_password@localhost:5432/turtle

SQLite (开发测试)

# 在.env文件中配置
DATABASE_URL=sqlite:///./turtle.db

Chan模块集成

系统支持集成外部Chan模块以提供更强大的缠论分析功能:

# 确保chan.py子模块已初始化
git submodule update --init

# 检查Chan模块状态
curl http://localhost:8000/api/v1/chan/info

如果Chan模块不可用,系统将自动使用简化的分析模式。

环境变量说明

复制 .env.example.env 并根据需要修改配置:

# 基础配置
APP_NAME=turtle
DEBUG=true
SECRET_KEY=your-secret-key

# 数据库
DATABASE_URL=postgresql://user:password@localhost:5432/turtle

# 服务器
HOST=0.0.0.0
PORT=8000

# CORS(开发环境)
CORS_ORIGINS=["http://localhost:3000", "*"]

📚 使用指南

🎯 基本工作流程

  1. 获取数据:点击"获取新数据"按钮从币安API获取最新K线数据
  2. 选择周期:在控制面板选择分析时间周期(1分钟-1天)
  3. 执行分析:系统自动执行缠论分析,识别分型和笔
  4. 查看结果:在图表和侧边栏查看分析结果和交易建议

📊 API接口使用

获取K线数据

# 获取1小时K线数据
curl "http://localhost:8000/api/v1/simple/klines?timeframe=1h&limit=200"

# 获取支持的时间周期
curl "http://localhost:8000/api/v1/simple/timeframes"

缠论分析

# 执行缠论分析
curl "http://localhost:8000/api/v1/chan/analyze?timeframe=1h&limit=200"

# 获取分析摘要
curl "http://localhost:8000/api/v1/chan/summary?timeframe=1h"

# 仅获取分型数据
curl "http://localhost:8000/api/v1/chan/fenxings?timeframe=1h"

数据管理

# 手动获取新数据
curl -X POST "http://localhost:8000/api/v1/simple/fetch-data"

# 查看数据统计
curl "http://localhost:8000/api/v1/simple/stats"

# 系统健康检查
curl "http://localhost:8000/health"

🎨 前端组件说明

TradingViewChart.svelte

  • 专业K线图表显示
  • 缠论分析结果叠加
  • 支持缩放、平移、标记点击
  • 实时数据更新

ControlPanel.svelte

  • 时间周期选择
  • 显示选项控制
  • 自动刷新设置
  • 快捷键支持

MarketStatus.svelte

  • 实时价格显示
  • 趋势状态分析
  • 24小时统计
  • 支撑阻力位计算

FenxingList.svelte

  • 分型列表展示
  • 搜索和过滤功能
  • 排序和详细信息
  • 数据导出功能

TradingSuggestion.svelte

  • 智能交易建议
  • 风险等级评估
  • 价格目标计算
  • 历史记录跟踪

🔍 故障排除

常见问题

1. 数据库连接失败

# 检查PostgreSQL服务
sudo systemctl status postgresql  # Linux
brew services list | grep postgresql  # macOS

# 检查连接配置
psql -h localhost -U postgres -d turtle

2. Chan模块不可用

# 重新初始化子模块
git submodule update --init --recursive

# 检查模块状态
python -c "from app.services.chan_adapter import chan_adapter; print(chan_adapter.get_chan_info())"

3. API连接超时

# 检查网络连接
curl -I https://api.binance.com/api/v3/ping

# 调整超时配置(.env文件)
API_TIMEOUT=60

4. 前端构建失败

cd frontend

# 清理依赖
rm -rf node_modules package-lock.json
npm install

# 检查Node.js版本
node --version  # 需要16.0+

日志调试

系统日志存储在 logs/app.log,可以通过以下方式查看:

# 查看实时日志
tail -f logs/app.log

# 搜索错误信息
grep -i error logs/app.log

# 查看最近100行
tail -n 100 logs/app.log

🏗️ 开发指南

项目结构

turtle/
├── 🐍 后端 (Python/FastAPI)
│   ├── app/
│   │   ├── api/v1/          # API路由和端点
│   │   ├── core/            # 核心配置和异常处理
│   │   ├── crud/            # 数据库操作
│   │   ├── db/              # 数据库连接和会话
│   │   ├── models/          # SQLAlchemy模型
│   │   ├── schemas/         # Pydantic模式
│   │   ├── scripts/         # 数据获取脚本
│   │   └── services/        # 业务逻辑服务
│   ├── chan.py/             # Chan模块子模块
│   ├── logs/                # 日志文件
│   └── static/              # 静态文件目录
│
├── 🌐 前端 (Svelte)
│   ├── src/
│   │   ├── lib/
│   │   │   ├── components/  # Svelte组件
│   │   │   ├── stores.js    # 状态管理
│   │   │   ├── api.js       # API接口
│   │   │   └── utils.js     # 工具函数
│   │   └── routes/          # 路由页面
│   ├── static/              # 静态资源
│   └── dist/                # 构建输出
│
└── 📋 配置文件
    ├── requirements.txt     # Python依赖
    ├── .env.example        # 环境变量示例
    ├── create_tables.py    # 数据库初始化
    ├── quick_start.py      # 快速启动脚本
    └── test_chan_integration.py  # 集成测试

添加新功能

1. 添加API端点

# app/api/v1/endpoints/new_feature.py
from fastapi import APIRouter, Depends
from app.core.exceptions import create_success_response

router = APIRouter()

@router.get("/new-endpoint")
def new_endpoint():
    return create_success_response(data={"message": "Hello World"})

2. 添加前端组件

<!-- src/lib/components/NewComponent.svelte -->
<script>
    import { onMount } from 'svelte';
    // 组件逻辑
</script>

<div class="new-component">
    <!-- 组件模板 -->
</div>

<style>
    /* 组件样式 */
</style>

3. 添加数据模型

# app/models/new_model.py
from sqlalchemy import Column, Integer, String
from app.db.base_class import Base

class NewModel(Base):
    __tablename__ = "new_table"
    
    id = Column(Integer, primary_key=True)
    name = Column(String, nullable=False)

代码规范

Python代码

  • 遵循PEP 8规范
  • 使用type hints
  • 编写docstring文档
  • 添加单元测试

JavaScript/Svelte代码

  • 使用ESLint和Prettier
  • 组件名使用PascalCase
  • 函数名使用camelCase
  • 添加注释说明

Git提交规范

# 功能开发
git commit -m "feat: 添加新的分析算法"

# 错误修复
git commit -m "fix: 修复数据获取超时问题"

# 文档更新
git commit -m "docs: 更新API文档"

# 样式调整
git commit -m "style: 调整图表显示样式"

🤝 贡献指南

我们欢迎各种形式的贡献!

参与方式

  1. 报告问题:在GitHub Issues中提交bug报告或功能建议
  2. 代码贡献:Fork项目,创建功能分支,提交Pull Request
  3. 文档改进:改进文档、添加示例、翻译内容
  4. 测试反馈:测试新功能,提供使用反馈

开发流程

# 1. Fork并克隆项目
git clone https://github.com/your-username/turtle.git
cd turtle

# 2. 创建功能分支
git checkout -b feature/new-feature

# 3. 开发和测试
# 进行开发...
python test_chan_integration.py

# 4. 提交更改
git add .
git commit -m "feat: 添加新功能"
git push origin feature/new-feature

# 5. 创建Pull Request
# 在GitHub上创建PR

代码审查

所有Pull Request都需要经过代码审查:

  • 代码质量和规范性
  • 测试覆盖率
  • 文档完整性
  • 功能正确性

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

🆘 支持和帮助

获取帮助

  • 文档:查看本README和API文档
  • Issues:在GitHub Issues中搜索相关问题
  • 讨论:在GitHub Discussions中参与讨论

联系方式

社区资源

  • 缠论学习:缠中说禅官方资料
  • 技术分析:TradingView社区
  • 开发技术:FastAPI、Svelte官方文档

🎉 致谢

感谢以下项目和技术的支持:

📈 路线图

近期计划 (v1.1)

  • 增加更多技术指标支持
  • 优化移动端体验
  • 添加数据导出功能
  • 支持更多交易对

中期计划 (v2.0)

  • 用户系统和个人设置
  • 自定义警报和通知
  • 策略回测功能
  • 多语言支持

长期计划 (v3.0)

  • 机器学习增强分析
  • 量化交易接口
  • 移动应用开发
  • 云端部署方案

🐢 缠论分析系统 - 让技术分析更专业、更简单

Python FastAPI Svelte License

📖 文档 | 🚀 快速开始 | 💬 讨论 | 🐛 报告问题

About

以缠论为主的半自动化自动化交易系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published