Signal Message Reference
Every field EZPZ Trader reads from an alert message, the values it accepts, and which subscription setting lets it change your order.
On this page
The webhook request
Send a POST request to your strategy's webhook URL with a JSON body:
POST https://ezpztrader.com/trading/webhook/{uuid}/{secret}/
{
"ticker": "AMD",
"action": "buy",
"signalPrice": 143.12,
"quantity": 1,
"takeProfit": {
"percent": 10
},
"stopLoss": {
"type": "stop",
"percent": 5
}
}
This buys 1 share of AMD on every enabled subscription of the strategy. A take profit is placed 10% above the entry price and a stop loss 5% below it, where the subscription allows signal take profit / stop loss and the broker supports them.
How fields are read
- Field names are case-sensitive:
quantityType, notquantitytype. - Numbers can be sent as numbers or text:
5and"5"are the same. true/falsecan be sent as JSON booleans or the text"true"/"false".- Fields we don't know are kept with the signal and shown on its page, and otherwise ignored. Put your own data in
extrasso it never clashes with a field we add later. - A field marked Allow signal override needed only changes your order when that setting allows it. See Subscriptions.
Required
ticker
The symbol to trade: AAPL, BTCUSD, MNQZ2026, an option contract like SPY 261016C580, up to 32 characters.
Type: text · Always read (no setting needed)
action
What to do. buy and sell enter (and close the opposite side first); exit closes; add adds to an open position; cancel cancels open orders; reverse flips sides; breakeven moves the stop to the entry price; resize sets the position to a quantity.
Type: text · Values: buy, sell, exit, add, cancel, reverse, breakeven, resize · Always read (no setting needed)
Direction and size
sentiment
The position you want after the trade. flat closes without entering the other side. Allowed with buy, sell and resize only.
Type: text · Values: bearish, bullish, flat, long, short · Always read (no setting needed)
quantity
How much to trade. Without it, the subscription's Position Size decides.
Type: number · Allow signal override needed: Position Size
quantityType
How to read quantity. Case-sensitive. Without it, quantity is a fixed share/contract count.
Type: text · Values: dollar_amount, fixed_quantity, percent_of_equity, percent_of_position, risk_dollar_amount, risk_percent · Allow signal override needed: Position Size
Prices and order type
signalPrice (or price)
The price when the alert fired. Used for limit prices, sizing and slippage when no limitPrice is sent. An unreadable value counts as no price.
Type: number · Always read (no setting needed)
orderType
The order type for the entry and exit. One the broker can't take keeps the subscription's own.
Type: text · Values: limit, market, stop, stop_limit, stop_market, trailing_stop · Allow signal override needed: Entry / Exit order type
limitPrice
The limit price of a limit or stop_limit order.
Type: number · Always read (no setting needed)
stopPrice
The trigger price of a stop or stop_limit order.
Type: number · Always read (no setting needed)
trailAmount / trailPercent
The trail of a trailing_stop order: a price distance, or a percent below 100. Send one.
Type: number · Allow signal override needed: Entry / Exit order type
timeInForce
How long the order stays open. One the broker can't take keeps the subscription's own.
Type: text · Values: cls, day, fok, gtc, gtd, ioc, opg · Allow signal override needed: Entry / Exit time in force
extendedHours
Trade in the pre/post-market session (stocks, where the broker supports it).
Type: true / false · Allow signal override needed: Entry / Exit time in force
marketPriceType
Which quote price to use when the signal has no price.
Type: text · Values: ask, ask_bid, bid, bid_ask, last, mark, midpoint · Allow signal override needed: Entry / Exit market price type
Take profit and stop loss
takeProfit
A take profit attached to the entry, where the broker supports it.
Type: object · Values: percent, amount, limitPrice or pnlAmount (one) · Allow signal override needed: Take profit
stopLoss
A stop loss attached to the entry. A trailing_stop type is refused for now.
Type: object · Values: type (stop, stop_limit, stop_market, trailing_stop), plus percent, amount, stopPrice or pnlAmount (one), limitPrice for stop_limit · Allow signal override needed: Stop loss
breakevenOffset
With action breakeven: how far past the entry price to put the new stop.
Type: number · Values: 0.001 to 100 · Allow signal override needed: Exit market price type
Open orders and timing
cancel
Cancel open orders on the ticker first (true) or don't (false), whatever the subscription says.
Type: true / false · Always read (no setting needed)
cancelOrderType
With cancel: only cancel open orders of this type.
Type: text · Values: market, limit, stop, stop_limit, trailing_stop · Always read (no setting needed)
cancelAfter
Cancel the order if it's still open after this long.
Type: seconds · Values: 1 to 3600 · Allow signal override needed: Cancel open entry / exit order after
rejectAfter
Skip the trade if the signal is older than this when it runs.
Type: seconds · Allow signal override needed: Reject entry / exit if signal is older than
delay
Wait this long before trading. At most 24 hours.
Type: seconds or time · Values: 1 to 86400, "+5 minutes", "5:30 pm EST" · Always read (no setting needed)
expiresAt
Don't trade the signal after this.
Type: date or time · Values: "2026-01-25", "+1 month" · Always read (no setting needed)
ignoreTradingWindows
Trade even outside the subscription's trading windows.
Type: true / false · Always read (no setting needed)
bidAskSpreadFilter / bidAskSpreadFilterPercent
Skip the order if the bid/ask spread is wider than this. Send one.
Type: number · Values: percent: 0.01 to 99.99 · Allow signal override needed: Entry / Exit bid-ask spread
Options contract
optionType
Which side of the chain to pick when the ticker is an underlying (SPY), not a contract.
Type: text · Values: both, call, calls, put, puts · Allow signal override needed: Options contract
intrinsicValue
In or out of the money.
Type: text · Values: itm, otm · Allow signal override needed: Options contract
expiration
The first expiration on or after this.
Type: date or relative · Values: "2026-11-20", "+1 month", "0 days" · Allow signal override needed: Options contract
expirationType
Which kind of expiration to pick.
Type: text · Values: 0dte, any, daily, end-of-month, leaps, monthly, quarterly, weekly, zero-dte · Allow signal override needed: Options contract
strikeCount
How many strikes to read around the money.
Type: whole number · Values: even, 2 to 20 · Allow signal override needed: Options contract
strikesAway
How many strikes from the money to pick.
Type: whole number · Values: 1 to half the strike count · Allow signal override needed: Options contract
strikePrice
An exact strike to trade.
Type: number · Allow signal override needed: Options contract
Stored with the signal
message
A note shown with the signal.
Type: text · Values: up to 255 characters, no HTML · Always read (no setting needed)
time
When the alert fired. "Reject if signal is older than" counts from this time, so a late delivery isn't treated as fresh. A time in the future, or none, counts from when we received it.
Type: ISO-8601 time · Values: "2026-10-24T14:30:00Z" (TradingView: {{timenow}}) · Always read (no setting needed)
interval, extras
Saved and shown on the signal's page. Use extras for your own fields so they never clash with ours.
Type: any · Always read (no setting needed)
Batch signals
When the strategy's Allow batch signals is on, one request can carry a JSON list of up to 5 signals. Every item is checked first: if any one is invalid, none of them are accepted.
[
{"ticker": "AAPL", "action": "buy", "quantity": 10},
{"ticker": "MSFT", "action": "buy", "quantity": 5}
]
Examples
Enter long
{
"ticker": "SPY",
"action": "buy"
}
Exit the position
{
"ticker": "SPY",
"action": "exit"
}
An exit without a quantity closes the whole position. With a quantity smaller than the position, it closes part of it.
Close a long without going short
{
"ticker": "SPY",
"action": "sell",
"sentiment": "flat"
}
sentiment: flat always closes the full position, whatever quantity is sent, and never opens the other side.
Partial exit by percent
{
"ticker": "SPY",
"action": "exit",
"quantityType": "percent_of_position",
"quantity": 50
}
Limit order with take profit and stop loss prices
{
"ticker": "TSLA",
"action": "buy",
"orderType": "limit",
"limitPrice": 250.50,
"takeProfit": {
"limitPrice": 265
},
"stopLoss": {
"type": "stop_limit",
"stopPrice": 242,
"limitPrice": 241.50
}
}
Risk a fixed dollar amount
{
"ticker": "AAPL",
"action": "buy",
"signalPrice": 100,
"quantityType": "risk_dollar_amount",
"quantity": 100,
"stopLoss": {
"type": "stop",
"stopPrice": 90
}
}
The stop is $10 below the entry, so risking $100 buys 10 shares. See Position Sizing.
Cancel open orders
{
"ticker": "SPY",
"action": "cancel",
"cancelOrderType": "stop"
}
Without cancelOrderType, every open order on the ticker is cancelled.
Wait before trading
{
"ticker": "QQQ",
"action": "exit",
"delay": 60
}
↑ ↓ to move · Enter to open · Esc to close