公共服务
预测市场数据警报;https://t.me/predictcat_ai_bot
交易猫行情查询;https://t.me/tradecat_ai_bot
命理agent;https://t.me/cs_cat_bot
本项目ai解读仓库(可能不完全准确):https://zread.ai/tukuaiai/tradecat
感谢社区捐助的资金,让我去完成我的梦想!!!真心感谢你们!!!
免责声明
- 开源与非官方声明:本项目为永久开源项目,任何人可在开源许可范围内自由使用、分发与二次开发。本项目不隶属于任何交易所、基金、做市商或官方组织。
- 非投资建议:本项目及其相关内容仅用于技术研究与社区协作交流,不构成任何形式的投资建议、理财建议或交易建议。数字资产价格波动剧烈,存在归零风险,请自行评估风险并独立决策。
- 代币无发行/无背书:本项目不发行任何代币;任何以本项目名义发行、宣传、拉盘、募资、承诺收益的行为均与本项目无关。相关链上资产(如有)为第三方行为,风险自担。
- 捐赠说明(唯一渠道):本项目目前接受且只接受来自 SOL社区(代币地址,请勿直接转账,否则资产会丢失)(Gysp4iZ6uNuAksAPR37fQwLDRFU9Rz255UjExhiwpump) 与 BSC社区(代币地址,请勿直接转账,否则资产会丢失)(0x8a99b8d53eff6bc331af529af74ad267f3167777) 两个社群的捐赠;捐赠属自愿行为,不提供任何回报或收益承诺。捐赠属自愿行为,不提供任何回报或收益承诺。
- 公开地址与风险提示:我的地址为公开明牌地址,请务必自行核对链、网络与地址,转账一经发生通常不可撤销,因误转/被骗/盗号/仿冒等导致的损失由转账方自行承担。
- 责任限制:在法律允许范围内,项目维护者/贡献者不对任何直接或间接损失承担责任,包括但不限于投资亏损、交易损失、合约风险、钓鱼诈骗、智能合约漏洞、第三方服务故障等。
- 历史情况提示:如涉及原dev或历史资金纠纷等问题,均为历史主体行为,本项目维护者不对第三方过往行为承担责任。
交易市场风云变幻,投资请谨慎,币不是我发的,明牌地址,亏钱请别骂我我害怕,我是玻璃心🙏🙏🙏,原dev已卷款跑路😅😅😅
我的加密货币钱包地址:
sol:HjYhozVf9AQmfv7yv79xSNs6uaEU5oUk2USasYQfUYau
bsc:0xa396923a71ee7D9480b346a17dDeEb2c0C287BBC,0x60c062e7600f74079ea7b5e5568edfb9a3f61f0f
toy-level 数据分析/交易数据平台
全部市场,全部数据,全部方法,分析一切,交易一切,监控一切
English | 简体中文
🤖 从零开始? 复制这行到 AI 助手:
按照 https://github.com/tukuaiai/tradecat/blob/main/README.md 的说明帮我安装 TradeCat
点击展开👉 💰 救救孩子
救救孩子,感谢了,好人一生平安🙏🙏🙏
- 币安 UID:
572155580 - Tron (TRC20):
TQtBXCSTwLFHjBqTS4rNUp7ufiGx51BRey - Solana:
HjYhozVf9AQmfv7yv79xSNs6uaEU5oUk2USasYQfUYau - Ethereum (ERC20):
0xa396923a71ee7D9480b346a17dDeEb2c0C287BBC - BNB Smart Chain (BEP20):
0xa396923a71ee7D9480b346a17dDeEb2c0C287BBC - Bitcoin:
bc1plslluj3zq3snpnnczplu7ywf37h89dyudqua04pz4txwh8z5z5vsre7nlm - Sui:
0xb720c98a48c77f2d49d375932b2867e793029e6337f1562522640e4f84203d2e
点击展开👉 🚀 快速开始
把下面的提示词复制到 Claude / ChatGPT / Cursor / Kiro,AI 会自动执行安装,零人工介入
方式一:完整部署提示词(推荐)
📄 README.md - 包含详细的 10 步部署流程,支持:
- 系统依赖自动安装
- 服务初始化和配置
- HuggingFace 历史数据自动下载导入
- 守护进程和日志轮转配置
- 完整的故障排查指南
复制该文件内容给 AI 助手即可自动完成全部部署。
点击展开👉 📋 简化版安装提示词
按照 https://github.com/tukuaiai/tradecat/blob/main/README.md 的说明帮我安装 TradeCat
要求:
1. 读取文档后直接执行安装命令,不要生成脚本
2. 一步一步执行,每步确认成功后继续
3. 遇到错误自动分析并修复
4. 安装完成后运行 ./scripts/verify.sh 验证
5. 全程零人工介入
📺 视频教程: WSL2 安装配置教程
先在 Windows 用户目录创建 .wslconfig:
notepad "$env:USERPROFILE\.wslconfig"写入:
[wsl2]
memory=10GB
processors=6
swap=12GB
networkingMode=mirrored重启 WSL:wsl --shutdown,然后使用上面的 AI 安装提示词。
# 0) 环境检查(可选,推荐部署前运行)
./scripts/check_env.sh
# 1) 初始化(创建各服务 .venv + 安装依赖)
./scripts/init.sh
# 2) 填写全局配置(含 BOT_TOKEN / DB / 代理 等)
cp assets/config/.env.example assets/config/.env && chmod 600 assets/config/.env
# 端口:默认 LF=5433(K线/指标)、HF=15432(原子事实),见 assets/config/.env.example
vim assets/config/.env
# 3) 启动核心服务(ai + signal + api + telegram + trading)
./scripts/start.sh start
./scripts/start.sh status说明:顶层
./scripts/start.sh默认管理ai-service、signal-service、api-service、telegram-service、trading-service(ai-service 为子模块,仅做就绪检查,无独立进程;并保证 api-service 先于 telegram/sheets 启动)。
重要:从 2026-03 起,consumption 层(Telegram/Sheets/可视化)不再允许直连数据库,统一通过 Query Service(api-service,/api/v1) 读取数据;因此在运行 Telegram/Sheets 时 不要停掉api-service。
低频/分时采集服务 data-service:services/ingestion/data-service/(兼容链路,不在默认启动链路)。
可选服务需手动启动:
cd services/consumption/sheets-service && ./scripts/start.sh start(Google Sheets 公共看板同步,默认 daemon) 可选校验:./scripts/smoke_query_service.sh(验证 Query Service 鉴权与可用性;不回显 token)
- 路径:
assets/config/.env(需手动从.env.example复制;或运行./scripts/install.sh自动生成),权限需 600,服务启动脚本会强制校验。 - TimescaleDB 端口说明(重要,按仓库现状):
- LF(低频/分时/K线与指标):
DATABASE_URL默认localhost:5433/market_data(见assets/config/.env.example) - HF(高频/原子事实):
BINANCE_VISION_DATABASE_URL默认localhost:15432/market_data(见assets/config/.env.example) - 若你在私有环境使用其它端口(例如历史文档曾提及 5434):请全局统一端口与脚本/命令;仓库当前示例以 5433/15432 为准。
- LF(低频/分时/K线与指标):
- 核心字段:
DATABASE_URL(TimescaleDB,见下方端口说明)QUERY_SERVICE_BASE_URL(Query Service 基地址;默认http://127.0.0.1:8088,见assets/config/.env.example)QUERY_SERVICE_AUTH_MODE(Query Service 鉴权模式;默认required;disabled仅限本地/受控环境调试)QUERY_SERVICE_TOKEN(Query Service 内网 token;Header:X-Internal-Token;required模式必须设置;/api/v1/indicators/*调试端点始终要求 token;./scripts/check_env.sh会将dev-token-change-me/your_token_here视为占位值并判定为未配置)QUERY_SERVICE_TIMEOUT_SECONDS(可选:消费端请求超时秒数;默认 8,见assets/config/.env.example)QUERY_SERVICE_CACHE_TTL_SECONDS(可选:消费端(telegram/sheets)本地缓存 TTL 秒;默认 2)QUERY_SERVICE_STALE_TTL_SECONDS(可选:消费端 stale-if-error 窗口秒;默认 30)QUERY_SERVICE_NET_MAX_RETRIES(可选:消费端网络重试次数;默认 2;总尝试=1+retries)QUERY_SERVICE_NET_RETRY_BASE_SECONDS(可选:消费端重试退避 base 秒;默认 0.2;0=不 sleep)QUERY_MARKET_TABLE_EXISTS_TTL_SEC(可选:market_data 表存在性检查缓存 TTL 秒数;默认 30)QUERY_NUMERIC_MODE(可选:指标数值输出模式;float|string;默认float;string保留 Decimal 精度)QUERY_CACHE_MAX_ENTRIES(可选:Query Service 内存缓存最大条数;默认 256)QUERY_DASHBOARD_CACHE_TTL_SEC(可选:dashboard 缓存 TTL 秒;默认 2;0=关闭)QUERY_SNAPSHOT_CACHE_TTL_SEC(可选:snapshot 缓存 TTL 秒;默认 2;0=关闭)- 错误语义:Query Service 对齐 CoinGlass 风格:即使失败也返回 HTTP 200;请始终通过响应体的
success/code/msg判断成功与否。 BOT_TOKEN(Telegram Bot Token)TELEGRAM_GROUP_WHITELIST(群聊白名单,逗号分隔;为空仅私聊;群聊仅响应/或!开头且需 @bot)HTTP_PROXY/HTTPS_PROXY(需要代理时填写)- 外部地址:
BINANCE_WEB_BASE、BINANCE_PING_URL、SYMBOLS_ALL_URL、TELEGRAM_API_BASE、POLYMARKET_WEB_BASE、KALSHI_WEB_BASE、OPINION_WEB_BASE、NODEJS_SETUP_URL、NOFX_* - 币种/周期:
SYMBOLS_GROUPS、SYMBOLS_EXTRA、SYMBOLS_EXCLUDE、INTERVALS、KLINE_INTERVALS、FUTURES_INTERVALS - 采集/计算开关:
BACKFILL_MODE/BACKFILL_DAYS/BACKFILL_ON_START、MAX_CONCURRENT、RATE_LIMIT_PER_MINUTE - 默认值:
BACKFILL_MODE=all(全量回填,若设置BACKFILL_START_DATE则按起始日计算天数;否则约 10 年)、SYMBOLS_GROUPS=main4(只拉 BTC/ETH/SOL/BNB,如需全市场改为all或自定义分组) - 计算后端:
COMPUTE_BACKEND、MAX_WORKERS、HIGH_PRIORITY_TOP_N、INDICATORS_ENABLED/INDICATORS_DISABLED - 展示过滤:
BINANCE_API_DISABLED、DISABLE_SINGLE_TOKEN_QUERY、SNAPSHOT_HIDDEN_FIELDS、BLOCKED_SYMBOLS - AI/交易:
AI_INDICATOR_TABLES、AI_INDICATOR_TABLES_DISABLED、LLM_BACKEND、LLM_API_BASE_URL、EXTERNAL_API_KEY、LLM_MODEL、LLM_MAX_TOKENS、AI_LARGE_PAYLOAD_CHAR_LIMIT、AI_FORCE_GEMINI_ON_LARGE_PAYLOAD、AI_DEFAULT_PROMPT、AI_RECORD_ENABLED、AI_RECORD_PAYLOAD、AI_RECORD_PROMPT、AI_RECORD_MESSAGES、AI_RECORD_ANALYSIS、AI_RECORD_MAX_DIRS、BINANCE_API_KEY、BINANCE_API_SECRET - 国际化:
DEFAULT_LOCALE(默认 en)、SUPPORTED_LOCALES(zh-CN,en)、FALLBACK_LOCALE - Google Sheets(可选,
sheets-service):SHEETS_*见assets/config/.env.example的 “Google Sheets 公共看板” 段落;弱网/代理环境可用SHEETS_SA_NET_WRITE_RETRIES提升 SA 模式稳定性(默认 2)。
从 HuggingFace 下载预置数据集,跳过漫长的历史回填:
🔗 数据集: huggingface.co/datasets/123olp/binance-futures-ohlcv-2018-2026
方式一:使用自动下载脚本(推荐)
默认下载 Main4 精简数据集(415MB,4币种,1150万条记录,2020-2026完整历史)
# 安装依赖
services/ingestion/data-service/.venv/bin/python -m pip install pandas psycopg2-binary huggingface_hub
# 默认下载 Main4 数据集(BTC/ETH/BNB/SOL,415MB)
services/ingestion/data-service/.venv/bin/python scripts/download_hf_data.py
# 或指定币种
services/ingestion/data-service/.venv/bin/python scripts/download_hf_data.py --symbols BTCUSDT,ETHUSDT,BNBUSDT脚本特性:
- 默认下载 Main4 精简数据集(415MB),不是完整版(13GB)
- 流式读取,内存友好
- 支持断点续传(已下载的文件会跳过)
方式二:手动导入(完整数据)
# 0. 创建库并导入 schema(依次执行仓库内 SQL)
for f in assets/database/db/schema/*.sql; do
psql -h localhost -p 5433 -U postgres -d market_data -f "$f"
done
# 1. 导入 K线数据 (3.73亿条)
zstd -d candles_1m.bin.zst -c | psql -h localhost -p 5433 -U postgres -d market_data \
-c "COPY market_data.candles_1m FROM STDIN WITH (FORMAT binary)"
# 2. 导入期货数据 (9457万条)
zstd -d futures_metrics_5m.bin.zst -c | psql -h localhost -p 5433 -U postgres -d market_data \
-c "COPY market_data.binance_futures_metrics_5m FROM STDIN WITH (FORMAT binary)"端口说明:本文与仓库脚本示例按
assets/config/.env.example默认端口(LF=5433,HF=15432)编写;如你改动端口,请同步所有示例命令与脚本配置。
- 端口选择:
assets/config/.env.example默认 LF=5433、HF=15432;仓库脚本示例亦以此为准。若你自行改动端口,请全局统一。 - CI 仅执行 ruff + py_compile 抽样(
.github/workflows/ci.yml,检查前 50 个 .py 文件),不会跑 tests;提交前本地仍需./scripts/verify.sh。 scripts/install.sh会创建assets/config/.env(若不存在);运行时统一只读assets/config/.env,避免多份配置漂移。
./scripts/verify.sh点击展开👉 📖 手动安装步骤
| 依赖 | 版本 | 说明 |
|---|---|---|
| Python | 3.12+ | CI 使用 3.12;各服务 services/*/*/pyproject.toml 声明 requires-python >=3.12(scripts/init.sh 的最低检查为 3.10) |
| PostgreSQL | 16+ | 需安装 TimescaleDB 扩展 |
| TA-Lib | 0.4+ | 系统级库,需单独安装 |
| SQLite | 3.x | 系统自带(仅迁移/对账/回放;运行态已不依赖) |
git clone https://github.com/tukuaiai/tradecat.git
cd tradecat# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y build-essential python3-dev
# 安装 TA-Lib
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar -xzf ta-lib-0.4.0-src.tar.gz
cd ta-lib && ./configure --prefix=/usr && make && sudo make install
cd .. && rm -rf ta-lib ta-lib-0.4.0-src.tar.gz# 初始化所有服务(创建虚拟环境、安装依赖、复制配置)
./scripts/init.sh
# 或单独初始化某个服务
./scripts/init.sh binance-vision-service# 编辑 `assets/config/.env`(如不存在:cp assets/config/.env.example assets/config/.env && chmod 600 assets/config/.env)
vim assets/config/.env关键配置补充(信号服务):
SIGNAL_DATA_MAX_AGE:信号数据最大允许时长(秒),超过则跳过不产生信号;默认 600,可按部署环境调整。COOLDOWN_SECONDS(signal-service):PG 信号冷却时间(秒),可与规则级冷却配合,避免重复推送。
关键配置补充(nofx-dev,预览服务):
NOFX_*:nofx-dev 上游地址/鉴权等(见assets/config/.env.example的 NOFX 段落;nofx-dev 本身也有独立文档)。
# 启动所有服务
./scripts/start.sh start
# 查看状态
./scripts/start.sh status
# 停止全部
./scripts/start.sh stop./scripts/verify.sh点击展开👉 ✨ 核心特性
|
|
|
|
|
|
点击展开👉 🏗️ 架构设计
graph TD
subgraph 外部数据源["🌐 币安交易所 API"]
API_WS["WebSocket K线"]
API_REST["REST 期货指标"]
end
subgraph DS["📦 data-service<br><small>Python, asyncio, ccxt, cryptofeed</small>"]
DS_BF["backfill<br>历史回填"]
DS_LIVE["live<br>实时采集"]
DS_MET["metrics<br>期货指标"]
end
API_WS --> DS_LIVE
API_REST --> DS_MET
subgraph TSDB["🗄️ TimescaleDB :5433<br><small>PostgreSQL 16 + TimescaleDB</small>"]
TS_CANDLE[("candles_1m<br>3.73亿条 / 99GB")]
TS_FUTURE[("futures_metrics<br>9457万条 / 5GB")]
end
DS_BF --> TS_CANDLE
DS_LIVE --> TS_CANDLE
DS_MET --> TS_FUTURE
subgraph TS["📊 trading-service<br><small>Python, pandas, numpy, TA-Lib</small>"]
TR_ENG["engine<br>计算引擎"]
TR_IND["indicators<br>38个指标"]
TR_SCH["scheduler<br>定时调度"]
TR_PRI["priority<br>高优先级币种筛选"]
end
TS_CANDLE --> TR_ENG
TS_FUTURE --> TR_ENG
TR_SCH --> TR_ENG
TR_ENG --> TR_IND
TR_ENG --> TR_PRI
PG_IND[("🗄️ tg_cards.*<br>PostgreSQL 指标库")]
TR_IND --> PG_IND
subgraph AI["🧠 AI 智能分析"]
AI_WY["Wyckoff 方法论"]
AI_MOD["多模型支持<br>Gemini / OpenAI / Claude / DeepSeek"]
end
subgraph SIG["🔔 signal-service<br><small>独立信号检测服务</small>"]
SIG_RULES["rules<br>129条信号规则"]
SIG_ENG["engines<br>PG 引擎"]
SIG_PUB["events<br>SignalPublisher"]
end
PG_IND --> SIG_ENG
TS_CANDLE --> SIG_ENG
TS_FUTURE --> SIG_ENG
SIG_ENG --> SIG_RULES
SIG_RULES --> SIG_PUB
subgraph TG["🤖 telegram-service<br><small>python-telegram-bot, aiohttp</small>"]
TG_CARD["cards<br>排行卡片 20+"]
TG_ADAPTER["signals/adapter<br>信号服务适配器"]
TG_HAND["handlers<br>命令处理"]
TG_BOT["bot<br>主程序"]
end
PG_IND --> TG_CARD
SIG_PUB --> TG_ADAPTER
TG_ADAPTER --> TG_BOT
TG_CARD --> TG_BOT
TG_HAND --> TG_BOT
AI_MOD --> TG_BOT
TS_CANDLE -.-> AI_WY
AI_WY --> AI_MOD
subgraph ORD["💹 order-service(🟡预览:本仓库未在 services/ 下内置)<br><small>Python, ccxt, cryptofeed</small>"]
ORD_MM["market-maker<br>Avellaneda-Stoikov 做市"]
ORD_EX["交易执行"]
end
TS_CANDLE -.-> ORD_MM
TS_FUTURE -.-> ORD_MM
USER["👤 Telegram 用户<br>排行榜查询 | 信号接收 | AI分析"]
TG_BOT --> USER
| 服务 | 端口 | 职责 | 技术栈 |
|---|---|---|---|
| data-service | - | 加密货币 K线采集、期货指标采集、历史数据回填 | Python, asyncio, ccxt, cryptofeed |
| trading-service | - | 38个技术指标模块计算、高优先级币种筛选、定时调度 | Python, pandas, numpy, TA-Lib |
| signal-service | - | 独立信号检测服务(129条规则、8分类、事件发布) | Python, psycopg3(PostgreSQL) |
| telegram-service | - | Bot 交互、排行榜展示、信号推送 UI(通过 adapter 调用 signal-service) | python-telegram-bot, aiohttp |
| ai-service | - | AI 分析、Wyckoff 方法论(作为 telegram-service 子模块) | Gemini/OpenAI/Claude/DeepSeek |
| fate-service | - | 命理/排盘服务(独立微服务) | Python, Node.js(可选) |
| api-service | 8088 | REST API 服务(指标/K线/信号数据查询;可用 API_SERVICE_PORT 覆盖) |
FastAPI, Pydantic |
| sheets-service | - | Google Sheets 公共看板同步(TG 卡片→表格;可审计/可重放) | python-dotenv, python-telegram-bot |
| vis-service | 8087 | 可视化渲染(K线图/指标图/VPVR) | FastAPI, matplotlib, mplfinance |
| predict-service | - | 预测市场信号(Polymarket/Kalshi/Opinion) | Node.js + Python utilities |
| nofx-dev | - | Agentic Trading OS(预览/外部工程镜像,非核心链路) | Go, React, TypeScript |
| markets-service(🟡预览:仅保留配置与文档,未在 services/ 下内置) | - | 全市场数据采集(美股/A股/宏观/衍生品定价) | yfinance, akshare, fredapi, QuantLib |
| order-service(🟡预览:仅保留配置与文档,未在 services/ 下内置) | - | 交易执行、Avellaneda-Stoikov 做市 | Python, ccxt, cryptofeed |
| TimescaleDB(LF) | 5433 | 低频/分时/K线与指标(DATABASE_URL) |
PostgreSQL 16 + TimescaleDB |
| TimescaleDB(HF) | 15432 | 高频/原子事实(BINANCE_VISION_DATABASE_URL) |
PostgreSQL 16 + TimescaleDB |
graph LR
subgraph 数据采集
A["🌐 币安 WebSocket"] --> B["📦 data-service"]
end
subgraph 数据存储
B --> C[("🗄️ TimescaleDB<br>candles_1m<br>futures_metrics")]
end
subgraph 指标计算
C --> D["📊 trading-service<br>38个指标计算"]
D --> E2[("🗄️ tg_cards.*<br>PostgreSQL 指标库")]
end
subgraph 用户服务
E2 --> F
F --> G["👤 用户"]
end
subgraph AI分析
C -.-> H["🧠 AI 分析<br>Gemini/OpenAI/Claude/DeepSeek"]
H -.-> F
end
subgraph 交易执行
C -.-> I["💹 order-service(🟡预览)<br>做市/交易"]
end
点击展开👉 📊 数据与功能
🔗 历史数据下载: HuggingFace 数据集
| 数据集 | 说明 | 大小 |
|---|---|---|
candles_1m.bin.zst |
K线数据 (2018-至今, 3.73亿条) | ~15 GB |
futures_metrics_5m.bin.zst |
期货指标 (2021-至今, 9457万条) | ~800 MB |
点击展开👉 📋 数据详情与导入步骤
字段说明:
|
字段说明:
|
| 数据类型 | 更新频率 | 延迟 |
|---|---|---|
| K线 (1m) | 实时 WebSocket | < 5秒 |
| K线 (5m/15m/1h/4h/1d/1w) | 聚合计算 | < 10秒 |
| 期货指标 | 每 5 分钟 | < 30秒 |
| 技术指标 | 每分钟轮询 | < 3分钟 |
# 1. 下载数据文件
# 从 HuggingFace 下载 .bin.zst 文件到 backups/timescaledb/
# 2. 恢复表结构(兼容 schema.sql.zst / schema_*.sql.zst)
zstd -d schema*.sql.zst -c | psql -h localhost -p 5433 -U postgres -d market_data
# 3. 导入 K线数据
zstd -d candles_1m.bin.zst -c | psql -h localhost -p 5433 -U postgres -d market_data \
-c "COPY market_data.candles_1m FROM STDIN WITH (FORMAT binary)"
# 4. 导入期货数据
zstd -d futures_metrics_5m.bin.zst -c | psql -h localhost -p 5433 -U postgres -d market_data \
-c "COPY market_data.binance_futures_metrics_5m FROM STDIN WITH (FORMAT binary)"💡 导入后即可使用 trading-service 计算指标,无需从头采集历史数据。
点击展开👉 🔥 趋势指标 (8个)
| 指标 | 说明 | 参数 |
|---|---|---|
| EMA | 指数移动平均 | 7/25/99 周期 |
| MACD | 异同移动平均 | 12/26/9 |
| SuperTrend | 超级趋势 | ATR 周期 10, 乘数 3 |
| ADX | 平均趋向指数 | 14 周期 |
| Ichimoku | 一目均衡表 | 9/26/52 |
| Donchian | 唐奇安通道 | 20 周期 |
| Keltner | 肯特纳通道 | 20 周期, ATR 2倍 |
| 趋势线 | 自动趋势线识别 | 动态计算 |
点击展开👉 📊 动量指标 (6个)
| 指标 | 说明 | 参数 |
|---|---|---|
| RSI | 相对强弱指数 | 14 周期 |
| KDJ | 随机指标 | 9/3/3 |
| CCI | 商品通道指数 | 20 周期 |
| WilliamsR | 威廉指标 | 14 周期 |
| MFI | 资金流量指数 | 14 周期 |
| RSI谐波 | RSI 背离检测 | 14 周期 |
点击展开👉 📉 波动指标 (4个)
| 指标 | 说明 | 参数 |
|---|---|---|
| 布林带 | Bollinger Bands | 20 周期, 2倍标准差 |
| ATR | 真实波幅 | 14 周期 |
| ATR波幅 | 波动率排行 | 14 周期 |
| 支撑阻力 | 关键价位识别 | 动态计算 |
点击展开👉 📦 成交量指标 (6个)
| 指标 | 说明 | 用途 |
|---|---|---|
| OBV | 能量潮 | 量价背离 |
| CVD | 累积成交量差 | 买卖力量 |
| VWAP | 成交量加权均价 | 机构成本 |
| 成交量比率 | 相对成交量 | 放量识别 |
| 流动性 | 买卖盘深度 | 滑点预估 |
| VPVR | 成交量分布 | 密集成交区 |
点击展开👉 🕯️ K线形态 (61+种)
蜡烛形态 (TA-Lib, 61种)
| 类型 | 形态 |
|---|---|
| 反转形态 | 锤子线、上吊线、吞没、孕线、晨星、黄昏星、三只乌鸦 |
| 持续形态 | 三法、分离线、并列阴阳 |
| 中性形态 | 十字星、纺锤线、高浪线 |
价格形态 (patternpy)
| 类型 | 形态 | 信号 |
|---|---|---|
| 头肩形态 | 头肩顶、头肩底 | 强反转 |
| 双重形态 | 双顶、双底 | 中等反转 |
| 三角形态 | 上升三角、下降三角、对称三角 | 突破方向 |
| 楔形形态 | 上升楔形、下降楔形 | 反向突破 |
| 通道形态 | 上升通道、下降通道、水平通道 | 趋势延续 |
点击展开👉 📡 期货指标 (8个)
| 指标 | 说明 | 信号含义 |
|---|---|---|
| 持仓量 | Open Interest | 市场参与度 |
| 持仓价值 | OI Value (USDT) | 资金规模 |
| 多空比 | Long/Short Ratio | 散户情绪 |
| 大户多空比 | Top Trader L/S | 主力方向 |
| 主动买卖比 | Taker Buy/Sell | 即时情绪 |
| 资金费率 | Funding Rate | 多空成本 |
| 爆仓数据 | Liquidations | 极端行情 |
| 期货情绪聚合 | 综合评分 | 多维度分析 |
系统自动识别高优先级币种 (约 130-150 个),基于以下维度:
高优先级 = K线维度 ∪ 期货维度
K线维度:
- 成交额 Top 50
- 波动率 Top 30
- 涨跌幅 Top 30
期货维度:
- 持仓价值 Top 30
- 主动买卖比极端 (>1.5 或 <0.67)
- 多空比极端 (>2.0 或 <0.5)
|
|
| 触发方式 | 功能 | 说明 |
|---|---|---|
BTC! |
单币查询 | 交互式多面板查看 |
BTC!! |
完整TXT导出 | 下载 psql 风格完整报告 |
BTC@ |
AI分析 | 威科夫深度市场分析 |
/data |
数据面板 | 访问排行榜卡片 |
/ai |
AI分析 | 进入AI币种选择 |
/query |
币种查询 | 显示可查询币种 |
/help |
帮助 | 使用说明 |
点击展开👉 📁 目录结构
tradecat/
│
├── 📂 assets/ # 共享资产根(真实目录)
│ ├── 📂 common/ # 共享工具库(`import assets.*`)
│ ├── 📂 config/ # 全局配置模板/运行时 .env(不提交)
│ ├── 📂 docs/ # 项目文档(mkdocs 入口)
│ ├── 📂 tasks/ # 任务文档
│ ├── 📂 artifacts/ # 构建/分析产物(默认忽略)
│ ├── 📂 database/ # DDL/CSV/SQLite(敏感:勿改写持久化数据)
│ ├── 📂 repo/ # 外部仓库镜像(默认忽略)
│ └── 📂 tests/ # 资产/SQL/脚本级测试素材
│
├── 📂 scripts/ # 全局脚本(install/init/start/verify/check_env/导出/压缩等)
│
├── 📂 services/ # 服务分层(采集/计算/消费)
│ ├── 📂 ingestion/ # 采集层:写 TimescaleDB
│ │ ├── 📂 data-service/ # 低频/分时采集(兼容链路,非默认启用)
│ │ ├── 📂 binance-vision-service/ # Binance Vision Raw 对齐采集(高频原子事实)
│ │ └── 📂 predict-service/ # 预测市场信号(Polymarket/Kalshi/Opinion)
│ │
│ ├── 📂 compute/ # 计算层:读 PG / 写 PG(tg_cards / signal_state / sheets_state)
│ │ ├── 📂 trading-service/ # 指标计算(写入 PG: tg_cards.*;供消费层读取)
│ │ ├── 📂 signal-service/ # 信号检测(规则引擎)
│ │ ├── 📂 ai-service/ # AI 分析(telegram 子模块)
│ │
│ └── 📂 consumption/ # 消费层:对外呈现(Telegram/API/Sheets/可视化)
│ ├── 📂 telegram-service/ # Telegram Bot(卡片/订阅/快照)
│ ├── 📂 api-service/ # Query Service(REST API,默认随顶层启动)
│ ├── 📂 fate-service/ # 命理/排盘(独立微服务)
│ ├── 📂 sheets-service/ # Google Sheets 公共看板同步(可选)
│ ├── 📂 vis-service/ # 可视化渲染(可选)
│ └── 📂 nofx-dev/ # 预览:外部工程镜像(非核心链路)
│
├── 📂 .github/ # 社区与安全规范(CI/贡献指南/安全策略)
│
├── 📄 mkdocs.yml # 文档站配置(assets/docs 为入口)
├── 📄 pyproject.toml # 根级工具配置(ruff/pytest 等)
├── 📄 Makefile # 常用命令聚合
├── 📄 README.md # 项目说明(本文件)
├── 📄 README_EN.md # 英文说明
├── 📄 AGENTS.md # AI Agent 操作手册
├── 📄 CONSTITUTION.md # 架构宪法/硬约束
└── 📄 .python-version # Python 版本锁定
# 运行时生成(首次执行 ./scripts/init.sh 或 ./scripts/start.sh 后出现;不随仓库提交)
# - logs/ run/ backups/ (以及各服务内的 logs/ pids/ data/cache 等)
点击展开👉 🔧 运维指南
点击展开👉 统一管理(推荐)
# 启动所有服务
./scripts/start.sh start
# 查看状态
./scripts/start.sh status
# 停止全部
./scripts/start.sh stop
# 重启
./scripts/start.sh restart点击展开👉 单服务管理
# data-service(低频/分时兼容链路,支持守护模式)
cd services/ingestion/data-service
./scripts/start.sh start # 启动(含守护)
./scripts/start.sh stop # 停止
./scripts/start.sh status # 状态
# ws 自愈:当 DB 长时间不再写入 1m K 线时,守护会自动重启 ws(可通过 DATA_SERVICE_WS_DB_* 配置)
# trading-service / telegram-service
cd services/compute/trading-service # 或 services/consumption/telegram-service
./scripts/start.sh start # 启动
./scripts/start.sh stop # 停止
./scripts/start.sh status # 状态
# api-service(Query Service,默认随顶层启动)
cd services/consumption/api-service
./scripts/start.sh start
./scripts/start.sh status点击展开👉 初始化
# 初始化全部服务
./scripts/init.sh
# 初始化单个服务
./scripts/init.sh binance-vision-service点击展开👉 验证与检查
./scripts/verify.sh点击展开👉 查看日志
# data-service 日志
tail -f services/ingestion/data-service/logs/backfill.log
tail -f services/ingestion/data-service/logs/metrics.log
tail -f services/ingestion/data-service/logs/ws.log
# trading-service 日志
tail -f services/compute/trading-service/logs/service.log
# telegram-service 日志
tail -f services/consumption/telegram-service/logs/bot.log
# signal-service 日志
tail -f services/compute/signal-service/logs/signal-service.log
# 守护进程日志
tail -f logs/daemon.log点击展开👉 进程监控
# 查看所有相关进程
ps aux | grep -E "data-service|trading-service|telegram|signal-service|src\\.simple_scheduler|main\\.py"
# 查看资源占用
htop -p $(pgrep -d',' -f "src\\.simple_scheduler|src\\.kline_listener|telegram-service|signal-service|uvicorn")点击展开👉 TimescaleDB 查询
# 连接数据库
PGPASSWORD=postgres psql -h localhost -p 5433 -U postgres -d market_data
# 常用查询
-- K线数据量
SELECT COUNT(*) FROM market_data.candles_1m;
-- 最新数据时间
SELECT MAX(bucket_ts) FROM market_data.candles_1m;
-- 币种列表
SELECT DISTINCT symbol FROM market_data.candles_1m ORDER BY symbol;
-- 单币种数据
SELECT * FROM market_data.candles_1m
WHERE symbol = 'BTCUSDT'
ORDER BY bucket_ts DESC LIMIT 10;点击展开👉 指标库(PG: tg_cards)查询
# 初始化 DDL(仅需一次;会创建 tg_cards schema + 38 张表)
PGPASSWORD=postgres psql -h localhost -p 5433 -U postgres -d market_data \
-f assets/database/db/schema/021_tg_cards_sqlite_parity.sql
# 查看表清单
PGPASSWORD=postgres psql -h localhost -p 5433 -U postgres -d market_data \
-c "\\dt tg_cards.*"
# 抽样查询(注意:表名/列名含中文与 .py,必须双引号)
PGPASSWORD=postgres psql -h localhost -p 5433 -U postgres -d market_data \
-c "SELECT \\\"交易对\\\",\\\"周期\\\",\\\"数据时间\\\",\\\"ATR百分比\\\" FROM tg_cards.\\\"ATR波幅扫描器.py\\\" WHERE \\\"周期\\\"='15m' ORDER BY \\\"数据时间\\\" DESC LIMIT 5;"点击展开👉 SQLite 查询(已废弃)
说明:当前指标库已统一为 PostgreSQL(
tg_cards.*),不再写入/读取market_data.db。
如你仍保留历史 SQLite 文件,可用以下方式临时查看(仅用于迁移期对账/回放)。
sqlite3 assets/database/services/telegram-service/market_data.db
.tables点击展开👉 导出 TimescaleDB
# 运行导出脚本 (后台执行)
nohup ./scripts/export_timescaledb.sh &
# 查看进度
tail -f backups/timescaledb/export.log
ls -lh backups/timescaledb/
# 输出文件:
# - candles_1m_*.bin.zst (~15GB, K线数据)
# - futures_metrics_*.bin.zst (~800MB, 期货数据)
# - schema_*.sql.zst (表结构)
# - restore_*.sh (恢复脚本)点击展开👉 恢复数据
cd backups/timescaledb
# 恢复 schema
zstd -d schema_*.sql.zst -c | psql -h localhost -p 5433 -U postgres -d market_data
# 恢复 K线数据
zstd -d candles_1m_*.bin.zst -c | psql -h localhost -p 5433 -U postgres -d market_data \
-c "COPY market_data.candles_1m FROM STDIN WITH (FORMAT binary)"
# 恢复期货数据
zstd -d futures_metrics_*.bin.zst -c | psql -h localhost -p 5433 -U postgres -d market_data \
-c "COPY market_data.binance_futures_metrics_5m FROM STDIN WITH (FORMAT binary)"点击展开👉 Q: TA-Lib 安装失败?
# 确保先安装系统库
sudo apt-get install -y build-essential
# 下载并编译 TA-Lib
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar -xzf ta-lib-0.4.0-src.tar.gz
cd ta-lib
./configure --prefix=/usr
make
sudo make install
# 然后安装 Python 包
pip install TA-Lib点击展开👉 Q: K线形态显示"无形态"?
# 检查 TA-Lib 是否安装
python -c "import talib; print(talib.__version__)"
# 检查形态库是否安装
pip install m-patternpy
pip install tradingpattern --no-deps
# 重启 trading-service
cd services/compute/trading-service
./scripts/start.sh restart点击展开👉 Q: 数据库连接失败?
# 检查 PostgreSQL 是否运行
sudo systemctl status postgresql
# 检查端口
ss -tlnp | grep 5433
# 检查连接
PGPASSWORD=postgres psql -h localhost -p 5433 -U postgres -c "\l"点击展开👉 📞 联系方式
- Telegram 频道: tradecat_ai_channel
- Telegram 交流群: glue_coding
- Twitter/X: 123olp
- discord: tradecat
本项目采用 MIT License 开源许可证。
