360 Secure SkillHub
360 安全技能中心

Signallink

SignalLink 是一个基于 FastAPI 的自托管桥接服务,接收 TradingView 等来源的 Webhook 警报,校验可选密钥,整理交易信号字段后通过 Telegram Bot API 发送格式化消息,并提供健康检查与原始键值接口。

shinzzyak
shinzzyak
热度 81.29
最近更新 2026-05-11 17:28:41
分类:自动化依赖:代码执行 / 第三方 API / 读写文件应用场景:自动化脚本 / 工作流 / API 集成 / 财务

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add signallink
Metadata
name
signallink
version
1.0.0
description
Forward trading alerts and webhook events from TradingView to Telegram instantly. No subscriptions, no middlemen.
author
Shinzzyak
tags
["tradingview","telegram","webhook","trading","signal","fastapi","alert"]
metadata
{"openclaw":{"requires":{"env":["TELEGRAM_BOT_TOKEN","TELEGRAM_CHAT_ID"],"bins":["python3","docker"],"optional_env":["WEBHOOK_SECRET","PORT"]},"primaryEnv":"TELEGRAM_BOT_TOKEN","emoji":"📡","homepage":"https://github.com/Shinzzyak/SignalLink"}}

SignalLink — Webhook-to-Telegram Signal Router

A lightweight, open-source bridge that receives webhook alerts (e.g. from TradingView) and forwards them as clean, formatted messages to a Telegram bot. No paid services, no third-party subscriptions — just deploy and route.

When To Use This Skill

Use SignalLink when the user wants to:

  • Forward TradingView price alerts or strategy signals to Telegram
  • Route any webhook event (uptime monitors, CI/CD pipelines, custom alerts) to Telegram
  • Set up a self-hosted trading signal notification system
  • Replace paid signal routing services with a free, open-source alternative

Setup

Step 1 — Get a Telegram Bot Token

  1. Open Telegram and message @BotFather
  2. Send /newbot and follow the prompts
  3. Copy the bot token — it looks like 123456789:ABCdef...

Step 2 — Get Your Chat ID

  1. Message @userinfobot on Telegram
  2. It will reply with your Chat ID

Step 3 — Configure Environment

cp .env.example .env

Edit .env:

TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
WEBHOOK_SECRET=your_secret_here   # Optional but recommended
PORT=8000

Step 4 — Run

With Docker (recommended):

docker compose up -d

With Python:

pip install -r requirements.txt
python -m App.main

Server starts at http://localhost:8000

Endpoints

Method Path Description
GET / Health check
GET /health Detailed health status
POST /webhook Main endpoint — auto-detects signal format
POST /webhook/raw Raw key-value formatter for generic alerts

Usage Instructions

When a user asks to forward trading signals or webhook alerts to Telegram:

  1. Ask for their TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID if not already set
  2. Guide them to set up the .env file using .env.example as a template
  3. Start the server using Docker or Python
  4. Point their webhook source (e.g. TradingView) to http://<server-ip>:8000/webhook
  5. Optionally set WEBHOOK_SECRET and instruct the user to pass it as the X-Webhook-Secret header

TradingView Integration

In TradingView, set the alert webhook URL to:

http://your-server-ip:8000/webhook

Set the alert message body to JSON:

{
  "action":   "buy",
  "symbol":   "XAUUSD",
  "price":    "{{close}}",
  "interval": "{{interval}}",
  "strategy": "My Strategy",
  "sl":       "2330.00",
  "tp":       "2370.00",
  "lot":      "0.1",
  "message":  "Signal confirmed."
}

Supported Payload Fields

Field Alias Description
action signal Signal direction: buy, sell, close, neutral
symbol ticker Trading pair, e.g. XAUUSD, EURUSD, BTCUSD
price close Entry or current price
interval timeframe Chart timeframe, e.g. 1H, 4H, 1D
strategy strategy_name Strategy name
sl stop_loss Stop loss level
tp take_profit Take profit level
lot quantity Lot size or quantity
message msg Custom note or description

Testing

Send a test webhook with curl:

curl -X POST http://localhost:8000/webhook \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Secret: your_secret_here" \
  -d '{
    "action": "buy",
    "symbol": "XAUUSD",
    "price": "2345.50",
    "interval": "1H",
    "sl": "2330.00",
    "tp": "2370.00"
  }'

Example Telegram Output

🟢 BUY Signal

🥇 Pair:       XAUUSD
💰 Price:      2345.50
⏱️ Timeframe:  1H
🧠 Strategy:   EMA Crossover

🛑 Stop Loss:  2330.00
🎯 Take Profit: 2370.00
📦 Lot / Qty:  0.1

📝 Signal confirmed.

─────────────────────
⚡ Powered by SignalLink

Project Structure

SignalLink/
├── App/
│   ├── main.py        # FastAPI entry point
│   ├── webhook.py     # Request handler & auth
│   ├── formatter.py   # Payload → Telegram message
│   ├── telegram.py    # Telegram Bot API client
│   └── config.py      # Environment config
├── Examples/
│   ├── tradingview_payload.json
│   └── custom_payload.json
├── .env.example
├── requirements.txt
├── Dockerfile
└── docker-compose.yml

Security Notes

  • Always set WEBHOOK_SECRET in production to prevent unauthorized requests
  • The secret is validated via constant-time comparison to prevent timing attacks
  • Never expose your TELEGRAM_BOT_TOKEN publicly