Signal Logs
Every webhook PineHook has received for your account, with the format validator, the connection tester, the rejection trail, and the latency you need to trust the path from TradingView to MT5.
Last updated: 2026-05-16
Video walkthrough coming soon.
Every webhook PineHook has accepted for your account, what each one became, and how long it took. This page is also where you'll validate alert payloads before you wire your first TradingView alert, and round-trip a test signal to your EA before you trust it with a live strategy. It works the same on every plan; only the rate caps differ.
Test before you ship#
Validate Format runs the live webhook parser against any CSV or JSON payload you paste in. A success result lists every parsed parameter and surfaces warnings for values that are technically valid but unusual. A failure result quotes the parser's complaint and highlights the offending character span in the raw payload, so you can see exactly where the alert template went wrong.
Test EA Connection picks an active license and sends a real signal through the live pipeline. Your EA marks it as a test and skips placing a trade. You get back a confirmation that the round-trip worked plus a diagnostics panel covering broker name, account mode, leverage, currency, MT5 build, EA version, and the four MT5 trade-permission flags every EA needs set. If a permission is red, you'll know exactly which one to fix before relying on the platform for a real trade.
Test EA Connection costs nothing
The test signal goes through the same pipeline as a real webhook, but the EA marks it as a test and skips placing a trade. It also doesn't count against your per-minute or per-day signal cap.
Live monitoring#
A panel at the top of the page reports the live state of the PineHook signal relay, your lifetime totals (signals received, executed, failed, average execution time), and your overall success rate. Each signal row breaks its latency into D (Delivery — our processing before hand-off to your EA), E (Execution — the EA + WebSocket round-trip, excluding broker fill), and B (Broker Fill — your broker's own fill time, outside our control, shown when your EA reports it). The headline total is D + E; B is shown but not counted in it. The latency cell shows a neutral D + E total with the D/E/B breakdown beneath. Under ~50 ms is excellent and over ~200 ms is slow. A high B points to your broker; a high E with low B points to your EA or its WebSocket link; a high D (rare) points to our side. (The green/amber/red coloring applies only to internal admin views.)
Queued, rejected, and the audit trail#
When a signal arrives but your EA isn't connected, it lands in the Queued Signals panel and waits. Clearing a queued signal removes it from the queue and writes a row to your signal log with status ABDN (Abandoned), so a cleared signal always leaves a trace. The button is labeled "Clear" for continuity with the prior UI; the log row reads Abandoned.
Queued signals expire after 24 hours
If your EA never reconnects within a day to pick a queued signal up, the signal drops out of the queue without executing. Restart MT5 promptly if you see signals piling up.
When a webhook arrives that PineHook can't parse (a typo, a missing comma, an unrecognized parameter) — or your EA refuses a delivered signal at execution time — it lands in the Rejected Signals panel rather than disappearing silently. The panel highlights the offending character span and explains the complaint per warning. Dismissals are persisted on the server, so they carry across browsers and devices.
Identical rejections are grouped: signals that share the same command, symbol, and offending parameter collapse into one row with a ×N count pill, so a strategy that misfires the same way 100 times shows up once (as ×100) instead of flooding the list. Click a group to expand the individual signals inside it; dismiss the whole group with its X, or use Dismiss All to clear everything at once.
Dismiss once, dismissed everywhere
The dismissal is stamped on the server. Sign in from your phone and the rejections you cleared on your desktop are still hidden. Rejected signals stay in the database under the same retention window as your other trading data, so support can always find them again later.
Not in the Rejected panel? Check TradingView
For a rejection to appear in the panel, PineHook needs to identify which of your licenses the webhook belongs to. If the payload is so malformed the platform can't recognize the license at all, the alert is rejected at the door and the error lives only in TradingView's own alert log.
The signal log#
The main table shows every signal you've ever fired, filterable by status and license. Each row carries a status badge:
| Badge | Meaning |
|---|---|
| EXEC (green) | The signal reached the EA and the broker placed the trade |
| FAIL (red) | The EA received the signal but the trade could not be placed; the inline error explains why |
| SENT (amber, pulsing) | Sent to the EA, waiting for confirmation. Most rows transition within milliseconds |
| RECV (blue) | Received by PineHook, not yet forwarded |
| DLYD (indigo, pulsing) | Queued (Delayed): a delay= signal is held in the server-side delay queue and has not yet been sent to the EA |
| BLKD (gray) | Duplicate Blocked: the same signal arrived twice in quick succession and the second copy was dropped |
| RJCT (red) | Rejected by the parser (the Rejected panel above carries the full detail) |
| ABDN (amber) | Cleared from the queue by you |
| BLCK (purple) | Blocked by a safety gate. The badge sub-label names the gate: Symbol Filter, Active Hours, Auth, or Filter Too Long |
BLCK is server-side only; spread, position, market-state, and daily-drawdown rejections all show up as the Trade rejected pill below.
Cancel commands (cancellong, cancelshort, cancelall) carry a small chip showing how many of the matched pending orders were actually cancelled, so a 0 / 0 is a visible no-op rather than a silent failure.
Two warning pills can attach to a row to surface broker-level events the row itself doesn't fully capture. Trade rejected appears when the EA accepted your signal but its own pre-trade check refused to execute: broker spread too wide, market moved too far from the alert reference, symbol blocked, market closed, daily drawdown limit reached, or one of several specific reasons. The pill shows the observed value against your configured limit. Extreme volatility appears only on close-command fills, confirming that the close did execute and disclosing how much slippage it took to get there. It is not a sign that the PineHook relay is misbehaving; it usually means the broker filled at a worse price than the alert reference because the order book was thin, the spread was unusually wide, or the instrument was moving fast at the moment of the fill.
Deleting or regenerating a license doesn't erase its trading history. The License filter has a separate Deprecated group so audit and dispute resolution always have somewhere to point.
Data retention#
Every signal-related row (accepted, rejected, executed, failed, blocked, cleared) is retained for 2 years, then anonymized. Personal identifiers like the license key and the raw webhook payload are removed at the 2-year mark; the trading metadata (command, symbol, status, timestamps) is preserved beyond that for the platform's dispute-resolution window. This matches the published privacy policy and applies uniformly across every plan.
Rejected signals follow the same window. A failed-to-parse webhook is still a record of your trading intent, so PineHook keeps it for the same length of time as the alerts that did execute.
Plans and access#
The Signal Logs page itself, including Test & Validate, the Queued and Rejected panels, the live indicator, and the full log table, is available on every plan including Trial. What differs:
| Item | Trial | Standard | Pro | Premium |
|---|---|---|---|---|
| Signals per minute, per day | Lowest caps | Higher | Higher | Highest |
| Licenses in the License filter | 1 | 1 | Up to 3 | Up to 10 |
| Live pending orders per license | 5 | 50 | 500 | 5,000 |
| Maximum pending-order expiry horizon | 15 minutes | 24 hours | 24 hours | 24 hours |
delay= parameter on signals | Not available | Available | Available | Available |
Retention is the same on every tier. See the pricing page for the exact rate caps per plan.
Next steps#
- Overview Page is the daily summary across all your licenses, with the equity curve and today's P&L.
- Analytics covers full-history charts, symbol breakdowns, drawdown, and the trade table beyond today's slice.
- Open Positions is for live position management.
- Subscription holds the plan, billing, and per-tier rate caps in detail.
- Troubleshooting: Signals Not Received walks through what to do when a TradingView alert doesn't show up at all.