Platform Overview

Relay by Trado is a webhook-powered trading automation platform that routes your TradingView alerts (or any webhook source) directly to your broker accounts. Execute trades automatically, manage multiple accounts, and scale your strategies — all without writing a single line of code.

Instant Execution

Sub-50ms webhook processing for real-time trade execution.

Enterprise Security

AES-256-GCM encryption for all API credentials.

9 Action Types

ENTRY, EXIT, PARTIAL_EXIT, FLIP, and more.

Copy Trading

Follow expert traders or share your strategies.

Supported Brokers

Currently, Relay by Trado supports WazirX (Futures & Spot trading). More brokers will be added in the future.

Getting Started

Follow these steps to start automating your trades:

1

Create an Account

Sign up with your email or Google account. Verify your email with a 6-digit OTP.

2

Add Your Broker API

Navigate to "Manage API" and add your WazirX API credentials (API Key + API Secret). Your credentials are encrypted with AES-256-GCM.

3

Create a Webhook

Go to "Manage Webhooks" and create a new webhook. Select your broker and give it a descriptive name.

4

Deploy Your Account

Deploy your broker account to the webhook. Set a multiplier to scale your position sizes.

5

Configure Your Alert Source

Copy the webhook URL and paste it into TradingView (or any alert source). Set up the JSON payload.

6

Start Trading

Your alerts will now automatically execute trades on your deployed broker accounts!

API Management

Broker API accounts are the bridge between Relay by Trado and your exchange. You need to add at least one API account before you can deploy to a webhook.

Adding an API Account

Navigate to Dashboard → Manage API and click "Add New API".

FieldRequiredDescription
Broker
Required
Select from supported brokers (WazirX)
Account Name
Required
A display name for your account (1–100 chars)
API Key
Required
Your broker API key (encrypted at rest with AES-256-GCM)
API Secret
Required
Your broker API secret (encrypted at rest with AES-256-GCM)

Account Features

Credential Verification — Your API credentials are verified with the broker on creation. You can re-verify at any time.

Balance Check — View real-time balances (available, locked, total) directly from your dashboard.

Broker Info — Fetch your broker user profile and account details.

Active/Inactive Toggle — Deactivated accounts skip all webhook orders. Useful for temporarily pausing execution.

Visual ID — Each account gets a unique human-readable identifier (e.g., "A1B2C3").

Webhook Management

Webhooks are the core of the platform. Each webhook has a unique URL that accepts JSON payloads to execute trades on all deployed accounts.

Creating a Webhook

Navigate to Dashboard → Manage Webhooks and click "Create Webhook". Select a broker and provide a name and optional description.

Webhook URL

Each webhook gets a permanent URL that never changes:

POST https://relay.trado.trade/webhook/{webhook_url_id}

💡 Important: webhook_url_id vs access_code

The webhook_url_id (32 chars) is the permanent URL identifier — it never changes. The access_code (8 chars) is for sharing with subscribers and can be regenerated without affecting the URL.

Webhook Properties

PropertyDescription
is_activeToggle webhook on/off. Inactive webhooks reject all triggers.
is_publicPublished for subscription by other users.
is_invite_onlyOnly users whose Trado Relay ID is in the invite list can subscribe.
welcome_messageMessage shown to subscribers when they join.
is_listedListed on the public marketplace for discovery.

Webhook Lifecycle

1. Create — Private webhook with unique URL

2. Deploy Accounts — Attach broker accounts with multiplier

3. Publish (optional) — Make public/invite-only with welcome message

4. List on Marketplace ( subject to review ) — Make discoverable on the marketplace. This requires admin approval to ensure quality control.

5. Share — Share access code for subscribers to join

Cooldown (Deduplication)

The platform includes an in-memory cooldown service that prevents duplicate orders from rapid webhook fires. The default cooldown window is 500ms — identical payloads within this window are automatically filtered.

Cooldown service can be turned off for any HFT strategy. This can be done by using the Cooldown Protection toogle in the Edit Webhook Modal.

Webhook Payload & Syntax

The webhook accepts JSON payloads. The platform supports three parser formats detected automatically.

Parser Detection (Priority Order)

1. WazirX Futures Parser — Detected via AT: "WAZIRXFUTURE"

2. WazirX Spot Parser — Detected for WazirX spot format

3. Standard Parser — Fallback for payloads using the action field

Standard Payload Format

