---
title: "TradeBridge Guide: TradingView & Chartink Webhooks · MyAlgoMate"
source: https://myalgomate.com/guide/tradebridge
retrieved: 2026-11-15
publisher: MyAlgoMate (Myalgomate Technologies LLP, Rajkot, India)
---

# TradeBridge — User Guide

Last updated: 11 November 2026

New to TradeBridge? [See the product page](https://myalgomate.com/products/tradebridge)

Setup

## Set up TradeBridge, from nothing to your first order

Copy link

(Image: The workspace)

TradeBridge takes a signal from your scanner or your own code and places the order with your broker. It can run many strategies across many accounts at the same time. You decide what to trade, and TradeBridge does the placing.

This chapter takes you from nothing to a setup you have tested. Each step below is a page of its own, so you can send somebody a link to the exact step they are stuck on.

**Four things to sort out before you install anything**

Three of them cost money and none of them is part of the software.

**1. A Windows machine that stays on, and it should be a cloud server.**

TradeBridge listens for your signal inside the application. So the machine has to be on, awake and reachable for the whole trading day. A home PC that sleeps, restarts itself for an update, or sits behind a broadband address that keeps changing will drop signals.

Use [Cloud Server for Algo Trading](https://myalgomate.com/products/cloud-server-for-algo-trading). It stays on, and it comes with its own dedicated [static IP](https://myalgomate.com/glossary#static-ip). The minimum specification is **1 vCPU, 4 GB RAM and 50 GB HA NVMe**.

You can run it on your own PC. If you do, the power, the internet and the address all become your problem. A strategy left half in the market when the machine dies is the worst case, so be honest about whether you can cover all three.

**2. A static IP.**

Your broker only accepts [API](https://myalgomate.com/glossary#api) orders from an address you have registered with them. Orders from any other address are refused.

> **Read this before you buy more than one.** TradeBridge sends **every account through one address**. The proxy details are shared by all your accounts and are not set per account. If you run several accounts and each broker insists on its own registered address, please talk to our team before buying. One copy of TradeBridge on one machine can only present one address.

Get one from [Virtual Trading Environment](https://myalgomate.com/products/virtual-trading-environment). A cloud server's own IP already counts as one address, so you do not need a second one for that machine.

**Where to find the details.** Sign in to [myaccount.myalgomate.com](https://myaccount.myalgomate.com/) and open the **VTE Subscriptions** menu. Each subscription shows the host, port, username and password. You need all four when you set up the proxy, and you register the address with your broker.

Your broker has to accept the kind of address you buy. Check with your broker, or ask our team, before you pay. If you are not sure you need one at all, use the [static IP checker](https://myalgomate.com/tools/static-ip-checker).

**3. A paid plan on your signal source.**

TradeBridge does not decide what to trade. Something has to tell it. That is [Chartink](https://myalgomate.com/glossary#chartink), [TradingView](https://myalgomate.com/glossary#tradingview), or code you write yourself. Chartink and TradingView both need a paid plan to send alerts to a web address. Check your plan before you start, because this catches people out on day one. See *Before you start — what you need*.

**4. A way for the signal to reach your machine.**

Your signal arrives from the internet, so your machine has to be reachable. You need either a public address with a port forwarded to this machine, or an **ngrok** account. ngrok gives this machine a fixed web address and needs no router setup. See Public IP or ngrok.

**A free trial needs every one of these.** The trial is the full software. It places real orders in your real broker account, so it needs the same machine, the same static IP and the same signal source. Nothing is relaxed for a trial.

**The rest of the setup, in order**

Work through these in turn. Each is a short page on its own.

1. Collect your broker's API details
2. Install TradeBridge and sign in
3. Add your broker accounts
4. Enter the static IP details
5. Log your accounts in
6. Check the settings that change how orders go out
7. Set up your signal source and copy your URLs
8. Build your first strategy
9. Press START
10. Place one order and check it worked

## Step 1 — Collect your broker's API details

Copy link

(Image: Adding a Zerodha account)

Every broker gives you a set of [API keys](https://myalgomate.com/glossary#api-key-and-secret). Collect them before you open TradeBridge, because hunting for them halfway through is where most first days are lost.

Find your own broker on [myalgomate.com/brokers](https://myalgomate.com/brokers). Each broker has its own page showing where the keys live in that broker's portal.

**TradeBridge links there for you.** In the Add Account window, under the broker dropdown, there is a **How to get <broker> credentials** link. It opens the page for the broker you have selected. If you have not picked one yet, the same button reads **Broker setup guides**.

What you are collecting depends on the broker. Most ask for an [API](https://myalgomate.com/glossary#api) key, a secret, your client ID and your password. Brokers on the [XTS](https://myalgomate.com/glossary#symphony-xts-api) platform ask for more, including separate market and interactive keys. The full list for each broker is in *What each broker asks for*.

> **The [TOTP](https://myalgomate.com/glossary#totp-2fa) secret is not the six-digit code.** This is the single most common mistake. The six-digit number changes every thirty seconds. The TOTP secret is the long fixed string your broker shows you once, when you first switch on two-factor login. TradeBridge needs the long fixed string, so that it can work out the six-digit code itself. If you only saved the six-digit code, go back to your broker and set up two-factor login again.

Keep these details somewhere safe. They let anyone place orders in your account.

## Step 2 — Install TradeBridge and sign in

Copy link

(Image: The sign-in screen)

Download the installer from your MyAlgoMate account and run it.

**Windows will ask for permission every time you open TradeBridge.** The software needs administrator rights to run, so you get the Windows permission box on each launch. Say yes. This is normal and not a sign that anything is wrong.

Sign in with your **MyAlgoMate** account. That is the email and password you registered when you bought TradeBridge or started the trial. It is **not** your broker login. Your broker details come later, in step 3. People mix these two up on the first day.

**Choose [Paper Trade](https://myalgomate.com/glossary#paper-trading) or live before you go further.** Paper Trade simulates every order inside TradeBridge and sends nothing to your broker. Use it while you learn. See *Paper Trade or live* for how to tell which mode you are in at a glance.

Full detail is in *Install and first run*.

## Step 3 — Add your broker accounts

Copy link

(Image: The A/C Management tab)

Open the **A/C Management** tab. This is where your broker accounts live.

Press **Add** and fill in the form using the details you collected in step 1. Pick your broker from the dropdown first, because the fields change to match it.

Three fields matter more than they look:

| Field | Why it matters |
| --- | --- |
| A/C Name | Your own label for the account. It appears in every grid and every log line, so make it something you will recognise at speed. |
| Client ID | Must match your broker exactly. A wrong client ID fails at login, not at save. |
| Multiplier | Scales every order for this account. Leave it at 1 until you have traded a while. |

Add every account you plan to trade. If you want to trade several accounts together, you can put them into a group afterwards. See *Groups and [multipliers](https://myalgomate.com/glossary#multiplier)*.

The full field list for each broker is in *What each broker asks for*.

## Step 4 — Enter the static IP details

Copy link

(Image: An XTS-platform broker)

Skip this step if your broker does not check where your orders come from. Many do check, so if you are unsure, ask them.

The proxy settings sit near the bottom of the Add Account window, under the heading **Shared for all accounts**. That heading is the important part. **You set this once and every account uses it.**

Tick **Enable Proxy**, then fill in the five fields from your VTE subscription.

| Field | Where it comes from |
| --- | --- |
| Host | The host name from your VTE subscription |
| IP | The address, if you were given one instead of a host name |
| Port | The port from your VTE subscription |
| Username | The proxy username, not your broker username |
| Password | The proxy password, not your broker password |

Then press the test button beside them. It does two things. It checks the proxy really connects, and it copies **the address your broker will see**. That copied address is the one to register with your broker. Do not guess it from anywhere else.

Your orders stay refused until your broker has that address on their list.

## Step 5 — Log your accounts in

Copy link

(Image: The Accounts menu)

Adding an account saves it. It does not log it in. Logging in is a separate step, and it has to happen **before** your trading session starts.

Open the **Accounts** menu and log in. You can log accounts in one at a time, or all together.

Watch for a failure here rather than discovering it later. A login that fails usually means one of four things. The client ID is wrong, the [API key](https://myalgomate.com/glossary#api-key-and-secret) has expired, the [TOTP](https://myalgomate.com/glossary#totp-2fa) secret was saved as the six-digit code, or your broker has not registered your address yet.

**Save yourself the typing tomorrow.** Once your accounts are in and working, save them as a template so the next session starts faster. See *Logging in and account templates*.

## Step 6 — Check the settings that change how orders go out

Copy link

(Image: General settings)

A few settings change what happens to every order without ever announcing themselves. Look at these once now, so nothing surprises you later.

| Look at | Why now |
| --- | --- |
| Index and commodity settings | Sets the strike gap and lot size per underlying. Wrong here means wrong strikes everywhere. See Index and commodity settings. |
| Order Setting | Decides whether orders go out at market or at a limit, and how a limit is revised. See How orders are placed. |
| Risk limits | Caps your loss per strategy, per account and across everything. See Limits on a strategy, Limits on an account and Limits across all accounts. |
| Telegram alerts | Sends you a message when something happens. Worth having on from day one. See Telegram alerts. |

You do not have to change any of them today. You do have to know they exist.

## Step 7 — Set up your signal source and copy your URLs

Copy link

(Image: The Webhook band)

TradeBridge waits for a signal. This step is where you arrange for one to arrive.

First decide how your machine will be reached from the internet. Pick **Public IP** or **Ngrok** on the strategy. ngrok is the easier of the two, because it needs no router setup. See Public IP or ngrok.

Then generate your URLs. Each strategy gets its own, and each one ends in a token unique to it.

> **The token is the only thing protecting the URL.** Anyone holding it can place orders in your account. Never post one in a screenshot, a forum or a shared document.

Now set up the source itself. Read only the chapter for the source you use. The three do not overlap.

| Your source | Read |
| --- | --- |
| Chartink | Chartink — many stocks from one scanner |
| TradingView | TradingView — creating the entry alert |
| Your own code | Sending signals from your own code |
| A Google Sheet | Sending signals from a Google Sheet |

Paste each URL into your source carefully, one at a time, checking the label as you go. See *Get your entry and exit URLs*.

## Step 8 — Build your first strategy

Copy link

(Image: The strategy header)

A strategy says what to trade when a signal arrives. Build one small one now, so you have something to test with.

Create a portfolio first. A portfolio holds your strategies and is how you start and stop a group of them together. See *Portfolios*.

Then create a strategy. Keep the first one simple. One leg, one lot, a [stop loss](https://myalgomate.com/glossary#stop-loss) switched on.

| Set | Where to read more |
| --- | --- |
| Segment, index and timings | The basics |
| The legs, strikes and sizing | The legs |
| What happens on exit | Other Setting |

Before you save, TradeBridge checks the strategy for you and refuses anything that cannot trade. See *Before you save*.

## Step 9 — Press START

Copy link

(Image: After START)

Nothing listens for a signal until you press **START**. This is the step people forget.

START is on the command bar at the top right.

TradeBridge checks a few things first and refuses to start if any are missing. The usual reasons are an account that is not logged in, a strategy that failed its checks, or a portfolio with nothing active in it.

The Setup Guide panel lists anything still outstanding. Work down it until nothing is pending, then press START again.

You will see **Your trading strategies are now active** at the bottom of the window when it has worked. Your portfolios move to **RUNNING**. From this moment your [webhook URLs](https://myalgomate.com/glossary#webhook) are live and a signal will be acted on.

See *Pressing START*.

## Step 10 — Place one order and check it worked

Copy link

(Image: The Order Book tab)

Do not skip this. This step is the difference between following a guide and having something that works.

Send one signal from your source. Use one lot, in a liquid contract, in the smallest size you are willing to trade.

Then check all four of these, in order:

1. **Execution Logs** — the signal arrived, and the line names the URL it came in on.
2. **Legs Detail** — a leg was created, with the strike you expected.
3. [**Order Book**](https://myalgomate.com/glossary#order-book) — an order was sent to your broker and was accepted.
4. **Position** — you are holding what you meant to hold.

If the chain stops partway, you have learned exactly where the problem is. Nothing in the Execution Logs means the signal never reached this machine, so check your signal source and ngrok. A leg but no order usually means a login or a margin problem.

Now exit the position and check that works too. See *Exiting positions*.

**If you get stuck**

| Problem | Read |
| --- | --- |
| The signal never arrived | When a signal does not arrive |
| The order went in late | When your signal actually arrives |
| Something else | Logs |

Getting started

## Install and first run

Copy link

(Image: The sign-in screen)

TradeBridge is a Windows application, and it runs on a **Windows [cloud machine](https://myalgomate.com/glossary#vps-cloud-server)** — see *Before you start* for why that is required rather than optional. Minimum specification: **1 vCPU · 4 GB RAM · 50 GB HA NVMe**. You can bring your own or use [MyAlgoMate's cloud server](https://myalgomate.com/products/cloud-server-for-algo-trading).

**Getting the installer.** After your purchase, sign in to your MyAlgoMate account and open [your subscriptions](https://myaccount.myalgomate.com/user/account/subscription). Your TradeBridge subscription is listed there with a **Download** button.

1. Download the installer from that page.
2. Connect to your cloud machine (Remote Desktop).
3. Copy the installer across, run it, and start TradeBridge.

Sign in with your **MyAlgoMate account**. That is the email and password you registered with. These are not your broker credentials. You add brokers later, one account at a time.

**Remember me** is ticked to begin with. Leave it on and your email and password are saved on this machine, so the next start goes straight in. Untick it and nothing is saved. That choice sticks, so the box stays unticked next time too.

On first start the application downloads the day's instrument list. Until that finishes **START** stays unavailable and the footer reads *Downloading instruments…*. It happens once per day.

**Updates come to you.** When a new version is released TradeBridge tells you, with a **Software Update Available** box showing the version you are on and the one waiting. Choose to update and it downloads, installs and reopens on its own. You do not fetch the installer again.

Some releases are marked **Update Required**. Those cannot be postponed, and the box has no close button.

**Think about when you press it.** An update closes the application while it installs. Your strategies are not being managed during that time, and open positions stay open at your broker. Outside market hours is the comfortable moment.

> Figures shown in screenshots throughout this guide are sample data for illustration, not results.

## The workspace

Copy link

(Image: The workspace)

Everything happens in one window.

- **The menu bar** — Session, Accounts, Portfolios, Strategies, View, Settings, Help. Everything you can do is in one of those.
- **Seven tabs** — Portfolio, Strategies, Legs Detail, [Order Book](https://myalgomate.com/glossary#order-book), Position, A/C Management and Index Summary. Each answers a different question about what is happening.
- **The log panel** at the bottom, with **Application Logs** and **Execution Logs**.
- **The footer** shows internet and feed status, and the date and time.

## Paper Trade or live

Copy link

(Image: The command bar)

The command bar carries the controls you will use most, and the badge that matters most.

In Paper mode the whole system runs. Signals arrive, contracts resolve and positions appear. No order reaches your broker.

Run a new setup in **Paper** first. It is the only way to watch a strategy behave end to end without money involved.

Connect your accounts

## Add a broker account

Copy link

(Image: The A/C Management tab)

**A/C Management** lists every broker account you have added.

Each row carries its own controls: **Login** / **Logout**, [**Exit All**](https://myalgomate.com/glossary#kill-switch) for that account, [**RMS**](https://myalgomate.com/glossary#rms) for its risk limits, and a **…** menu for the rest. They sit alongside its login status, P&L, funds, margin, risk caps and [multiplier](https://myalgomate.com/glossary#multiplier).

To add one, open **Accounts ▸ Add Account…** and pick your broker.

(Image: The Accounts menu)

The Accounts menu

The same menu holds **Login All Accounts**, **Login Selected**, **Auto Login on startup**, and **Save / Load Account Template…** for moving a set-up between machines.

## What each broker asks for

Copy link

(Image: Adding a Zerodha account)

Every broker asks for something slightly different. Where you find those values is a question about **your broker**, not about TradeBridge.

So the dialog links straight out to the answer. Pick your broker and a **How to get [broker] credentials** link appears under the dropdown. It opens that broker's page on myalgomate.com, which lists the exact steps for that broker. If your broker has no page yet, the link reads **Broker setup guides** and takes you to the index.

The page opens **in a TradeBridge window**, not in your browser, so the steps sit beside the form you are filling in. Leave it open while you copy the keys across, and close it when you are done.

Every account starts with the same three fields: **A/C Name** (your own label), **Client ID** and [**Multiplier**](https://myalgomate.com/glossary#multiplier). The rest of the form then changes to match the broker you picked.

Most brokers ask for some combination of a **password** or **MPIN**, a **[TOTP](https://myalgomate.com/glossary#totp-2fa) secret**, and an [**API key**](https://myalgomate.com/glossary#api-key-and-secret) and **secret** that you generate in your broker's own developer portal. A few also want a vendor or dealer code, a base URL, or your date of birth.

**The exact fields for your broker are listed on our brokers page**: [myalgomate.com/brokers](https://myalgomate.com/brokers). That page is kept up to date as brokers change their requirements.

Brokers running on the [**XTS**](https://myalgomate.com/glossary#symphony-xts-api) platform share one longer form instead:

(Image: An XTS-platform broker)

An XTS-platform broker

Market and Interactive **[API](https://myalgomate.com/glossary#api) Key** and **Secret Key** pairs, a **Base URL**, a **User Type**, and optional Hostlookup and Dealer Code.

Two sections at the foot of the form are **shared by every account**: **Telegram** alerts, and a **Proxy** if your network needs one.

> Get the API key and secret from your broker's own developer or API portal. TradeBridge cannot create them for you.

## Groups and multipliers

Copy link

(Image: The Group Account Manager)

Running several accounts does not mean running the same size on all of them, or assigning every account by hand every time.

**[Multiplier](https://myalgomate.com/glossary#multiplier) — sizing per account**

Set it per account in the Add Account form; it is also a column in the A/C Management grid. The strategy's lot count is **multiplied** by it on that account.

> **Example.** You build a strategy with **2 lots**. On an account whose multiplier is **3**, that account trades **2 × 3 = 6 lots**. An account left at multiplier **1** trades the 2 lots as written.

That is how one strategy serves a large account and a small one at the same time — you size the strategy once and let each account scale itself.

**Groups — assigning accounts without remembering them**

A group is a named set of accounts. Open **Accounts ▸ Group Manager…**.

Type a name, press **Create Group**, tick the accounts that belong to it, and **Save Members**.

**Example.** You have **10 accounts**. Seven of them should run one set of strategies and the other three a different set. Create two groups — say `GROUP-A` with the seven and `GROUP-B` with the three. From then on you assign the **group** rather than picking accounts one by one, and you do not have to remember which account belongs where.

Add an account to a group later and it inherits everything that group already runs.

## Logging in and account templates

Copy link

(Image: The Accounts menu)

Accounts must be logged in **before** you start the trading session — logging in is not available afterwards.

| Menu item | What it does |
| --- | --- |
| Login All Accounts | Logs in every account you have added |
| Login Selected / Logout Selected | Acts only on the rows you have ticked |
| Auto Login on startup | A checkbox — logs your accounts in automatically each time the application starts |
| Delete Selected | Removes the ticked accounts |
| Save Account Template… | Writes your account set-up to a file |
| Load Account Template… | Restores it — use this when moving to a new cloud machine |

Each row in **A/C Management** also has its own **Login** / **Logout** button, and the **Login Status** and **Login Message** columns tell you what happened if one fails.

Build a strategy

## Portfolios

Copy link

(Image: Creating a portfolio)

**A portfolio is a group of related strategies.** You assign accounts to the portfolio once, or a group of accounts. Every strategy inside it then runs on them. You do not repeat that assignment for each strategy.

Open **Portfolios ▸ Create Portfolio…**.

1. **Portfolio Name** — must be unique. It is how executions are tracked and reported.
2. **Run Portfolio For** — choose **Account** or **Group**.
3. Tick the accounts or groups it runs on. The count of what you have selected is shown as you go.
4. Press **Create Portfolio**.

Because the accounts live on the portfolio, changing them moves every strategy inside it at once — which is the point. Build your strategies, drop them in a portfolio, and manage the account assignment in one place.

From the **Portfolio** tab and the **Portfolios** menu you can also:

- **Activate / deactivate** a portfolio with the toggle on its row.
- **Exit Selected** or **Reset Selected** for the whole portfolio at once.
- Fire a pending portfolio immediately by hand rather than waiting for a signal.
- **Import Portfolios…** and **Export All Portfolios…** — a backup, and the way to move a configuration to another machine.

## The basics

Copy link

(Image: The strategy header)

Open **Strategies ▸ Create Strategy…**. The top band is the whole identity of the strategy.

| Field | What it does |
| --- | --- |
| Name | Yours. It also becomes part of the webhook URL. |
| Portfolio | Which portfolio — and therefore which accounts — this runs on. |
| Segment | Indices, Equity or MCX. |
| Index | The underlying, for Indices and MCX. Equity leaves it blank; the symbol arrives with the signal. |
| Underlying | Price the strikes off Spot, Future, or a synthetic future. On MCX only Future and Sy. Fut. appear: a commodity option is written on the future, so there is no spot series to strike against. |
| Product | MIS for intraday, NRML to carry forward. |
| Trade Type | Intraday, Positional or STBT. |

**The same form, three segments**

The dialog changes with the segment. Three complete strategies, so you can see what yours should look like before you build it.

**Equity** — no **Index**: the symbols arrive from the scan. [Chartink](https://myalgomate.com/glossary#chartink) is the integration, the leg is an **EQ** buy, and the Trade limits box carries both equity caps.

(Image: An Equity strategy, end to end)

An Equity strategy, end to end

**Indices** — **Index: NIFTY** is fixed for the life of the strategy, the leg is a **CE** buy with its strike chosen live, and there is one **Max No of Trade**.

(Image: An index strategy, end to end)

An index strategy, end to end

**MCX** — the same shape as an index strategy, with **Index: CRUDEOIL** and the commodity's own expiry.

(Image: An MCX strategy, end to end)

An MCX strategy, end to end

| Start Time · Stop Entry · Exit Time | The window a signal may act in. See Send your signals. |
| --- | --- |
| Entry sides | On the legs toolbar below: whether this strategy takes long entries, short entries, or both. A new strategy starts on Long and short — see One strategy, both directions. |

**The times start out matched to the segment.** A new Equity or Indices strategy opens with **Stop Entry 15:00** and **Exit 15:15**, against the 15:30 close. A new **MCX** strategy opens with **Stop Entry 23:00** and **Exit 23:15**, because commodities trade until 23:30. Switch the segment and the times move with it, unless you have typed your own. Your own times are never overwritten.

## The legs

Copy link

(Image: The legs grid)

A leg is one instrument you trade. A short [straddle](https://myalgomate.com/glossary#straddle) is two legs; an [iron condor](https://myalgomate.com/glossary#iron-condor) is four.

Each row sets instrument type (CE / PE / FUT / EQ), buy or sell, size, how the strike is chosen, and its own **Target**, **SL**, **Trail** and **Expiry**. Copy a leg, delete it, or **ADD LEG** up to eight **per side**.

**Only option legs are asked for a strike.** Set a leg to **CE** or **PE** and you choose how its strike is picked. Set it to **FUT** or **EQ** and the strike box is switched off and shows a dash, because a future or a share has no strike. One strategy can hold a FUT leg next to a CE leg, and only the CE leg is asked. Switch a leg back to CE or PE and your earlier strike choice comes back.

**Entry sides** sits above the table: *Long only*, *Short only*, or *Long and short*. A new strategy starts on **Long and short**, so you see two tabs from the outset: **Long legs** and **Short legs**. Each has its own eight legs and its own counter. Fill in both, or switch Entry sides to *Long only* or *Short only* if you trade one way.

**New legs already point the right way.** A fresh leg is built from the segment and the side you are on. An untouched default is never the opposite of your signal:

| Segment | Long side | Short side |
| --- | --- | --- |
| Indices | BUY CE | BUY PE |
| MCX | BUY FUT | SELL FUT |
| Equity | BUY EQ | SELL EQ |

Options express direction through *the option being bought* — a bought Call is a long view, a bought Put a short one, and both are BUYs. Futures and cash equity have no Put, so there the direction is the buy/sell itself. **MCX starts on the future** because commodities are traded that way far more often than through their options; the options are still there in the C/P column. These are starting points, not recommendations; change any of it.

**Changing the Segment rewrites the legs you already have.** It keeps their direction. A bearish leg stays bearish. SELL EQ becomes BUY PE when you move to Indices, and BUY PE becomes SELL EQ on the way back. It is the *view* that is carried across, not the buy/sell — so do not read a flipped B/S as a mistake.

**Choosing the strike** — evaluated live when the signal fires, never fixed in advance:

| Mode | In short |
| --- | --- |
| ATM Points | N strikes either side of at-the-money |
| ATM % | A percentage away from spot |
| Direct Strike | A strike you name |
| Closest Premium | The strike trading nearest a premium |
| Closest Delta | The strike nearest a delta |
| CP Strikes based on SP | Call and put derived from a chosen sell strike |
| Straddle Width | Derived from the ATM straddle price |

Tick [**Hedge**](https://myalgomate.com/glossary#hedge) and every leg gains a hedge configuration, pairing a short option with a long one for the margin benefit.

**Sizing** has three modes.

| Mode | What you give it |
| --- | --- |
| Fixed Lots | The number of lots. Nothing is worked out for you. |
| Capital | The capital to deploy, plus a minimum and maximum lot count. The leg is sized to fit. |
| Risk Per Trade | The rupee amount you are willing to lose on this leg. |

**Risk Per Trade sizes the leg from its [stop-loss](https://myalgomate.com/glossary#stop-loss).** TradeBridge works out what one lot would lose if the stop were hit, then takes as many lots as fit inside your figure. Say you are willing to risk ₹5,000, and one lot would lose ₹1,800 at its stop. You get 2 lots.

**It needs the leg's SL switched on.** Without a stop there is nothing to measure, so the leg does not trade. The log reads *"Risk Per Trade requires Option SL to be enabled with a value > 0"*. Set **SL** on the leg before you choose this mode.

Two more things. **Minimum Lots and Maximum Lots are ignored** here, because your risk figure is the limit. And if one lot already risks more than your figure, nothing is placed at all.

## One strategy, both directions

Copy link

(Image: A strategy with both sides configured)

A strategy accepts long entries, short entries, or both — set by **Entry sides**, above the legs table. Choose *Long and short* and one strategy carries two leg sets, with **one [Max Profit](https://myalgomate.com/glossary#max-profit) and one [Max Loss](https://myalgomate.com/glossary#max-loss) covering both directions**. A new strategy starts here.

**The two leg sets are independent.** Each has its own eight legs, its own strikes and its own per-leg Target, SL and Trail. They share the name, the index, the schedule, the order settings — and, the point of the whole thing, **one Max Loss and one Max Profit across both**.

**"Long legs" means the legs that fire on the long signal.** It does not mean legs that are Buys. A bullish position is often a sold Put or a bought Call; a bearish one a bought Put. Read the tab as *which signal starts this*, and use the B/S column inside the table for the order side.

**A worked example — NIFTY, both ways**

|  | Long legs | Short legs |
| --- | --- | --- |
| What you build | BUY CE, ATM, 1 lot | BUY PE, ATM, 1 lot |
| What fires it | your long signal, sent to the LONG ENTRY URL | your short signal, sent to the SHORT ENTRY URL |
| What closes it | the LONG EXIT URL | the SHORT EXIT URL |

Both legs are BUYs, and that is correct. On the long side you buy a Call, because you expect the index to go up. On the short side you buy a Put, because you expect it to go down. Nothing here is a recommendation — it is the simplest shape that shows how the two sides sit together.

**One pair of URLs per side.** With both sides on, the [Webhook](https://myalgomate.com/glossary#webhook) panel shows four URLs: **LONG ENTRY**, **LONG EXIT**, **SHORT ENTRY** and **SHORT EXIT**. Each is colour-coded, and the direction is written into the address itself, so a URL pasted into the wrong alert is easy to spot.

**If you only trade one way**, switch Entry sides to *Long only* or *Short only*. You get one leg table and one pair of URLs, exactly as before.

## Stop and reverse

Copy link

(Image: Stop and reverse leaves two entry URLs)

Many systems are always in the market. A buy closes the short and opens a long. A sell does the reverse.

Tick **Stop and reverse** and TradeBridge does exactly that. The option appears once Entry sides is set to *Long and short*. **The opposite entry closes whatever side is open before it opens the new one, so you need no exit URLs at all.**

The [Webhook](https://myalgomate.com/glossary#webhook) panel drops to two rows: **LONG ENTRY** and **SHORT ENTRY**. Two URLs, two alerts, for a system that is always in the market.

**A worked example — always in NIFTY**

1. Entry sides: *Long and short*. Tick **Stop and reverse**.
2. Long legs: **BUY CE**, [ATM](https://myalgomate.com/glossary#at-the-money), 1 lot. Short legs: **BUY PE**, ATM, 1 lot.
3. Generate the two URLs. Put **LONG ENTRY** in your buy alert and **SHORT ENTRY** in your sell alert.

Now: your buy alert arrives, nothing is open, the long side opens. Your sell alert arrives — the long side is closed **and** the short side opens, from that one call. The next buy alert closes the short and opens the long again.

Three things to know before you rely on it:

- **"No exit URL" is not "no exit".** Exit Time, [Max Loss](https://myalgomate.com/glossary#max-loss), [Max Profit](https://myalgomate.com/glossary#max-profit) and every per-leg SL still apply exactly as they do on any other strategy. The reversal is an *additional* way out, not the only one.
- **The close is placed before the open. TradeBridge does not wait for it to fill.** If the account is tight on margin, the new side can be rejected while the old one is still closing. Keep headroom, or use two separate strategies where you control the timing yourself.
- **Turning it off gives your exit URLs back unchanged.** They are hidden, not discarded — the same addresses reappear, so anything you had already pasted into an alert keeps working.

If you had generated exit URLs before ticking the box, TradeBridge says so and keeps them.

## How orders are placed

Copy link

(Image: Order Setting)

The **ORDER SETTING** tab controls how an order reaches the broker — separately for **entry**, **exit** and [**stop-loss**](https://myalgomate.com/glossary#stop-loss) orders, because they do not want the same treatment.

- **Limit Price Ref** — price the order off [LTP](https://myalgomate.com/glossary#last-traded-price), best bid/ask, immediate-fill or average bid/ask.
- **Limit Buffer** — how far through that price to sit, in percent or points.
- **If Not Filled** — revise the limit price or wait; set the interval and how many revisions before giving up.
- **Order Rejection Retry** — retry a rejected order N times at an interval you set.
- **Place SL in Broker** / **Trail SL in Broker** — push the stop-loss to the broker as a real resting order rather than holding it in the software.

## Other settings

Copy link

(Image: Other settings)

The **OTHER SETTING** tab holds the finer execution rules — when exits are evaluated, how prices are rounded, and how strikes are selected.

**Target and SL check frequency**

How often the software evaluates whether a target or [stop-loss](https://myalgomate.com/glossary#stop-loss) has been reached.

| Setting | When it checks |
| --- | --- |
| Live | Every second |
| 1 min · 3 min · 5 min | At the close of each candle on that timeframe |

Choose **Live** for tight intraday exits. Choose a timeframe when you want a candle to complete before acting, so an intra-candle spike does not take you out.

**SL and Target reference price**

Whether the level is calculated from the leg's **real entry price**, meaning the price actually filled, or from the **[LTP](https://myalgomate.com/glossary#last-traded-price) at the moment entry was triggered**. They differ when there is [slippage](https://myalgomate.com/glossary#slippage) between the signal and the fill.

**Wait for [hedge](https://myalgomate.com/glossary#hedge) to execute**

When hedging is enabled, this makes the software **place the hedge first and wait for it to execute** before firing the main leg. Doing it in that order means the protective long is in place before the short goes on, which is what keeps the margin benefit. Without it the main leg can go first and the account is briefly exposed to full margin.

**Ceiling for SL and Target**

Rounds the calculated stop-loss or target price **up to the next whole number**.

**Example.** A calculated stop-loss of `246.30` becomes `247`. A target of `81.10` becomes `82`.

**Strike rounding**

Rounds the selected strike to a multiple you set, separately for **main** and **hedge** legs — so the software only ever picks strikes that actually exist for that underlying.

**Example.** For **SILVER**, set the rounding to `10000` and the strike will be `220000`, `230000` and so on — never `224500`. For **NIFTY**, set `100` and strikes land on `24800`, `24900`, `25000`.

Direction is configurable too: round **Towards [OTM](https://myalgomate.com/glossary#out-of-the-money)**, **Towards [ITM](https://myalgomate.com/glossary#in-the-money)**, or to the **Closest** strike.

**Premium and delta match tolerance**

When a strike is chosen by **Closest Premium** or **Closest Delta**, the nearest contract may not be an exact match. Set how close it must be, and what happens when nothing falls inside that tolerance: **Avoid Entry**, **Keep waiting**, or **Wait for X seconds** and then take the closest available.

## Before you save

Copy link

(Image: The strategy summary strip)

The foot of the dialog counts your legs as you build. On a *Long and short* strategy it reads **LONG LEGS: n | SHORT LEGS: n**, with the buy/sell breakdown following for whichever side you are looking at. If a leg on the **other** side has a problem, its tab shows a red count. An error on a table you are not looking at cannot hide from you.

It also warns about things that are valid but rarely intended — a strategy with neither a [max loss](https://myalgomate.com/glossary#max-loss) nor a [max profit](https://myalgomate.com/glossary#max-profit), for example, which will run uncapped. Fix what it flags, then **ADD STRATEGY**.

Risk management

## Limits on a strategy

Copy link

(Image: Risk Management on a strategy)

Your signal decides when to enter. The risk manager decides when to get out regardless.

**On a *Long and short* strategy these limits cover both sides together, not one each.** That is the reason to keep both directions in one strategy. You get a single [Max Loss](https://myalgomate.com/glossary#max-loss) for the position as a whole.

| Control | What it does |
| --- | --- |
| Max Loss · Max Profit | Exit when the loss or profit reaches this figure |
| Frequency | How often the limit is checked |
| Exit Mode | Immediately, after a delay, or after a number of ticks — so one spike does not trigger an exit |
| Trail Max Loss (X / Y) | Tighten the loss limit as profit builds: for every X gained, the limit moves by Y |
| Protect Profit | Ignore, Lock Min Profits, Trail Profits, or Lock & Trail Profits |
| If Profit Reaches · Lock Min Profit At | The profit that starts locking, and the minimum then held |
| Increase In Profit · Trail Min Profit By | How far profit must rise to move the lock, and by how much |

Set here, these limits travel with the strategy — every account running it inherits them.

**Trade limits, and why Equity has two of them**

The **Trade limits** box changes with the segment, because an equity strategy and an index strategy are not counting the same thing.

An **Indices** or **MCX** strategy trades the one underlying you chose in the header. NIFTY is NIFTY all day. So there is a single control:

- **Max No of Trade** — stop taking new entries on this strategy after this many trades.

An **Equity** strategy has no underlying of its own. The symbols arrive in the alert, and one [Chartink](https://myalgomate.com/glossary#chartink) scan can return thirty stocks. Two different questions follow, so there are two controls:

- **Max Trades per Stock** — how many times this strategy will trade **each individual stock**. Set it to 1 and RELIANCE is entered once today no matter how many times the scan returns it; TCS still gets its own single entry.
- **Max No of Stocks** — how many **different stocks** the strategy will open in a day. Set it to 5 and the first five distinct symbols are traded; the sixth and everything after it is skipped, even though the alert arrived and was accepted.

(Image: Trade limits on an Equity strategy — one trade per stock, five stocks)

Trade limits on an Equity strategy — one trade per stock, five stocks

> **A worked example.** Your scan fires all day and returns 40 stocks between them. With **Max Trades per Stock = 1** and **Max No of Stocks = 5** you get five positions. They are the first five distinct symbols, with one entry in each. That is the configuration shown above.

Both are off until you tick them. Left unticked, an equity strategy keeps taking every stock the scan returns. That is right for a basket strategy and wrong for a small account.

## Limits on an account

Copy link

(Image: Per-account risk settings)

A broker account usually carries several strategies at once. Account-level risk watches the account as a whole, whatever any individual strategy is doing.

Press [**RMS**](https://myalgomate.com/glossary#rms) on any row of **A/C Management**.

| Control | What it does |
| --- | --- |
| Max Loss | Exit everything on this account when the loss reaches this figure |
| Max Profit | Exit everything on this account when the profit reaches this figure |
| Frequency | How often the limit is checked |
| Exit Mode | Immediately, after a delay in seconds, or after a number of ticks — so one spike does not trigger an exit |
| Trail Max Loss (X / Y) | Tighten the loss limit as the account gains: for every X gained, the limit moves by Y |
| Protect Profit | Ignore, Lock Min Profits, Trail Profits, or Lock & Trail Profits |
| If Profit Reaches · Lock Min Profit At | The profit that starts locking, and the minimum then held |
| Increase In Profit · Trail Min Profit By | How far profit must rise to move the lock, and by how much |
| Exit Time | Square this account off at a time you choose |

Once set, the A/C Management grid shows the live state next to the settings: the account's running P&L, whether trading has been stopped, and the profit locked in. You can see a limit working, not just set.

**Account limits and strategy limits are separate, and both apply.** A strategy can be stopped by its own rule while the account keeps trading. An account limit can close everything on that account, whatever each strategy is doing.

Risk settings stay editable while trading is live, so you can always tighten one mid-session. Anything switched off reads **Disabled** rather than showing a stale number.

## Limits across all accounts

Copy link

(Image: Global RMS settings)

The widest of the three scopes. Global limits watch the **combined** position of every account together. A day that goes wrong across several accounts at once is still capped, even when no single account or strategy breached its own rule.

Open **Settings ▸ [RMS](https://myalgomate.com/glossary#rms) Settings**.

| Control | What it does |
| --- | --- |
| Max Loss (-) | Exit every account when the combined loss reaches this figure |
| Max Profit (+) | Exit every account when the combined profit reaches this figure |
| Frequency | How often the combined total is checked |
| Exit Mode | Immediately, after a delay in seconds, or after a number of ticks |
| Trail Max Loss X / Y | Tighten the combined loss limit as the total gains: for every X gained, the limit moves by Y |
| Intraday Time Base Exit | Square everything off, across all accounts, at the time you set |
| Protect Profit | Ignore, Lock Min Profits, Trail Profits, or Lock & Trail Profits, applied to the combined profit |
| If Profit Reaches · Lock Min Profit At | The combined profit that starts locking, and the minimum then held |
| Increase In Profit · Trail Min Profit By | How far the total must rise to move the lock, and by how much |

Press **Save RMS** after any change — the screen tells you so.

**A worked example.** Set [**Max Profit**](https://myalgomate.com/glossary#max-profit) to a figure and it is the total across all accounts that is measured. If three accounts are up and one is down, it is the net of all four that counts; when that net reaches your figure, all four are [squared off](https://myalgomate.com/glossary#square-off) together.

**All three scopes run at once.** Global, per account and per strategy limits are independent, and whichever triggers first acts. A strategy can be stopped by its own rule while everything else carries on, or the global limit can flatten the lot.

Unlike Index Settings and Telegram, **RMS settings stay editable while trading is live**, so you can tighten a limit mid-session.

Send your signals

## Before you start — what you need

Copy link

(Image: Before you start — what you need)

Connecting a signal source needs three things in place. None of them is difficult, but missing one is the usual reason a first setup does not fire.

**1 · A machine that stays on while you trade.**

The signal listener lives inside TradeBridge. If the application is closed, nothing is listening and your signals are lost. The sender gets no warning. The same happens if the machine sleeps, restarts for updates, or loses power.

A [cloud machine](https://myalgomate.com/glossary#vps-cloud-server) solves three problems at once. It stays on around the clock. It does not sleep or restart on its own. And its public address does not change, unlike a home broadband address, which changes and breaks the URLs you have already given to [Chartink](https://myalgomate.com/glossary#chartink) or [TradingView](https://myalgomate.com/glossary#tradingview). The address matters because Chartink and TradingView call in from their own servers — TradeBridge builds their URLs on your public address automatically.

**Minimum specification:** 1 vCPU · 4 GB RAM · 50 GB HA NVMe.

Bring your own, or use [MyAlgoMate's cloud server](https://myalgomate.com/products/cloud-server-for-algo-trading), which comes ready for this.

**2 · A paid plan on your signal source.**

| Source | What you need |
| --- | --- |
| Chartink | A paid subscription. Webhook alerts and real-time scans are premium features — on a free plan the scan data is delayed, so entries arrive late even when everything else is correct. |
| TradingView | A paid plan. Webhook notifications are not available on the free tier. |
| Your own code | Nothing to buy. You send the call yourself, so there is no third-party plan involved. |

**3 · An address your signal source can reach.** Chartink and TradingView are cloud services, so they must reach your machine over the internet. On a cloud machine this is normally already the case, which is one more reason it is the supported setup.

If you have no public address, or you cannot open a port on your router, **ngrok** does the job instead. See *Public IP or ngrok*.

Everything after this assumes those three are done, plus a strategy built and the broker accounts connected.

**Then read the chapter for your source, and only that one.**

| You send signals from | Read |
| --- | --- |
| A Chartink scanner | Signals from Chartink |
| A TradingView chart or watchlist | Signals from TradingView |
| Your own program or script | Signals from your own code |

The three do not overlap. Setting up one does not require reading the other two. If a signal later arrives late, or does not arrive at all, *When a signal is late or missing* covers all three.

## Get your entry and exit URLs

Copy link

(Image: The Webhook band: integration and the direction-labelled URLs)

Your URLs live in the [**Webhook**](https://myalgomate.com/glossary#webhook) band of the Create Strategy screen, directly under the strategy details. **How many you get depends on Entry sides**, which you set above the legs table:

| Entry sides | URLs |
| --- | --- |
| Long only or Short only | ENTRY and EXIT |
| Long and short | LONG ENTRY, LONG EXIT, SHORT ENTRY, SHORT EXIT |
| Long and short with Stop and reverse | LONG ENTRY and SHORT ENTRY — the opposite entry does the closing |

A new strategy starts on *Long and short*, so the four-row version is what you see first.

1. Give the strategy a **Name** first. The **GENERATE** buttons stay disabled until you do, because the name is built into the URL.
2. Pick your **Integration** — [**Chartink**](https://myalgomate.com/glossary#chartink), **Trading View** or **Custom**. This tells TradeBridge how to read what arrives.
3. Press **GENERATE** on each row you need.
4. Press **COPY** and paste each URL into Chartink or [TradingView](https://myalgomate.com/glossary#tradingview), **one at a time**, checking the row label as you go.

> Every signal source reaches you over the internet, so the address has to be reachable from outside. You pick **Public IP** or **Ngrok** on each strategy. See *Public IP or ngrok*.

A URL looks like this:

```
http://203.0.113.10:80/CI_S1_Long_Entry/a1b2c3d4-e5f6-4a7b-8c9d-000000000001/
```

Reading it left to right: `CI_` marks it as Chartink (`TI_` is TradingView, and Custom has no prefix). `S1` is your strategy name. `Long_Entry` is the side and the signal type. The long code at the end is a token unique to that one URL. The direction is written into the address on purpose: with four URLs open in front of you, the path is the check that you are pasting the right one.

**The token can be replaced without you asking.** Pressing **GENERATE** again does it, obviously — but so does **changing the Integration**, or switching between Public IP and Ngrok. Either of those reissues **every URL on screen** with fresh tokens in one go. The old ones stop working immediately, with no warning, and signals sent to them are simply ignored. Settle your integration first, generate second, paste last.

That token is also the **only** thing protecting the URL. Treat it like a password: do not post it in a screenshot, a forum, or a shared document.

## Public IP or ngrok

Copy link

(Image: Public IP or ngrok)

Your signal has to reach this machine from the internet. There are two ways to arrange that, and you pick one on each strategy: **Public IP** or **Ngrok**.

|  | Public IP | Ngrok |
| --- | --- | --- |
| What you need | A public address, and the port forwarded to this machine | ngrok installed on this machine, and a domain from your ngrok account |
| Use it when | You are on a cloud machine with a fixed address | You have no public address, or you cannot open a port on the router |
| Does the address change? | A home broadband address usually does, and the URL stops matching | No. Your ngrok domain stays the same |
| Router setup | Yes, you forward the port yourself | None |

**[Chartink](https://myalgomate.com/glossary#chartink) and [TradingView](https://myalgomate.com/glossary#tradingview) send from their own servers**, so whichever of the two you pick, the address has to be reachable from the internet. Both of these are.

**Using ngrok**

ngrok gives this machine a fixed web address and passes anything sent to it straight through to TradeBridge. There is no router port to open and no broadband address to chase.

Set it up once:

1. Install ngrok on the machine running TradeBridge.
2. Run `ngrok config add-authtoken <your token>` once. The token is in your ngrok dashboard.
3. In the ngrok dashboard open **Domains** and copy yours. It looks like `your-name.ngrok-free.dev`.
4. In TradeBridge open **Settings ▸ Other ▸ Ngrok Settings** and paste it into **Ngrok Domain**.
5. In Create Strategy ▸ [Webhook](https://myalgomate.com/glossary#webhook), choose **Ngrok**, then press **GENERATE**. Your URLs are built on that domain and begin with `https`.

Two things to know. The tunnel starts when you press **START** and closes when TradeBridge does. And if it stops on its own, signals stop arriving until the next START — the Application Logs say so, and that is the first place to look if ngrok URLs go quiet.

Three more things worth knowing:

- TradeBridge adds the **Windows Firewall** rule for its port by itself. The **router** port-forward is the part you have to do. With ngrok there is nothing to forward.
- If your broadband address changes, the public URL you pasted stops matching and signals are dropped. A [static IP](https://myalgomate.com/glossary#static-ip), a dynamic-DNS setup, or ngrok avoids re-issuing URLs every time.
- **You can publish the URL on a different port.** TradeBridge *listens* on **port 80**. The port in the URL you hand out is yours to choose. That helps when a network blocks port 80 outbound. Forward the outside port to **80** on the TradeBridge machine. Then edit the port in the ENTRY and EXIT boxes to match what the outside world will call. For example, forward external **8080 → 80** and publish:

```
http://203.0.113.10:8080/TI_NIFTY_LONG_Entry/a1b2c3d4-e5f6-4a7b-8c9d-000000000003/
```

> The URL in the strategy **must match what the caller uses**, port included. TradeBridge matches an incoming call against the URL it has stored, so a strategy holding `:8080` will not answer a call made to `:80`, and the reverse is also true. And remember that pressing **GENERATE** writes a fresh `:80` URL — re-apply your port after any regeneration.

## How many scanners or alerts do you need?

Copy link

(Image: An index strategy: the underlying is fixed on the strategy, so each one needs its own signals)

Plan this before you start creating things, because the number grows faster than people expect.

**Neither [Chartink](https://myalgomate.com/glossary#chartink) nor [TradingView](https://myalgomate.com/glossary#tradingview) sends a direction** — their alerts say *what* and *when*, never *which way*. Direction comes from **which URL you send the alert to**.

One strategy holds both leg sets. Each set has its own **LONG ENTRY** and **SHORT ENTRY** URL, so you still send one signal per direction. See *One strategy, both directions*. The difference is that both sides now sit in one strategy, under one [Max Profit](https://myalgomate.com/glossary#max-profit) and [Max Loss](https://myalgomate.com/glossary#max-loss).

**Count signals, not strategies.** Each direction you trade needs an entry signal, and normally an exit signal too. **Stop and reverse** removes the exit signals, because the opposite entry does the closing.

> **signals = directions × 2**, per underlying — or **signals = directions** with Stop and reverse

An index or a commodity counts as one underlying. A whole basket of stocks also counts as one, because a single Equity strategy handles every symbol its scan returns.

| What you want to trade | Strategies | Signals |
| --- | --- | --- |
| A basket of stocks, long only | 1 | 2 — entry and exit, any number of stocks |
| A basket of stocks, long and short | 1 | 4 |
| NIFTY, long only | 1 | 2 |
| NIFTY, long and short | 1 | 4 |
| NIFTY, long and short, Stop and reverse | 1 | 2 |
| NIFTY and BANKNIFTY, long and short | 2 | 8 |
| GOLD and CRUDEOIL, long only | 2 | 4 |

The first two rows are the bargain: one pair of signals covers a basket of any size. The rest grow one strategy at a time. An index or commodity strategy trades only the underlying it was built with. You choose that in the **Index** dropdown, and the incoming signal cannot change it.

If your system reverses, so a buy closes the short and opens the long, you can halve these numbers. The simple way is **Stop and reverse** on a *Long and short* strategy: two entry URLs, no exits, no wiring. Sharing one URL between two separate strategies does the same thing and is still worth it when the directions need different settings, schedules or portfolios — see *Reversal systems*, next.

Name everything so the pairing is obvious. `NIFTY Long Entry`, `NIFTY Long Exit`, `NIFTY Short Entry`, `NIFTY Short Exit` takes a moment longer and saves you pasting the wrong URL later.

> If you want a single signal to decide direction for itself, that is what the **Custom** JSON integration is for — it takes an explicit order side per leg. Chartink and TradingView cannot express it.

## Reversal systems — always in the market

Copy link

(Image: Stop and reverse leaves two entry URLs)

Many systems are always in the market: a buy closes the short and opens a long, a sell does the reverse. **Two signals is all you need, and no exit signal at all.**

Set **Entry sides** to *Long and short*, tick **Stop and reverse**, and configure just the two entry URLs:

| Your signal | Paste it into | What happens |
| --- | --- | --- |
| Buy | LONG ENTRY | Closes the short side if it is open, then enters long |
| Sell | SHORT ENTRY | Closes the long side if it is open, then enters short |

That is the whole setup. No exit URLs to generate, none to paste, and nothing to keep in step — the opposite entry does the closing. If nothing is open when a signal arrives, it simply enters.

Two things to know before you rely on it:

- **"No exit signal" is not "no exit".** Exit Time, [Max Loss](https://myalgomate.com/glossary#max-loss), [Max Profit](https://myalgomate.com/glossary#max-profit) and every per-leg SL still apply. The reversal is an extra way out, not the only one.
- **The close is placed before the open. TradeBridge does not wait for it to fill.** On an account tight for margin, the new side can be rejected while the old one is still closing. Keep headroom.

---

**The older way: sharing one URL between two strategies.** You do not need this for a plain reversal any more — use Stop and reverse above. It is still the answer when the two directions need genuinely different settings, schedules or portfolios, because then they have to be separate strategies.

**A URL is not owned by one strategy.** When a call arrives, TradeBridge checks it against *every* strategy's entry URL and every strategy's exit URL. Everything that matches acts on it. So the same URL can be one strategy's exit and another's entry.

Wire it like this, with a **Long** strategy and a **Short** strategy:

| Your signal | Paste that URL into |
| --- | --- |
| Buy | Long strategy's ENTRY — and Short strategy's EXIT |
| Sell | Short strategy's ENTRY — and Long strategy's EXIT |

To do it, generate the URL on one strategy, press **COPY**, then open the other strategy and **paste it into the opposite box** instead of pressing GENERATE there. The URL boxes accept pasted text — that is what makes this possible.

Now one buy alert flattens the short and opens the long in a single call, and you maintain two alerts instead of four.

Three things to know about **this** technique:

- **The exit is triggered first, then the entry.** That ordering is on purpose, so a reversal closes before it opens. As with Stop and reverse, TradeBridge does not *wait* for the exit to fill before placing the entry.
- **The URL keeps the name of the strategy it was generated on.** A URL reading `…/CI_MULTI_STOCK_LONG_Entry/…` sitting in the Short strategy's EXIT box looks wrong and is not. Only the token identifies it.
- **Regenerating breaks both ends.** Press GENERATE on that URL and every strategy using it stops responding, not just the one you were looking at. Repaste it everywhere it appears.

Signals from Chartink

## Chartink — many stocks from one scanner

Copy link

(Image: An Equity strategy set to Chartink: no symbol is configured)

**[Chartink](https://myalgomate.com/glossary#chartink) drives Equity strategies.** The **Chartink** option is available when the segment is Equity; for indices and commodities use [TradingView](https://myalgomate.com/glossary#tradingview) or the Custom [API](https://myalgomate.com/glossary#api).

Three details worth knowing. On an Indices or MCX strategy the Chartink button is still visible but **disabled, with a tooltip saying why** — it has not gone missing. If you switch a **new** strategy to Indices or MCX while Chartink is selected, TradeBridge moves it to **Trading View** for you. And a strategy already saved on Chartink keeps working and stays editable, whatever its segment.

Build the strategy with **Segment: Equity** and leave the symbol alone — there is no symbol to set, because it arrives with the alert.

Your scan returns a list, and TradeBridge enters **every symbol in it** from that one call. You do not need a scanner per stock, and you do not need to name the stocks anywhere in TradeBridge.

(Image: A Chartink scan and its results — this list is what TradeBridge receives)

A Chartink scan and its results — this list is what TradeBridge receives

The **Symbol** column in those results is exactly what arrives, so the scan that returns twelve rows opens twelve positions.

Two consequences to plan for:

- **There is no cap.** If your scan returns forty symbols, TradeBridge attempts forty entries. Keep the scan tight, and size each leg on the assumption that several may fire together.
- **A symbol already in the position is skipped**, not doubled. If the same stock appears in a later alert while its leg is still open, TradeBridge logs that it was skipped and moves on.

Chartink does not send an exchange, so TradeBridge looks the symbol up on NSE and falls back to BSE. Symbols that are not listed on either are reported as not found.

**Direction is set on the strategy, not in the scan.** A scan names the symbols; the leg set decides the direction. One strategy can now hold both a long and a short leg set, each with its own scanner pair.

## Chartink — creating the entry and exit alerts

Copy link

(Image: A Chartink alert with the TradeBridge entry URL in its webhook field)

Each scanner needs its own alert, and each alert carries one TradeBridge URL.

1. Open your **entry** scan and press **Create Alert**.
2. Give it an **Alert Name** you will recognise later.
3. Paste the strategy's **ENTRY** URL into the [**Webhook**](https://myalgomate.com/glossary#webhook) box — the field that reads *"Enter url/link for which a POST callback will be triggered on a alert"*. It is marked **OPTIONAL**; for TradeBridge it is the only part that matters.
4. Press **Save alert**, then repeat with your **exit** scan and the strategy's **EXIT** URL.

On a *Long and short* strategy there are four URLs, so paste by label. The long entry scan gets **LONG ENTRY**, its exit scan **LONG EXIT**, and the same for the short pair. With **Stop and reverse** on there are no exit URLs: two scans, two alerts, and the opposite entry closes.

The **Schedule** settings decide how often your signal can fire:

| Setting | What to use |
| --- | --- |
| Frequency | How often the scan runs. This is the fastest your signal can arrive — a 5-minute frequency cannot produce a 1-minute entry. |
| Minimum matches | How many results are needed before the alert fires. Leave at 1 for a stock basket. |
| After trigger | Continue keeps the alert live for the rest of the day; Pause stops it after the first hit. Use Pause if the strategy should only enter once. |
| Duplicates | Unique sends each symbol once; Duplicate lets it fire again. For a stock basket either is safe — TradeBridge skips any symbol that already has an open position. The difference appears after a position closes: on Duplicate a later alert can re-enter the same stock, on Unique it cannot. |

You do not need to tick anything under **Delivery**. Email, SMS and the rest are for you; the webhook is what reaches TradeBridge.

(Image: The exit alert, with the strategy's Exit URL)

The exit alert, with the strategy's Exit URL

**Name alerts after the signal, not after the strategy.** `Multi Stock ST Buy` and `Multi Stock ST Sell` are better names than `Entry` and `Exit`. The same alert can be an entry for one strategy and an exit for another — see *Reversal systems*. If you only ever trade one direction, `… Entry` and `… Exit` are perfectly clear.

**An exit alert closes the whole strategy.** It does not close one stock out of a basket. If four stocks are open and the exit alert fires, all four are [squared off](https://myalgomate.com/glossary#square-off). There is no way to exit a single symbol from a [Chartink](https://myalgomate.com/glossary#chartink) alert.

**Leave Payload Columns alone.** TradeBridge reads the standard fields Chartink sends — the list of `stocks` and their `trigger_prices`. If you have changed them, press **View JSON** and check both are still there before you save.

**Chartink is always told the signal was received**, even when TradeBridge rejects it. A green result in Chartink means "delivered", not "traded" — the app's own messages are the place to check whether anything happened.

Which is what **Test webhook** is for. Press it and the call goes to TradeBridge exactly as a real alert would, so you can watch it land in the execution log before market hours.

**Test webhook places real orders** if the strategy is running. It is indistinguishable from a genuine signal. Test in **Paper** mode, or before you press START.

Signals from TradingView

## TradingView — creating the entry alert

Copy link

(Image: Notifications, with Webhook URL ticked and the entry URL in place)

A [TradingView](https://myalgomate.com/glossary#tradingview) alert needs three things from you: a condition, a **Message**, and a [**Webhook URL**](https://myalgomate.com/glossary#webhook).

Open the **Create alert on …** dialog and set the top half as you normally would.

(Image: The alert dialog: condition, interval, trigger and expiration)

The alert dialog: condition, interval, trigger and expiration

| Row | What to set |
| --- | --- |
| Condition | Your entry rule. TradeBridge does not care what it is. |
| Interval | The timeframe your condition is checked on. |
| Trigger | How often the alert is allowed to fire. Four choices — see below. |
| Expiration | Set Open-ended, or the alert quietly stops working on its expiry date. |

**The four Trigger options**

This one setting decides how often you trade and how quickly. Open the dropdown and you get:

(Image: The four Trigger options in TradingView's alert dialog)

The four Trigger options in TradingView's alert dialog

| Trigger | What it does |
| --- | --- |
| Once only | Fires the first time your condition is true, then the alert is finished for good. |
| Once per bar | Fires the moment your condition becomes true inside a candle, at most once per candle. |
| Once per bar close | Fires only when the candle finishes, and only if the condition is still true then. |
| Once per minute | Fires at most once a minute, for as long as your condition stays true. It reads the candle as it forms, not at its close. |

**You may not see all four.** These options appear on alerts built from an indicator or a drawing. A plain price alert such as *"NIFTY crosses 24800"* offers only **Only Once** and **Every Time**. *Every Time* is the same setting as *Once per minute*.

**Which one for which job**

**Once only — for testing, not for trading.** You have just pasted your ENTRY URL and want to check it reaches TradeBridge. Set *Once only*, let it fire, look at the Execution Logs, then delete the alert. **Do not leave it on a live strategy.** It works on the first signal of the first day and never again, and TradingView gives you no warning. This is the usual answer when someone says "my alert worked once and then stopped".

**Once per bar — when being early matters more than being sure.** Your rule is *"5-minute candle crosses above the opening range high"*. You want to be in as the break happens, not up to five minutes later. The catch: the candle is not finished. Price can cross at 09:47:10, fire your entry, and close back below at 09:50. You entered on a break that did not hold.

**Once per bar close — the default, and the right one for most rules.** Your rule is *"the 5-minute candle **closed** above yesterday's high"*. The word *closed* is doing the work: until the candle finishes, the rule has no answer. Waiting is not a delay here, it is the rule. Use it for anything built on candle closes, moving-average crossovers, or indicator values.

**Once per minute — a different signal, not an earlier one.** This is the loosest of the four. It does not wait for the candle to finish, and it can fire again and again while your condition stays true. It is tempting to reach for this when your alerts feel slow. Be careful. It does not give you your candle-close signal sooner. It gives you a **different signal**. If your rule is *"the candle **closed** above yesterday's high"*, this setting never checks that rule at a close. It checks your condition on a candle that is still forming. Three things to know before you switch:

- It **keeps firing** while your condition stays true, up to once a minute. One long move can send ten alerts, and each one is an entry.
- It reads an unfinished candle, same as *Once per bar*. Price can turn back before that candle closes.
- **It is not the fix for a slow alert on a thin contract.** See *When your signal actually arrives* for what actually causes that wait.

**If you pick *Once per minute*, check your limits first.** TradeBridge skips a stock that already has an open leg, so an Equity basket is largely protected. For an **index or commodity** strategy the guard you want is **Max No of Trade** in the strategy's risk settings — without it, repeated alerts mean repeated entries.

**Still unsure?** Use **Once per bar close**. It is the safest of the four, and the few seconds it costs on a quiet contract are explained in *When your signal actually arrives*.

The bottom two rows are the ones that matter, and both open their own panel:

1. **Message ›** — replace the text with TradeBridge's JSON. See the next section; this step is not optional and TradingView's default text will not work.
2. **Notifications ›** — tick **Webhook URL** and paste the strategy's **ENTRY** URL into the box beneath it. Its own description says it plainly: *"Sends a POST request to your specified URL when your alert triggers."*

Then press **Create**, and build a second alert the same way carrying the **EXIT** URL.

A TradingView alert carries no direction, so **each direction needs its own alert** pointed at its own URL. Running NIFTY both ways means four alerts: entry and exit for each side. All four sit on one strategy with **Entry sides** set to *Long and short*. Tick **Stop and reverse** and it drops to two, because the opposite entry does the closing.

Webhook alerts are a paid TradingView feature. If **Webhook URL** is missing from your Notifications panel, that is why.

## TradingView — the alert message

Copy link

(Image: Edit message, with the default text replaced by TradeBridge's JSON)

[TradingView](https://myalgomate.com/glossary#tradingview) pre-fills the **Message** box with a description of your condition — something like `MA Cross (50, 200) Crossing Up MA Cross (50, 200) on {{ticker}}, 1W`.

**Delete all of it.** That text means nothing to TradeBridge. Replace it with this, and nothing else:

```
{
  "symbol": "{{ticker}}",
  "exchange": "{{exchange}}",
  "time": "{{time}}",
  "timenow": "{{timenow}}"
}
```

The pieces in double braces are TradingView's own placeholders — it fills them in when the alert fires. You do not edit them, and you do not need the **Add placeholder** button; the four you need are already in the text above.

You can copy this text straight out of TradeBridge: set the integration to **Trading View** and press **SAMPLE PAYLOADS**.

(Image: The sample payload, ready to copy)

The sample payload, ready to copy

**Use `{{ticker}}` on its own.** Do not write `"symbol": "{{exchange}}:{{ticker}}"` and do not type a symbol like `NSE:RELIANCE` by hand. TradeBridge looks the contract up from the symbol alone and reads the exchange from its own field, so a combined value finds nothing and the entry is abandoned. The two fields are separate for exactly this reason.

## TradingView — one alert per index

Copy link

(Image: TradingView — one alert per index)

Alerts on an index work exactly like the one above — the dialog is the same, you just open it on the index rather than on a stock. What changes is what TradeBridge does with it.

For an **Indices** or **MCX** strategy, **the symbol in the alert is ignored**. The strategy trades the index or commodity you chose when you built it, and the alert is a pure trigger.

So each index or commodity needs its **own strategy** — the underlying is fixed when you build it and no alert can change it. Within that strategy you need **one alert per direction**, plus an exit alert for each unless you use Stop and reverse. An alert placed on a BANKNIFTY chart pointed at a NIFTY strategy will enter NIFTY, and nothing will warn you, so keep each alert on the chart it belongs to.

Set the message to the standard JSON even for index alerts. It costs nothing and keeps every alert in your account identical.

## TradingView — alerts on a watchlist

Copy link

(Image: An alert created on a watchlist rather than a single symbol)

For stocks you do not need an alert per symbol. Build a **watchlist**, then create the alert with the watchlist as its subject instead of a single chart — the dialog title reads **Create alert on <your watchlist>**.

Everything else is identical to a single-symbol alert, with one extra row: **Session**, which decides whether the condition is evaluated in regular hours only or extended hours too. **Regular** is what you want for Indian equities.

This works because of the message. `{{ticker}}` and `{{exchange}}` are filled in **per symbol**, so [TradingView](https://myalgomate.com/glossary#tradingview) sends TradeBridge one call for each stock that triggers, each naming itself. Add a stock to the watchlist and it is covered; remove it and it is not.

The strategy behind it is an ordinary **Equity** strategy with no symbol set — the same one described in the [Chartink](https://myalgomate.com/glossary#chartink) stocks section. A symbol that already has an open leg is skipped rather than entered twice.

If you trade the same watchlist both ways, use **two watchlists or two alert sets**. Point one at the strategy's **LONG ENTRY** URL and the other at its **SHORT ENTRY**. The alert itself cannot say which direction it means.

Signals from your own code

## Sending signals from your own code

Copy link

(Image: The sample payloads for the Custom integration)

Choose **Custom** as the integration when you have written your own strategy. Instead of TradeBridge inferring what to trade, you state it outright in JSON and POST it to the strategy's URL.

Press **SAMPLE PAYLOADS** in the [Webhook](https://myalgomate.com/glossary#webhook) band for a working example of every action, ready to copy.

| Action | What it does |
| --- | --- |
| STRATEGY_ENTRY | Enter one or more strategies, each with its own legs |
| STRATEGY_EXIT | Exit the strategies you name |
| STRATEGY_EXIT_ALL | Exit everything currently running |
| LEG_EXIT | Exit individual legs, leaving the rest of the strategy running |
| LEG_PARTIAL_EXIT | Book part of a leg, by LOTS or PERCENT |

**Each leg in `STRATEGY_ENTRY` carries:**

| Field | Values |
| --- | --- |
| LegID | Your own id — referenced later by LEG_EXIT and LEG_PARTIAL_EXIT |
| Exchange | NSE · NFO · BFO · BSE · MCX |
| InstrumentType | The instrument, for example OPTSTK; equity legs are handled separately |
| Symbol | The underlying |
| ExpiryDate | dd/MM/yyyy |
| StrikePrice | Numeric |
| OptionType | CE · PE · FUT · EQ |
| OrderSide | BUY · SELL — the only integration that can state direction |
| QuantityLots | Lots, not units — the lot size is applied for you |
| HedgeConfig | { Enabled, StrikePrice, QuantityLots } |
| StopLoss | { Enabled, Type, Value } — SL: %, SL: Pts or SL: Abs |
| TakeProfit | { Enabled, Type, Value } — TGT: %, TGT: Pts or TGT: Abs |

**The ids are yours to choose, and yours to reuse**

This is the part that catches people out. TradeBridge does not invent identifiers for you — your code supplies them, and every later call refers back to the same ones.

| Id | You set it when | You reuse it to |
| --- | --- | --- |
| Webhook strategy id | Creating a new strategy in the payload | Add more legs to it, exit some of its legs, or exit the whole strategy |
| Webhook strategy name | Same call, alongside the id | Same — it travels with the id |
| Leg id | Creating each leg | Exit that leg, or book part of it |

Both must be **unique**. Pick an id per strategy and an id per leg, store them on your side, and use the same values for the rest of that strategy's life. Send a new strategy id and you have started a new strategy; send an existing one and you are acting on the strategy that already exists.

**Example flow.** `STRATEGY_ENTRY` with strategy id `S-101` and legs `L1` and `L2` opens the position. Later, `LEG_EXIT` with strategy id `S-101` and leg id `L1` closes just that leg. `STRATEGY_EXIT` with `S-101` closes what is left.

**Copy the sample, then remove the comments.** The `STRATEGY_ENTRY` example includes `//` notes explaining each field. They are helpful to read and invalid as JSON — strip them before sending, or the call is rejected.

Because `OrderSide` is stated per leg, one Custom URL can drive both directions — the only integration where that is true.

## Sending signals from a Google Sheet

Copy link

(Image: The sample payloads for the Custom integration)

A Google Sheet can send signals to TradeBridge. It uses the same **Custom** integration as your own code, so nothing new has to be switched on. The sheet sends the JSON, and TradeBridge treats it exactly like a signal from a Python script.

This suits a trader who already keeps a plan in a sheet. You type the legs into rows, then send the whole basket with one press.

**What you need**

|  |  |
| --- | --- |
| In TradeBridge | A strategy on the Custom integration, with its webhook URLs generated |
| To be reachable | Ngrok, set up in Settings ▸ Other ▸ Ngrok Settings |
| In the sheet | A script you write yourself, in Google's Apps Script |

**Use ngrok for this.** Google sends the signal from its own servers, not from your computer. So the address has to be reachable from the internet. An ngrok address is fixed, needs no router setup, and carries no port number. See *Public IP or ngrok*.

**You write the script.** TradeBridge does not supply one, and spreadsheet code is outside what we support. What we do give you is the exact JSON to send. Press **SAMPLE PAYLOADS** in the [Webhook](https://myalgomate.com/glossary#webhook) band and copy the example for the action you want. Your script sends that JSON to the strategy's webhook URL.

**Two ways to send**

**By hand.** Put a button in the sheet and attach your script to it. Fill in the rows, then press the button when you want the trade. You decide the moment. This is the simpler way, and it is the one to start with.

**On a timer.** Google can also run your script on a schedule. Two limits apply, and both are Google's rather than ours:

- The fastest schedule is **once a minute**. Google allows 1, 5, 10, 15 or 30 minutes, and nothing shorter.
- Share prices inside Google Sheets are **delayed**. The sheet does not hold the live price.

A timed sheet works well for a plan built on the clock, or on figures you keep yourself. It is not a way to react to a price move. For that, use [TradingView](https://myalgomate.com/glossary#tradingview) or your own code.

> **Keep the webhook URL out of the sheet.** The URL ends in a token, and that token is the only thing protecting it. Anyone who holds the URL can place trades in your account. Store it in your script's own settings rather than in a cell, and do not share the sheet.

**Three things that catch people out**

- **A script named `onEdit` cannot send anything.** Google blocks outgoing web requests from that kind of script. Give the function a different name, then add an installed trigger for it. This is a Google rule, not a TradeBridge one, and Google's Apps Script documentation explains it.
- **A timer can send the same row twice.** Mark each row as sent once it has gone. Sending the same strategy id again does not start a second strategy. It adds more legs to the one already running.
- **There is a daily cap on outgoing requests.** A free Google account allows 20,000 a day, and a Workspace account allows 100,000. Google may change these figures.

**Checking that it arrived**

TradeBridge answers every signal with `Received OK`, and your script can read that reply. Then open the **Execution Logs** and look for the line naming the URL. If the log shows nothing at all, the signal never reached this machine, so check ngrok before anything else.

When a signal is late or missing

## When your signal actually arrives

Copy link

(Image: When your signal actually arrives)

Sometimes your order goes in a few seconds later than you expected. Most of that wait happens before TradeBridge is involved at all. Here is where it goes.

**[TradingView](https://myalgomate.com/glossary#tradingview) only checks your alert when a trade happens**

TradingView does not watch the clock. It checks your condition each time a new trade comes in for that contract.

- On a busy contract like NIFTY, trades arrive constantly. Your alert fires straight away.
- On a quiet contract, nothing is checked until the next trade. If nobody trades for 15 seconds, your alert waits 15 seconds.

That is why the same setup feels fast on one contract and slow on another. Your strategy has not changed. The number of trades has.

**What it looks like in real numbers**

Eleven alerts in a row on SILVERMIC, a 1-minute chart. SILVERMIC does not trade every second, so the wait changes from candle to candle:

| Candle closed | Alert sent | Waited |
| --- | --- | --- |
| 16:09:00 | 16:09:00 | — |
| 16:10:00 | 16:10:03 | 3 sec |
| 16:11:00 | 16:11:16 | 16 sec |
| 16:12:00 | 16:12:02 | 2 sec |
| 16:13:00 | 16:13:00 | — |
| 16:14:00 | 16:14:06 | 6 sec |
| 16:15:00 | 16:15:01 | 1 sec |
| 16:16:00 | 16:16:03 | 3 sec |
| 16:17:00 | 16:17:03 | 3 sec |
| 16:18:00 | 16:18:07 | 7 sec |
| 16:19:00 | 16:19:02 | 2 sec |

Most arrived within a few seconds. The 16-second one is simply how long SILVERMIC went without a single trade.

(Image: TradingView's alert log. The time inside each message is when the candle opened; the clock next to the alert name is when it was sent)

TradingView's alert log. The time inside each message is when the candle opened; the clock next to the alert name is when it was sent

**Reading your own log.** The `time` inside the message is when the candle **opened**, and it is in **UTC**. Add your timeframe to get the close, then add 5 hours 30 minutes for IST. A 1-minute candle stamped `10:40:00Z` opened at 16:10 and closed at 16:11.

**Your Trigger setting decides when the alert fires**

TradingView gives you four choices. They behave very differently. The full table is in *TradingView — creating the entry alert*; for timing, this is what matters:

| Trigger | Fires |
| --- | --- |
| Once per bar close | Only after the candle finishes. Safest, and the one that waits the longest on a quiet contract. |
| Once per minute | At most once a minute, while your condition stays true. Reads the candle as it forms, so it answers a different question from bar close. |
| Once per bar | As soon as the condition is true inside a candle. Fastest, but the candle can still turn. |
| Once only | The first time only, then never again. |

**Once per minute is not the fix for a slow alert.** It does not wait for the candle to finish, so it can fire sooner. But it is answering a different question. It tests your condition on a candle that is still open, and it can fire again every minute. Read *TradingView — creating the entry alert* before you switch to it.

**TradeBridge starts working when the alert lands**

TradeBridge cannot see when your candle closed. The alert does carry a timestamp, but it is not used. All TradeBridge knows is when the message arrived, and it acts on it then. Your Start Time and Stop Entry Time are also checked against arrival time.

**What can add a little more time**

Usually milliseconds. Worth knowing when one particular entry looks slow:

| Step | When it takes time |
| --- | --- |
| Picking the contract | If you chose the strike by premium or delta, TradeBridge keeps checking until a strike fits. A target that no strike matches will keep it waiting. |
| Waiting for a price | Capital-based lots need a live price. If the feed has not sent one, the leg waits up to 30 seconds, then stops with LTP is 0 for Symbol: …. |
| Legs go in one at a time | The legs of a strategy are placed one after another, not together. |
| Chartink baskets | Symbols are entered in order. The 40th stock goes in after the other 39. |

**Check it on your own account**

1. **Execution Logs** — the `Time` column on the line that says the signal was received.
2. [**Order Book**](https://myalgomate.com/glossary#order-book) — the `Place Time` column for the order that followed.

The gap between those two is TradeBridge's share. Everything before the first one belongs to TradingView and the internet in between.

**A wrong PC clock looks similar but is a different problem.** It does not make your trade late. It makes the **times you see** wrong. TradeBridge uses your computer's clock for every time it writes down, and for checking Start Time and Stop Entry Time. A machine running 90 seconds fast will stamp trades 90 seconds ahead and stop taking entries 90 seconds early. TradeBridge checks this every time it starts and shows a warning at the top of the window with the fix next to it. Clear that warning before you investigate anything else on this page.

**What you can do**

- **Trade the liquid contract.** The near month, the near strike. Most of the wait is how often your contract trades, not software.
- **Match the timeframe to the contract.** A 1-minute candle on something that trades every twenty seconds will always feel slow. A 5-minute candle on the same contract will not.
- **Expect the entry price to differ from the candle's close.** The market keeps moving between the close that triggered your alert and the moment your order reaches the exchange.

## When a signal does not arrive

Copy link

(Image: Webhook messages in the execution log)

TradeBridge writes what it did with every signal. Open the **logs** at the bottom of the window and switch to **EXECUTION LOGS**.

| Message | What it means |
| --- | --- |
| Webhook listening has started… | The URL is live and waiting. If this is missing, press START. |
| New Entry Stocks: … signal received. | The call arrived and was accepted. |
| Multi-stock Chartink alert: processing entry for N stocks (…) | A basket alert; each symbol is being entered. |
| Webhook contract selected for leg … | The contract was resolved — the order is on its way. |
| … webhook entry skipped: SYMBOL already has an active leg. | That stock is already open. Working as intended. |
| Webhook entry skipped: NAME is not enabled in Index Settings. | Tick the index or commodity in Settings ▸ Index Settings. |
| Webhook contract not found for … | The symbol could not be matched — usually a prefixed symbol, a typo, or something not listed on NSE or BSE. |
| Received alert from an unknown source… | The URL does not match any strategy. Usually the strategy was renamed, or the URL was reissued after being pasted — by GENERATE, or by changing the Integration, which reissues every URL on screen. |

Two more, specific to a strategy that takes both directions:

- **The right side traded, the wrong way round.** Nothing looks broken. Entries arrive, orders go in and the log is clean. But the long alert is opening the short legs. The **LONG ENTRY** and **SHORT ENTRY** URLs got crossed when they were pasted. Compare the address in your alert against the one on screen: the direction is written into the path (`…_Long_Entry…` against `…_Short_Entry…`). This is the reason it is spelled out there.
- **"Short Entry [Webhook URL](https://myalgomate.com/glossary#webhook) can't be Empty" when saving.** A *Long and short* strategy needs a URL for each direction. Press **GENERATE** on the short entry row.

If nothing appears in the log at all, the call never reached the application. Work through this in order:

1. **Is TradeBridge running and started?** The listener only exists while the app is open and trading has been started.
2. **Is the URL current?** Renaming a strategy, or pressing **GENERATE** again, invalidates what you pasted earlier.
3. **Public URL from a cloud service?** Port **80** must be forwarded on your router, and your broadband address must not have changed. **On an ngrok URL**, check instead that the tunnel is running: the Application Logs record it starting at START, and record it if it stops.
4. **Is it inside the trading window?** Signals arriving before **Start Time** are ignored, and nothing new opens after **Stop Entry Time**.
5. **Is the underlying ticked?** An index or commodity that is not active in **Settings ▸ Index Settings** is skipped. The call arrives and the log says `NAME is not enabled in Index Settings`, but nothing trades.

(Image: Settings ▸ Index Settings — an underlying that is not ticked will not take an entry)

Settings ▸ Index Settings — an underlying that is not ticked will not take an entry

Go live

## Pressing START

Copy link

(Image: The Setup Guide)

**START** begins the trading session. Before it will do anything useful:

1. **Instruments downloaded** — the footer stops saying *Downloading instruments…*.
2. **Accounts logged in** — use **Accounts ▸ Login All Accounts**. Logging in is not possible after START.
3. **Indices enabled** — tick what you trade in **Settings ▸ Index Settings**.
4. **A portfolio active**, with strategies inside it.
5. **Mode checked** — Paper or live, shown on the command bar.

The **Setup Guide** tracks all of this and links each step to the screen that fixes it.

After START, your [webhook URLs](https://myalgomate.com/glossary#webhook) begin listening and your strategies wait for their signal.

Monitor and manage

## The seven live views

Copy link

(Image: The Portfolio tab)

Each tab answers one question.

**Portfolio** — what is scheduled and what is running, with a per-portfolio execution tally.

**Strategies** — every live strategy, its status, P&L and risk state.

(Image: The Strategies tab)

The Strategies tab

**Legs Detail** — one row per leg: symbol, side, quantity, entry and exit price, target, SL, trail.

(Image: The Legs Detail tab)

The Legs Detail tab

[**Order Book**](https://myalgomate.com/glossary#order-book) — every order placed, with status and any rejection message.

(Image: The Order Book tab)

The Order Book tab

**Position** — net positions by symbol, with [LTP](https://myalgomate.com/glossary#last-traded-price), bid, ask and [delta](https://myalgomate.com/glossary#delta).

(Image: The Position tab)

The Position tab

**A/C Management** — the accounts themselves: login state, funds, margin, risk caps.

**Index Summary** — the underlyings you trade, with spot, futures and synthetic-future prices, the [ATM](https://myalgomate.com/glossary#at-the-money) strike, and your net position in each.

(Image: The Index Summary tab)

The Index Summary tab

## Making the grids yours

Copy link

(Image: Column tools)

Every grid carries the same tools, and every change is remembered for next time.

- **COLUMNS** — show or hide any column and drag them into the order you want. The counter shows how many of the total are visible.
- **Filter** — a spreadsheet-style panel on each column header: search, tick the values you want, select all results, or clear.
- **Freeze** — keep the identifying columns in place while the rest scrolls.
- **Pin actions** — promote the row buttons you use most out of the **…** menu.
- **Reset** puts a grid back to its defaults.

## Exiting positions

Copy link

(Image: EXIT ALL on the command bar)

There is an exit at every level, and each is one click.

| Where | What it exits |
| --- | --- |
| Legs Detail row | That leg only |
| Strategies row, or Strategies ▸ Exit Selected | That strategy |
| Portfolio row, or Portfolios ▸ Exit Selected | That portfolio |
| A/C Management row ▸ Exit All | Everything on that account |
| EXIT ALL on the command bar | Everything, everywhere |

**Part Book** on a strategy row books part of a position rather than all of it.

## Booking part of a position

Copy link

(Image: Part Book sits in the row actions of a live strategy)

**Part Book** closes a portion of an open position and leaves the rest running under its original rules. There are three ways to reach it.

**1 · The whole strategy.** Open **Part Book** from the row actions on a live strategy in the **Strategies** tab. Every leg is booked proportionally — it works the same whether the strategy has one leg or a full set on both sides.

**2 · A single leg.** Do the same from a row in **Legs Detail** to book part of that leg only. The other legs are untouched and carry on under their own rules.

**3 · From your own code.** Send `LEG_PARTIAL_EXIT` to the strategy's [webhook URL](https://myalgomate.com/glossary#webhook), naming the leg and how much to book. Useful when your strategy decides to scale out on its own.

**Choosing the amount** — the same two units everywhere:

- **By Lots** — the number of lots to close.
- **By Percentage** — a share of the open quantity, between 0 and 100.

In the JSON [API](https://myalgomate.com/glossary#api) these are `LOTS` and `PERCENT`, set as `partbookType`.

Whatever is left keeps its target, [stop-loss](https://myalgomate.com/glossary#stop-loss) and trailing rules, and the strategy stays live — so the remainder still manages itself and can still be exited normally later.

## The MTM chart

Copy link

(Image: The MTM Visualizer)

Open **View ▸ [MTM](https://myalgomate.com/glossary#mark-to-market) Chart…** for the **MTM Visualizer** — mark-to-market plotted across the session rather than only the current number.

It opens as a **window, not a dialog**. Clicking elsewhere does not close it, so you can leave it running beside the workspace while you edit a strategy or watch the [order book](https://myalgomate.com/glossary#order-book). Drag the title bar to move it, drag any edge or corner to resize it, and it reopens where and how you left it.

**Reading the chart**

- The filled area shows which side of zero the day is on — green above, red below.
- Move the pointer across it for a crosshair and a tooltip listing every visible line at that moment.
- The last leg is **dashed with a pulsing head**. That is the minute still forming: it tracks the live figure continuously and settles into a normal point when the minute closes. Hovering it labels it *forming*.
- **Drag across the chart to zoom** into a time range. **Reset Zoom** clears it.

**Choosing what to plot**

- **Level** — Global, Account, Portfolio or Strategy, as four buttons rather than a dropdown.
- Below Global, a second picker names what it is choosing: *Account*, *Portfolio* or *Strategy*. It also shows how many there are. It remembers your choice per level.
- The **legend** along the bottom is also the control: click a chip to show or hide that line. At least one always stays on.

**Global MTM**, **High** and **Low** run along the top with the time each extreme was set. Figures update every half second and the curve every couple of seconds — there is no refresh button because nothing waits for one. If the connection drops, the badge turns amber and the last curve stays on screen rather than blanking.

The live tracking on the last leg applies to the **Global** view. Account, portfolio and strategy curves move as each minute is recorded.

Settings

## Index and commodity settings

Copy link

(Image: Index Settings)

Open **Settings ▸ Index Settings**. This is where you choose which underlyings the software tracks.

The left panel lists **NSE / equity indices** — NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY, SENSEX and BANKEX. The right lists **MCX / commodity indices** — GOLD, GOLD M, SILVER, SILVER M, Natural Gas, Crude Oil M and Crude Oil.

For each row:

- **Active Index** — the tick that switches it on. Untick anything you do not trade to keep the feed and the grids focused.
- **Expiry Date** — the expiry this underlying uses, as a date, with **DTE** (days to expiry) beside it.

Every change saves as you make it — there is no Save button on this screen.

The screen becomes read-only once trading is live, and in that state each panel also shows a count of how many underlyings are active.

**An underlying that is not ticked will not take an entry.** A signal for it arrives, is skipped, and the reason is written to the execution log. If a strategy is doing nothing, check here first.

**Set this before you press START.** There is no way to unlock Index Settings during a live session — you would have to close and reopen TradeBridge. So if you have a strategy on, say, SILVER, tick SILVER now. TradeBridge checks for exactly this when you press START and warns you by name if an active strategy is set on an underlying that is not ticked.

## Telegram alerts

Copy link

(Image: Telegram settings)

Open **Settings ▸ Telegram Alerts** to receive updates away from the machine.

1. **Send Telegram Alerts** — the master switch.
2. **Bot Token** — from BotFather in Telegram, when you create the bot.
3. **Channel Id** — the channel or chat the bot posts to.
4. **Live [MTM](https://myalgomate.com/glossary#mark-to-market) Alerts** — optional periodic updates rather than event alerts only.
5. **Telegram Time Frame** — how often those periodic updates are sent.

The settings are shared by every account, so this is configured once. Like Index Settings, they are read-only once trading is live, and reopening TradeBridge is the only way back in.

## Appearance and data

Copy link

(Image: General settings)

Open **Settings ▸ General**.

| Setting | What it does |
| --- | --- |
| Theme | Dark or Light |
| Density | Comfortable or Compact row height in every grid |
| Delta Base On | Whether delta is computed against spot or the future — this affects Closest Delta strike selection |
| Auto Delete Logs | How many days of logs to keep before they are removed |

**Settings ▸ Reset & Data** clears stored state if you want to start clean. It is read-only once trading is live, so reopen TradeBridge if you need it. There is a separate reset per area rather than one blunt button.

Reports and housekeeping

## Exporting your data

Copy link

(Image: The Session menu)

**Session ▸ Export All Grids…** writes every grid to Excel in one step.

Individual grids export from their own controls, and **Portfolios ▸ Export All Portfolios…** saves your portfolio definitions — useful as a backup, or to move a setup to another machine. Account set-ups travel the same way through **Accounts ▸ Save / Load Account Template…**.

The export follows the [API](https://myalgomate.com/glossary#api) 's own column order and includes every column, not only the visible ones.

## Logs

Copy link

(Image: Execution logs)

The panel at the bottom of the window shows one of two logs, chosen with the pair of buttons on the right of its toolbar.

- **Execution Logs** — what your strategies did: signals received, contracts chosen, orders placed, exits, and every skip reason. **This is the one you land on**, and the one to read when a strategy has not done what you expected.
- **Application Logs** — the application's own activity: logins, downloads, connection state.

Both are searchable and filterable by column, **OPEN LOG** shows the file on disk, and **CLEAR** empties the view. **Settings ▸ General** controls how many days of logs are kept.

[← Back to TradeBridge](https://myalgomate.com/products/tradebridge)

---
MyAlgoMate is a technology provider: its software automates the user's own trading rules. It does not give
trading tips, calls or investment advice and never promises returns. Site map for AI assistants:
https://myalgomate.com/llms.txt
