tradingview-alert-dispatcher/README.md
2026-05-14 21:40:22 +08:00

79 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TradingView Alert Dispatcher
接收 TradingView webhook alert`timeframe + symbol + strategy` 路由到飞书 webhook并提供管理控制台。
## Run Locally
```bash
python3 -m app
```
默认地址:`http://localhost:8000`
默认登录:
- 用户名:`admin`
- 密码:`change-me-now`
首次启动会把 `ADMIN_PASSWORD` 写入数据库并保存为哈希。之后请在管理台的「账号安全」页面修改密码;修改后环境变量不会覆盖数据库中的新密码。
## Docker
```bash
docker compose up --build
```
Compose 会启动两个服务:`dispatcher` 负责 Web/API/管理台,`worker` 负责周期性处理失败重试。
## TradingView Payload
```json
{
"timeframe": "5m",
"symbol": "BTCUSDT",
"strategy": "breakout",
"action": "buy",
"price": 68000
}
```
发送到:
```text
POST /webhook/tradingview
Content-Type: application/json
```
## Feishu Message Templates
路由规则支持两种消息类型:
- `Card`:默认,发送飞书 interactive card。
- `Text`:发送普通文本消息。
标题和正文模板支持 `{{field}}` 占位符,字段来自 TradingView alert JSON。嵌套字段可以写成 `{{order.id}}`
每条路由规则通过「发送到」下拉框选择一个飞书 Webhook。需要同一个信号发到多个群时可以建多条匹配条件相同、目标不同的规则并用优先级控制命中顺序当前默认路由逻辑只发送最高优先级命中的规则。
示例正文模板:
```text
**品种**: {{symbol}}
**周期**: {{timeframe}}
**策略**: {{strategy}}
**动作**: {{action}}
**价格**: {{price}}
```
## Environment
- `ADMIN_USERNAME`
- `ADMIN_PASSWORD`
- `SESSION_SECRET`
- `DATABASE_PATH`
- `RETENTION_DAYS`
- `MAX_DELIVERY_ATTEMPTS`
- `RETRY_BACKOFF_SECONDS`
- `FEISHU_TIMEOUT_SECONDS`
- `WORKER_INTERVAL_SECONDS`