Webhooks and TradingView signals

Routing a TradingView alert through the same risk gate your own clicks go through.

A Signal is a TradingView alert delivered to an endpoint of your own. It goes through exactly the same gate a click does: it is sized from your rules, checked against your Buffer, and refused for the same reasons in the same words.

The Webhooks page: an endpoint with its URL and the log of deliveries it has received.

Setting one up

  1. Make an endpoint on Webhooks. You get a URL and a secret. The secret is shown once and stored as a hash - if you lose it, revoke the endpoint and make another.
  2. In TradingView, put the URL in Webhook URL.
  3. Put the alert body in the alert's Message box.

The alert body

{
  "secret": "whsec_...",
  "action": "open",
  "symbol": "{{ticker}}",
  "side": "buy",
  "sl": 1.075,
  "risk_percent": 0.5,
  "signal_id": "{{timenow}}"
}
  • action - open, close, modify or flatten.
  • sl - a price on the instrument the alert fires for, on the losing side of the market for the direction you are sending: below it for a buy, above it for a sell. This is the field that refuses most Signals, and the example above suits EURUSD - change it with the chart.
  • risk_percent - a percentage of the account, like 0.5. Or send volume in lots instead; a size you typed is a decision, and a risk percent beside it is the budget that size was chosen to fit, so lots win when an alert carries both.
  • type - limit or stop with an entry, or omit it for a market order.
  • signal_id - anything unique per Signal. {{timenow}} is the right answer, and it is what makes a duplicate delivery land once rather than twice.

Reading the log

Every delivery is logged with what it asked for, what it was sized at, and - if it was refused - the reason, in the same sentence a refused click would have shown. A refusal names what was actually wrong: a stop on the wrong side of the market says so, and is not reported as a complaint about the size.

What it cannot do

A Signal cannot exceed your rules, cannot name an account (the endpoint decides that), and cannot place an order while your account is Locked. The endpoint is rate limited, and the log says how many deliveries were suppressed rather than dropping them silently.

Keyboard

?
Open and close this sheet.
Escape
Stand down anything that is armed - the kill switch, an open notification panel, this sheet. It never commits anything.
Tab / Shift + Tab
Move between controls. Every one of them shows a focus ring.
Arrow keys
Nudge a focused panel around the canvas. Hold Shift to move it further per press.
Enter or Space
Activate the control that is focused, and only that one. There is deliberately no key anywhere that sends an order on its own.