{
  "action": "ENTRY",
  "symbol": "BTCINR",
  "side": "BUY",
  "quantity": 0.001,
  "price": 0,
  "order_type": "market_order",
  "leverage": 10,
  "margin_mode": "ISOLATED",
  "take_profit_price": 105000,
  "stop_loss_price": 95000,
  "margin_currency_short_name": "INR"
}

WazirX Futures Payload Format

{
  "AT": "WAZIRXFUTURE",
  "ID": "ENTRY",
  "S": "BTCINR",
  "SD": "BUY",
  "Q": 0.001,
  "P": 0,
  "LVG": 10,
  "MT": "ISOLATED",
  "TP": 105000,
  "SL": 95000,
  "margin_currency_short_name": "INR"
}

Complete Field Reference

FieldAliasesTypeDescription
atATstringWhere to perform (e.g., WAZIRXFUTURE)
actionACTION, IDstringAction to perform (see Supported Actions)
symbolSYMBOL, S, PAIRstringTrading pair (e.g., BTCINR)
sideSIDE, SDstringBUY / SELL / B / S / LONG / SHORT
quantityQ, QTYnumberBase quantity (before multiplier)
priceP, PRICEnumberLimit price (0 or omit for market order)
leverageLVG, LEVERAGEnumberLeverage multiplier
order_typeORDER_TYPEstringmarket_order / limit_order
stepqtystep_qty, STEPQTYnumberQuantity rounding increment (auto-fetched if not provided)
price_stepSTEPnumberPrice rounding increment (auto-fetched if not provided)
percentPERCENTnumberExit percentage (1–100) for PARTIAL_EXIT
qty_typeQTY_TYPEstringDynamic sizing mode: CAPITAL_PCT, MARGIN_PCT, SIZE_INR, or MARGIN_INR. See Quantity Modes below. When set, quantity holds the percentage (for *_PCT) or the amount in the margin currency (for *_INR).
take_profit_priceTPnumberTake profit value (price, percentage, or points based on mode)
stop_loss_priceSLnumberStop loss value (price, percentage, or points based on mode)
sl_tp_modeSL_TP_MODEstringCombined SL/TP mode: PRICE (default) / PERCENTAGE / POINTS
sl_modeSL_MODEstringSL mode override: PRICE / PERCENTAGE / POINTS
tp_modeTP_MODEstringTP mode override: PRICE / PERCENTAGE / POINTS
stop_pricenumberStop/trigger price for stop orders
time_in_forcestringgood_till_cancel / fill_or_kill / immediate_or_cancel
reduce_onlyREDUCE_ONLYbooleanOnly reduce existing position
margin_modeMTstringISOLATED / I / CROSS / C — Only applies to ENTRY. Ignored for EXIT/CLOSE actions (uses position's existing mode).
margin_currency_short_namemargin_currencystringUSDT / INR — Defaults to INR if not provided
binance_symbolBINANCE_SYMBOLbooleanDefault false. When true, the symbol/pair is treated as Binance futures notation (e.g. BTCUSDT.P) and automatically converted to WazirX format by stripping the .P/-PERP suffix (e.g. BTCUSDT).
complete_exit_before_flipbooleanDefault false. FLIP only — when true, the existing position is fully closed (via a complete position exit) before the new entry, ignoring the deployment multiplier for the exit leg.

Default Margin Currency

WazirX Futures contracts are INR-margined and the margin currency is derived from the symbol (e.g. BTCINR), so margin_currency_short_name is optional and informational for all actions including ENTRY, EXIT, PARTIAL_EXIT, CLOSE_SYMBOL, CANCEL_ALL_ORDERS, and FLIP.

Quantity Calculation

The final executed quantity is calculated as:

Final Quantity = roundUp(quantity × multiplier, stepqty)

// Dynamic sizing modes (set via qty_type):
CAPITAL_PCT: quantity = (available_balance × percent / 100) / pricePerContract
MARGIN_PCT:  quantity = (available_balance × percent / 100 × leverage) / pricePerContract
SIZE_INR:    quantity = amount / pricePerContract
MARGIN_INR:  quantity = (amount × leverage) / pricePerContract

Quantity Modes (qty_type)

By default quantity is an absolute amount that the deployment multiplier is applied to. Set qty_type to size each account dynamically instead. The percentage modes use the account's own balance; the amount modes use a fixed value in the margin currency (INR/USDT).

qty_typequantity meansCalculation
CAPITAL_PCT% of available balance (1–100)notional = balance × pct / 100
MARGIN_PCT% of available balance as margin (1–100)notional = balance × pct / 100 × leverage
SIZE_INRFixed position size in margin currencynotional = amount
MARGIN_INRFixed margin amount in margin currencynotional = amount × leverage

💡 Amount modes (SIZE_INR / MARGIN_INR)

For SIZE_INR and MARGIN_INR, quantity is the absolute amount in the margin currency (not a percentage) — despite the "INR" name it honours whatever margin_currency_short_name you set (INR or USDT). A dynamic safety-margin deduction is applied automatically to avoid broker rejections. leverage is required for MARGIN_INR.

Example — fixed ₹10,000 position size:

{
  "AT": "WAZIRXFUTURE",
  "action": "ENTRY",
  "symbol": "BTCINR",
  "side": "BUY",
  "quantity": 10000,
  "qty_type": "SIZE_INR",
  "leverage": 10,
  "margin_currency_short_name": "INR"
}

Example — fixed ₹5,000 margin at 5×:

{
  "AT": "WAZIRXFUTURE",
  "action": "ENTRY",
  "symbol": "ETHINR",
  "side": "SELL",
  "quantity": 5000,
  "qty_type": "MARGIN_INR",
  "leverage": 5,
  "margin_currency_short_name": "INR"
}

Auto Instrument Specs

If stepqty or price_step is not provided in the payload, the platform try to automatically fetches instrument specifications from the broker/exchange to ensure proper rounding.

Binance Symbol Conversion

If your alert source sends symbols in Binance futures notation, set binance_symbol: true and the platform converts the symbol to WazirX format automatically before execution.

Binance notationConverted (WazirX)
NEWTUSDT.PNEWTINR
RAREUSDT.PRAREINR
ETHUSDC.PB-ETH_USDC
{
  "AT": "WAZIRXFUTURE",
  "action": "ENTRY",
  "symbol": "NEWTUSDT.P",
  "side": "BUY",
  "quantity": 100,
  "binance_symbol": true,
  "margin_currency_short_name": "INR"
}

Supported Actions (9 Types)

ENTRY
Open New Position

Aliases: PLACE_ORDER, BUY, SELL, LONG, SHORT, OPEN

Required: symbol, side, quantity

Opens a new position or adds to an existing one. Supports market and limit orders, leverage setting, take-profit/stop-loss (with price, percentage, or points mode), and margin mode configuration.

Price-based SL/TP (default):

{
  "AT": "WAZIRXFUTURE",
  "action": "ENTRY",
  "symbol": "BTCINR",
  "side": "BUY",
  "quantity": 0.001,
  "leverage": 10,
  "margin_mode": "CROSS",
  "take_profit_price": 105000,
  "stop_loss_price": 95000,
  "margin_currency_short_name": "INR"
}

Percentage-based SL/TP:

{
  "AT": "WAZIRXFUTURE",
  "action": "ENTRY",
  "symbol": "BTCINR",
  "side": "BUY",
  "quantity": 0.001,
  "leverage": 10,
  "stop_loss_price": 2,
  "take_profit_price": 5,
  "sl_tp_mode": "PERCENTAGE",
  "margin_currency_short_name": "INR"
}

SL = 2% below entry, TP = 5% above entry (inverted for SELL)

Points-based SL/TP:

{
  "AT": "WAZIRXFUTURE",
  "action": "ENTRY",
  "symbol": "BTCINR",
  "side": "BUY",
  "quantity": 0.001,
  "leverage": 10,
  "stop_loss_price": 500,
  "take_profit_price": 1000,
  "sl_tp_mode": "POINTS",
  "margin_currency_short_name": "INR"
}

SL = 500 points below entry, TP = 1000 points above entry (inverted for SELL)

💡 SL/TP Mode Priority

Use sl_tp_mode to set both SL and TP to the same mode. Use sl_mode / tp_mode individually to override. Individual modes take precedence over the combined mode. For EXIT actions, margin_mode is ignored — the position's existing margin type is used.

EXIT
Close Entire Position

Required: symbol, side

Closes the full position for a given symbol. The side is auto-detected from the current position. Sets reduce_only: true automatically.

{
  "AT": "WAZIRXFUTURE", 
  "action": "EXIT",
  "symbol": "BTCINR",
  "side": "SELL"
  "quantity": 0.001,
  "leverage": 10,
  "stepqty": 0.001,
  "step": 0.1,
  "margin_currency_short_name": "INR"
}

PARTIAL_EXIT
Close Percentage of Position

Aliases: PARTIAL, PARTIAL_CLOSE

Required: symbol, percent (1–100)

Optional: margin_currency_short_name — defaults to INR if not provided

Closes a specified percentage of the current position. Useful for scaling out of positions gradually.

{
  "AT": "WAZIRXFUTURE", 
  "action": "PARTIAL_EXIT",
  "symbol": "BTCINR",
  "percent": 50,
  "margin_currency_short_name": "INR"
}

FLIP
Reverse Position Direction

Aliases: REVERSE, SWITCH

Required: symbol, side, quantity

Optional: margin_currency_short_name — defaults to INR if not provided. If no margin is specified, the exit leg automatically uses the position's margin currency.

Optional: complete_exit_before_flip (boolean, default false)

Closes the existing position and opens a new one in the opposite direction. Executed as two operations: close existing + open new.

{
  "AT": "WAZIRXFUTURE", 
  "action": "FLIP",
  "symbol": "BTCINR",
  "side": "SELL",
  "quantity": 0.001,
  "leverage": 10,
  "margin_currency_short_name": "INR"
}

💡 complete_exit_before_flip

By default the exit leg places a multiplier-scaled reduce-only order. Set complete_exit_before_flip: true to fully close the entire open position (regardless of multiplier) before opening the new entry — guaranteeing a flat position first.

{
  "AT": "WAZIRXFUTURE",
  "action": "FLIP",
  "symbol": "BTCINR",
  "side": "SELL",
  "quantity": 0.001,
  "leverage": 10,
  "complete_exit_before_flip": true,
  "margin_currency_short_name": "INR"
}

CLOSE_SYMBOL
Close All Positions for Symbol

Aliases: CLOSE_POSITION, CLOSE, EXIT_POSITION, EXIT_SYMBOL, EXIT_ALL_POSITION

Required: symbol

Optional: margin_currency_short_name — defaults to INR if not provided

Closes the full open position for a specific trading pair. Only AT, symbol, and margin_currency_short_name are used — all other parameters are ignored.

{
  "AT": "WAZIRXFUTURE", 
  "action": "CLOSE_SYMBOL",
  "symbol": "BTCINR",
  "margin_currency_short_name": "INR"
}

CLOSE_ALL
Close ALL Positions

Aliases: EXIT_ALL, CLOSE_ALL_POSITIONS, CLOSEALL

Emergency action that closes every open position on all deployed accounts. No symbol parameters required.

Optional: margin_currency_short_name — defaults to INR if not provided. Specify to target positions on a specific margin.

{
  "AT": "WAZIRXFUTURE", 
  "action": "CLOSE_ALL",
  "margin_currency_short_name": "INR"
}

CANCEL_ALL_ORDERS
Cancel All Pending Orders

Aliases: CANCEL, CANCEL_ALL

Cancels all pending/open orders on all deployed accounts.

Optional: margin_currency_short_name — defaults to INR if not provided.

{
  "AT": "WAZIRXFUTURE",                  
  "action": "CANCEL_ALL_ORDERS",
  "margin_currency_short_name": "INR"
}

UPDATE_SLTP
Update Stop-Loss / Take-Profit — Not Available

WazirX Futures does not provide an API to modify stop-loss or take-profit on an open position. Instead, attach take_profit_price and stop_loss_price to your ENTRY payload — WazirX places them as linked legs together with the entry order.

{
  "AT": "WAZIRXFUTURE",
  "ID": "ENTRY",
  "SYMBOL": "BTCINR",
  "SIDE": "B",
  "QTY": 0.001,
  "LVG": 10,
  "take_profit_price": 10500000,
  "stop_loss_price": 9500000
}

SKIP
No Operation

Aliases: NOP, NOOP, IGNORE, NO_OP

Does nothing. Useful for conditional logic in your alert scripts where certain conditions should skip execution.

{
  "AT": "WAZIRXFUTURE",                  
  "action": "SKIP"
}

Account Deployment

Deploying an account to a webhook links your broker account to receive and execute trade signals from that webhook.

Deployment Settings

SettingDefaultDescription
multiplier1.0Scales the base quantity. E.g., multiplier of 2 doubles the position size. Range: 0.01–100.
is_activetrueToggle deployment on/off without removing it.

Deployment Notifications

You receive email notifications for every deployment-related action:

Deploy

Account deployed to webhook

Undeploy

Account removed from webhook

Activate

Deployment activated

Deactivate

Deployment deactivated

Multiplier Change

Multiplier updated (shows old → new value)

Notification emails include: webhook name, exchange, account name, client ID, multiplier, status, access type (Private/Public/Listed), who performed the action (Owner/Subscriber), and timestamp.

Access Control

Webhook Owner — Can see ALL deployments and perform actions on all accounts

Subscriber — Can only see and manage their OWN deployments

Manual Trading Actions

In addition to webhook-triggered trades, you can execute trades manually from the dashboard. These actions are available on both webhooks and copy groups.

ActionParametersDescription
Place Order
Account(s), Symbol, Side, Quantity, Order Type, Price, TP/SLOpen a new position with full control over parameters
Partial Exit
Account(s), Symbol, Exit % or QuantityClose a percentage of an existing position
Exit All
Account(s)Close ALL open positions on selected accounts
Exit by Symbol
Account(s), SymbolClose all positions for a specific trading pair
Cancel All Orders
Account(s)Cancel all pending/open orders
Update SL/TP
Account(s), Symbol, TP Price, SL PriceSet or update stop-loss and take-profit prices

💡 Multiplier Application

The deployment multiplier is applied for Place Order actions. It is NOT applied for Partial Exit, Exit All, or other exit actions since they work relative to the existing position.

Execution Results

SUCCESS
FAILED
SKIPPED
COOLDOWN

SKIPPED occurs when: account is inactive, no position found for exit, or outside trading hours. COOLDOWN occurs when the same payload is sent within the cooldown window.

Copy Groups

Copy Groups allow you to execute trades simultaneously across multiple member accounts. The group owner can perform actions on all members' deployed accounts.

How It Works

1. Create Group — Select broker, provide name and description

2. Deploy Your Accounts — Add your own accounts with multiplier

3. Share Access Code — Members join using the 8-character code

4. Execute Trades — All 6 manual actions available for member accounts

Member Settings

SettingDescription
multiplierPer-member trade size multiplier (default 1.0)
is_activeToggle member participation on/off

Owner Dashboard

As a group owner, you can view:

Positions — Live positions for all members

Balances — Real-time balances for all members

Open Orders — Pending orders for all members

Execution Logs — Complete trade history with per-order details

Invite-Only Groups

You can restrict group membership by enabling invite-only mode. Only users whose client_id is in the invite list can join the group.

Copy Trading

Discover and follow expert traders. Subscribe to their published webhooks and deploy your accounts to automatically copy their trades.

Subscribing to a Webhook

1. Browse the Marketplace or Copy Trading page to find strategies

2. Click Subscribe and enter the access code (if required)

3. Deploy your broker account to the subscribed webhook

4. All webhook triggers from the creator will execute on your account

Important

You cannot subscribe to your own webhooks. Your broker must match the webhook's broker type. Invite-only webhooks require your Trado Relay ID to be in the invite list.

Marketplace

The marketplace lets you discover published strategies from other traders. As a creator, you can publish your webhooks and share your trading expertise.

For Creators

1. Publish Your Webhook — Set welcome message, choose public or invite-only

2. Add Strategy Details — Tagline, description, tags, performance metrics

3. List on Marketplace — Make your strategy discoverable

4. Share Access Code — Share with your community

Strategy Details

Published strategies can include detailed performance information:

Win Rate
Risk/Reward
Max Drawdown
Monthly Returns
Total Returns
Min Margin Required
Total Trades
Sharpe Ratio
Sortino Ratio
Max Win Streak
Max Loss Streak
Performance Duration

Email Notifications

The platform sends email notifications for important events to keep you informed about your account activity.

Deployment Notifications

EventEmail Subject
Deploy
"Account Deployed — {Account} on {Webhook}"
Undeploy
"Account Removed — {Account} from {Webhook}"
Activate
"Deployment Activated — {Account} on {Webhook}"
Deactivate
"Deployment Deactivated — {Account} on {Webhook}"
Multiplier Change
"Multiplier Updated — {Account} on {Webhook}"

Each email includes: webhook name, exchange, account name, client ID, multiplier value, status, access type, who performed the action, and timestamp.

Trading Time Windows

Set specific hours during which your account should execute trades. Orders received outside the window are automatically skipped.

Configuration

• Set start_time and end_time in 24-hour format (HH:MM)

• Trades outside this window are SKIPPED with reason "Outside trading hours"

• Set both to null for 24/7 trading (default)

• Configured per-account from the Manage API page

Time Zone

Trading time windows are evaluated in the server's timezone (UTC). Make sure to convert your local time to UTC when configuring.

Algo Lab

Write Python strategies, backtest on real WazirX Futures data, and run them live — all from your browser. Full API reference, indicator library, and examples.

View docs

Relay by Trado — Built by Windigotrade Pvt Ltd