QuantLab bot · Setup

From purchaseto running

Eight steps. You connect TradersPost to your broker, put the script on one chart, and create one alert. Nothing else needs touching.

Updated August 2026 · MNQ · 15 minute chart
01 · Before you start

What you need, and one thing to check first

The bot runs on TradingView and sends its orders to your broker through TradersPost. Three accounts, and two things to check before you pay for anything.

01
TradingView, any paid plan.Webhook alerts are not available on the free plan, and your account needs 2-factor authentication switched on, or TradingView refuses to send them. Sign up through our link for a FILL: $15 credit.
02
TradersPost.The bridge between the alert and your broker. Free 7 day trial, then paid.
03
A futures account.Your own, a prop firm evaluation, or a funded account. We recommend Lucid. Code FILL: CODE gets you their highest active discount.
On Essential and Plus, the alert expires every two months

Only Premium and above can set an alert to run open-ended. On Essential and Plus the longest expiration TradingView offers is two months. When it runs out the alert stops, and the bot stops with it, without telling you.

Nothing breaks and nothing is lost. You create the alert again, which is step 7 and takes two minutes. Put a repeating reminder in your calendar the day you set it up, so the bot is never off without you knowing.

Check this before you pay for anything

TradersPost reaches prop firm accounts two ways, Tradovate or ProjectX. ProjectX connections cannot attach bracket orders. On a ProjectX account your stop loss and take profit never reach your broker, and the position runs unprotected.

Ask your firm which one they use, or look for it on the TradersPost connections page. If it is ProjectX, do not run the bot on that account.

Delayed data makes the bot fire ten minutes late

TradingView shows MNQ on delayed data unless real-time CME data is active on your account. Either buy the CME real-time data subscription for MNQ inside TradingView, or get it at no extra cost through your broker, since prop firm accounts on Tradovate include real-time CME data. For the free route you must connect your Tradovate account to TradingView. Without that connection your data stays delayed even though your firm already pays for it.

The chart is not a choice

MNQ on the 15 minute chart. The bot is built and tested for exactly that. A different timeframe is not a variation of the strategy, it is a different strategy with unknown behavior.

NQ works too, but one NQ contract is worth ten MNQ contracts. To size the same way it needs roughly ten times the risk per trade, which only makes sense on a much larger account. Below that, use MNQ.

Good to know up front

The bot never holds a position overnight. Every position it opens is closed the same day.

02 · Step one

Create your TradersPost account, then connect your broker

Start here, because the rest of the setup lives inside TradersPost.

Sign up through the link below and use the code FILL: CODE at checkout for a discount.

Create your TradersPost account →

Once you are in, go to Brokers and click Connect Broker. Pick your firm from the list and follow their login flow. When you come back, your account appears under Connections.

Brokers · connect broker, top right
Prop firm accounts

Evaluation accounts usually count as paper accounts in TradersPost, not live ones. That matters for which plan you need. Check the counter at the bottom left of the dashboard before you pick a plan.

03 · TradingView

Put the script on your chart

Open an MNQ chart on the 15 minute timeframe and add the bot from your invite-only scripts. Then open its settings, tab Inputs.

Inputs · four settings, that is the whole script
Mode
Stable gives a smoother equity curve and a lower risk of hitting your account drawdown limit. Performance has a higher expected profit, but a rougher curve and more risk at the drawdown limit. Both trade the same system, they differ only in how a trade is managed.
Risk per Trade ($)
Your maximum loss on one trade. Position size is calculated from it automatically. Guideline for a 50k account with a $2,000 trailing drawdown: $300 conservative, $400 standard, $500 aggressive.
Automation (Webhook)
Switch on. This is what makes the script send its orders.
Ticker Override
Leave empty. The script works out the exact contract by itself, and keeps doing so after every quarterly rollover. You never have to change it or rebuild your alert.
Show resolved ticker
Off. Switch it on for a moment after each quarterly rollover to confirm the new contract appeared in the bottom right corner, then off again.
04 · TradersPost

Create the strategy

A strategy is where your webhook address lives. Strategies → New Strategy.

New Strategy · name it, pick Futures, tick the three boxes
Name
Anything. QuantLab bot works.
Style
Systematic.
Asset class
Futures.
Allow auto submit / Allow live trading / Allow signal overrides
All three ticked. The last one is the master switch. Without it the bot's stop and target are ignored later on.
Email notifications
Only Failed Signals plus your address. You want to hear about a rejected order without watching the log.

