Receives TradingView alerts and custom signals, gates them through configurable rules and 30+ live technical indicator filters, then executes approved orders on Gunbot. Works with TradingView via ngrok — no cloud required.
Receives POST webhooks from TradingView. Expose locally via ngrok with one command — the UI shows your live tunnel URL.
Optional HMAC-SHA256 validation via X-WEN-Signature. Skipped when no secret is set — safe for TradingView which cannot send custom headers.
Rate limiter, cooldown, time window, balance check, consensus, pair allowlist, direction filter — stack any combination per pair.
EMA, RSI, MACD, BB, Stoch, ATR, ADX, CCI, MFI, VWAP, and 20+ more. Fetches live candles from Gunbot and blocks on any failed condition.
Browser receives real-time push for every webhook received, gated, or executed — no polling, no page refreshes.
All gate rules, indicator settings, and Gunbot credentials saved to webhook_config.json and restored automatically on restart.
POST /webhook { "action": "buy", "symbol": "BTC/USDT", "exchange": "bybit" } │ ├─ Body size check max 64 KB ├─ HMAC signature skip if no secret configured ├─ Gunbot auth Bearer token valid? ├─ Gate rules rate / cooldown / time / balance / consensus… ├─ Indicator filter fetch candles RSI / MACD / BB / ATR… │ ├─ APPROVED ────────── Gunbot REST ── Exchange └─ GATED ────────── log + SSE push ── UI
| Rule type | Description |
|---|---|
| Rate Limit | Maximum N signals per time window (e.g. 3 per hour) |
| Cooldown | Minimum time between signals on the same symbol |
| Time Window | Only allow signals between specified UTC hours |
| Balance Check | Reject if Gunbot portfolio balance is below threshold |
| Indicator Filter | Block on live RSI, MACD, Bollinger Bands, ADX, and 26+ others |
| Direction Filter | Only allow buy, only allow sell, or both directions |
| Pair Allowlist | Accept signals only for specific trading pairs |
| Signal Consensus | Require N matching signals within a window before executing |
| Max Open Positions | Block if Gunbot already holds N or more open positions |
| Drawdown Guard | Block if portfolio drawdown exceeds the configured threshold |