基于缠中说禅理论的专业技术分析系统,集成实时数据获取、多时间周期聚合、分型识别、笔段构建等核心功能,提供专业的数字货币技术分析服务。
- 缠论核心功能:分型识别、笔的构建、线段分析、买卖点识别
- 多时间周期:支持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)
git clone https://github.com/your-username/turtle.git
cd turtle
# 初始化Chan模块子模块
git submodule update --init
# 安装Python依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接等
# 创建数据库表
python create_tables.py
# 运行集成测试
python test_chan_integration.py
cd frontend
# 安装依赖
npm install
# 开发模式启动
npm run dev
# 构建生产版本
npm run build
# 方式1:快速启动(推荐)
python quick_start.py
# 方式2:手动启动
python run.py
# 方式3:开发模式
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
- API文档: http://localhost:8000/api/v1/docs
- Web界面: http://localhost:8000 (如果构建了前端)
- 健康检查: http://localhost:8000/health
# 安装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
# 在.env文件中配置
DATABASE_URL=sqlite:///./turtle.db
系统支持集成外部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", "*"]
- 获取数据:点击"获取新数据"按钮从币安API获取最新K线数据
- 选择周期:在控制面板选择分析时间周期(1分钟-1天)
- 执行分析:系统自动执行缠论分析,识别分型和笔
- 查看结果:在图表和侧边栏查看分析结果和交易建议
# 获取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"
- 专业K线图表显示
- 缠论分析结果叠加
- 支持缩放、平移、标记点击
- 实时数据更新
- 时间周期选择
- 显示选项控制
- 自动刷新设置
- 快捷键支持
- 实时价格显示
- 趋势状态分析
- 24小时统计
- 支撑阻力位计算
- 分型列表展示
- 搜索和过滤功能
- 排序和详细信息
- 数据导出功能
- 智能交易建议
- 风险等级评估
- 价格目标计算
- 历史记录跟踪
# 检查PostgreSQL服务
sudo systemctl status postgresql # Linux
brew services list | grep postgresql # macOS
# 检查连接配置
psql -h localhost -U postgres -d turtle
# 重新初始化子模块
git submodule update --init --recursive
# 检查模块状态
python -c "from app.services.chan_adapter import chan_adapter; print(chan_adapter.get_chan_info())"
# 检查网络连接
curl -I https://api.binance.com/api/v3/ping
# 调整超时配置(.env文件)
API_TIMEOUT=60
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 # 集成测试
# 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"})
<!-- src/lib/components/NewComponent.svelte -->
<script>
import { onMount } from 'svelte';
// 组件逻辑
</script>
<div class="new-component">
<!-- 组件模板 -->
</div>
<style>
/* 组件样式 */
</style>
# 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)
- 遵循PEP 8规范
- 使用type hints
- 编写docstring文档
- 添加单元测试
- 使用ESLint和Prettier
- 组件名使用PascalCase
- 函数名使用camelCase
- 添加注释说明
# 功能开发
git commit -m "feat: 添加新的分析算法"
# 错误修复
git commit -m "fix: 修复数据获取超时问题"
# 文档更新
git commit -m "docs: 更新API文档"
# 样式调整
git commit -m "style: 调整图表显示样式"
我们欢迎各种形式的贡献!
- 报告问题:在GitHub Issues中提交bug报告或功能建议
- 代码贡献:Fork项目,创建功能分支,提交Pull Request
- 文档改进:改进文档、添加示例、翻译内容
- 测试反馈:测试新功能,提供使用反馈
# 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中参与讨论
- 项目主页:https://github.com/your-username/turtle
- 问题反馈:https://github.com/your-username/turtle/issues
- 功能建议:https://github.com/your-username/turtle/discussions
- 缠论学习:缠中说禅官方资料
- 技术分析:TradingView社区
- 开发技术:FastAPI、Svelte官方文档
感谢以下项目和技术的支持:
- FastAPI - 现代高性能Web框架
- Svelte - 创新的前端框架
- Lightweight Charts - 专业图表库
- TailwindCSS - 实用优先的CSS框架
- PostgreSQL - 强大的关系型数据库
- 币安API - 可靠的市场数据来源
- 增加更多技术指标支持
- 优化移动端体验
- 添加数据导出功能
- 支持更多交易对
- 用户系统和个人设置
- 自定义警报和通知
- 策略回测功能
- 多语言支持
- 机器学习增强分析
- 量化交易接口
- 移动应用开发
- 云端部署方案