Click Save. Your webhook URL now appears on the page. Copy it somewhere, you need it in step 7.

Treat it like a password

Anyone with that URL can place orders on your account. Do not post it, do not put it in a screenshot.

05 · The important part

Three settings to change. Everything else stays as it is.

Still on the strategy page, click Edit Subscription Defaults at the bottom. The form is long. You only touch three things in it. Leave the toggle at the top switched on, it copies these settings into the account you connect in the next step.

1 · Allowed sides → Both Sides

It starts on Long Only. The bot trades both directions, so on Long Only half its trades would be rejected.

Sides · both sides, nothing below it ticked

2 · Entry order type → Market

Entry · market, and both override boxes ticked
This looks wrong and is right

Further down that same screen, Take profit and Stop loss type both sit on None. That does not mean you trade without a stop. It means TradersPost has no default of its own. The bot sends the real stop and target with every order, and the Allow signal override boxes let them through. Leave both on None with the boxes ticked.

3 · Exit order type → Market

It starts on Limit. This one matters most: the bot's closing signal carries no order type of its own, so whatever stands here is what gets used. On Limit the closing order may never fill, and a position that should have been closed stays open.

Exit · market, breakeven offset left empty

Close the panel and Save the strategy. The orange Market Order Warning next to both fields is a general note about market orders, not an error.

06 · Connect it

Subscribe and enable

Click Subscribe on the strategy page and pick your account. Then open the subscription and check two things that do not come across from the defaults.

Subscription · auto submit, and enabled up top
Auto submit
Set to Auto Submit. It arrives on Manual Submit, which means every order waits for you to click it by hand. Ticking "Allow auto submit" on the strategy was only the permission, this is the switch.
Email notifications
Only Failed Signals plus your address, same as before.

Then Save, then Enable. The badge at the top must read Enabled in green. While it is red, nothing happens.

Quick check

Under the name it should say Take both sides on any ticker, and the example orders on the right should show a real contract like MNQU2026. If both are there, your settings landed.

07 · The last step

Create the alert

Back on your MNQ 15 minute chart. One alert. That is all the bot needs.

Create alert · alert() function calls only
Notifications · webhook URL, nothing else
Condition
The bot. In the second row pick alert() function calls only.
Interval
Same as chart, which is 15 minutes.
Expiration
Open-ended, so it never quietly stops. On Essential and Plus that option does not exist and two months is the maximum. Pick the longest date you are offered and set a reminder to create the alert again before it runs out.
Message
Nothing to fill in. With this alert type TradingView has no message field, because the order details come from the script. Clicking the row only lets you rename the alert.
Notifications
Tick Webhook URL and paste the address from step 4. Untick the rest unless you want your computer chiming on every trade.
Do not create a second alert

TradingView also offers an order fill alert type. Do not switch it on. It sends its own closing orders alongside the bot's, which cancels out the stop and target sitting at your broker. One alert, of the type above, and nothing else.

Click Create. You can close the chart, alerts run on TradingView's servers.

08 · Confirm

Check it worked

On the first day the bot trades, open Signals in TradersPost.

Signals · one entry, resolved to MNQU2026, delivered 1 / 1

In Signals: the signal arrived and resolved to a real contract, for example MNQU2026 Micro E-mini Nasdaq-100, with a green 1 / 1 beside it.

In Trades: the entry has a stop and a target attached. All three together.

If the stop and target are missing

Disable the subscription and go back to step 5. One of the Allow signal override boxes next to take profit or stop loss is unticked, and without it your position runs without protection at the broker.

If something else is off

Signals arrive about ten minutes late

Your TradingView data is delayed. Real-time CME data is not active, or your Tradovate account is not connected to TradingView. See section 1.

No signal at all

Alert type is wrong, the webhook URL is incomplete (it has two segments after /webhook/), or 2-factor authentication is off in your TradingView account.

It traded for weeks, then stopped

The alert expired. On Essential and Plus that happens after two months. Create it again, step 7.

Signal arrives, no order

The subscription is disabled, or still on Manual Submit. Step 6.

Only one direction trades

Allowed sides is still on Long Only. Step 5.

A position stayed open

Exit order type is still on Limit. Step 5.