Your first trading day¶
This page is a narrative walkthrough of a typical session — from the moment you click Start in the morning to the moment the bot flattens for the day. It's meant to set expectations: what's normal, what's not, when to intervene, when to let it run.
Before you read this, finish the first-run wizard and skim the dashboard tour so the UI elements named here are already familiar.
Run paper for a while first
The first time you do this, be on a paper account (Gateway port 4002 or TWS 7497). The day-1 runbook is the same paper or live, but you want to see the bot's actual behavior on your machine before any real money is on the line. Switching to live triggers the live-trading acknowledgment modal — it's a separate step, deliberately after you've watched the bot run.
Before market open¶
A few minutes before the first detection candle (9:30 ET for the default US futures schedule), do the pre-flight:
- IB Gateway (or TWS) is logged in. Open Gateway's window; the status line should read connected/active. If it's at a login screen, log in now — the bot won't connect to a logged-out Gateway.
- Launch WS Terminal. Double-click
WSTerminal.exe. The console window appears, then the dashboard banner. Openhttp://localhost:8080in your browser if a tab isn't already open. - Glance at the top bar. The bot state badge should read
STOPPED. The data status pill should sayDATA · LIVE(orDATA · —briefly while it updates). The session clock should show the current ET time. - Confirm the symbol. The chart card's header shows the
active symbol — make sure it matches what you configured (
/NQby default). - Glance at the Today readout. It should be zeroed out (Wins 0 / Losses 0 / Net P&L 0.00). If yesterday's numbers are still there, see Troubleshooting → No trades firing / stuck.
If anything looks off, fix it before clicking Start. Starting with a misconfigured connection or the wrong symbol is the most preventable cause of a bad day.
Clicking Start¶
When everything looks right, click Start in the top-right of the dashboard.
On a paper port, the bot starts immediately. The state badge
transitions to SCANNING and the ticker strip drops a BOT
STARTED event.
On a live port, you'll see the live-trading acknowledgment modal pop up — eight checkboxes you have to acknowledge before the bot will arm. See Going live for what each checkbox commits you to. Once you click Confirm, the bot starts the same way it does on paper.
That's it. The bot is now watching the market.
The detection window (9:30 - first FVG)¶
Between 9:30 and roughly 9:33 ET (depending on your config), the
bot is in SCANNING state. What's happening:
- The bot's reading every candle as it closes
- Looking for fair value gap patterns at the configured candle timeframe (1-minute by default)
- Comparing each candidate against your
Min FVG size pointsthreshold
What you'll see on the dashboard:
- The chart updates with new candles every minute
- The FVGs Detected card stays at
0 activeuntil something qualifies - The ticker strip is quiet unless a candle pattern triggers a detection
What's normal: no events for the first couple of minutes. The US futures open is volatile; some days the first FVG forms within the first 60 seconds, other days it takes 5-10 minutes.
What's not normal: the state badge sitting at STOPPED
(you forgot to click Start), or the data status pill flipping to
DATA · DELAYED (your market data subscription isn't active —
see Market data subscription).
When an FVG is detected¶
A new chip appears in the ticker strip:
And the FVGs Detected card on the dashboard now shows 1 active.
The bot has now placed a limit order at your configured entry
depth inside the FVG. The state badge transitions to PENDING
and a Pending Entry card appears at the top of the dashboard:
The order is real — it's at the broker. You can verify it in Gateway's "Orders" tab. It stays resting until one of three things happens:
- Price retraces into the FVG to your entry price → the
order fills. State transitions to
IN POSITION. - Price never retraces → the FVG eventually expires (when
later price action invalidates the structure). The order is
cancelled. State goes back to
SCANNING. - You manually intervene — click Flatten All or Stop to cancel the order.
What's normal: orders rest for a few minutes to 30+ minutes before filling or being cancelled. Don't restart the bot because "nothing's happening" — a resting limit order doing nothing is the correct behavior.
When you go into position¶
A fill event drops on the ticker strip:
The Position card on the dashboard fills in:
- Direction (LONG)
- Average Entry (your fill price)
- Stop Loss (computed per your stop-loss type)
- Take Profit (computed per your TP type, frozen for the life of the trade)
The state badge reads IN POSITION. Unrealized P&L starts
ticking — green when in your favor, red against, faint when
zero.
The chart now draws two horizontal lines — the working SL and TP.
What's happening in the background:
- The bot has placed working stop and take-profit orders at the broker. Both are real orders; you can see them in Gateway.
- The bot is monitoring price tick by tick. If the position reaches the breakeven trigger (if you've armed it), the working SL gets moved. If the trail arms, the TP order gets cancelled and the SL gets replaced with the trail level.
- If a same-direction FVG triggers and
Enable multi-entryis on, a new add-on limit order gets placed. The state stays atIN POSITIONwhile the add-on is pending.
What you should and shouldn't do mid-trade¶
Things you should NOT do mid-trade:
- Don't edit the active config. Changes that take effect immediately can confuse the bot's working orders. Wait for the trade to close, or stop the bot first, edit, then start again.
- Don't manually adjust orders at the broker. The bot owns the working orders. If you move them in Gateway, the bot's view of the position will diverge from reality and it may close out unexpectedly or fail to close out at all.
- Don't restart Gateway unless something is actually wrong. A graceful Gateway log-out drops the bot's connection; the bot will reconnect, but the position is exposed during the gap.
Things you can do mid-trade:
- Watch the unrealized P&L.
- Read the ticker strip for breakeven moves, trail arms, add-on fills.
- Click Flatten All if you want out of the trade right now, regardless of where it's sitting.
Things to flag for later (not mid-trade):
- "I wish the stop were tighter / wider." Write it down, change it tomorrow with the bot stopped.
- "The entry depth feels wrong." Same — adjust before the next session.
When the trade exits¶
One of five things ends the trade:
| Exit | What happened |
|---|---|
| TP | Price hit your take-profit. Best case. |
| SL | Price hit your stop. Expected case (it happens). |
| BE | Price hit the breakeven level after BE armed. Small profit or scratch. |
| TRAIL | Trailing stop level was hit after trail armed. Locked-in trailed profit. |
| EOD | End-of-day timer fired before any of the above. Bot flattened. |
The Position card flips back to FLAT · No Active Position. The
Today readout increments Wins or Losses and updates Net P&L. The
trade lands on the Trades Today table at the bottom of the
dashboard. The ticker strip drops an EXIT · <type> · <P&L> chip.
State transitions briefly to NEXT TRADE, then back to
SCANNING (if more FVGs are eligible) or DAY DONE (if the
daily caps are reached or the trade window has closed).
The middle of the session¶
In the middle of a typical trading day, the bot will cycle
through several SCANNING → PENDING → IN POSITION → exit loops.
On a quiet day, it may take only one trade. On a volatile day,
it may hit Max FVG trades per day and stop before noon.
What's normal in the middle of the day:
- Multiple FVGs detected with only some of them triggering fills. The bot's scanning more candidates than it ends up trading; that's by design.
- Periods of long inactivity. The bot doesn't force trades — if nothing meets criteria, nothing happens.
- The ticker strip going quiet for 30-60 minutes.
- A trade that runs deep into profit but reverses and stops out at breakeven or trail (this is exactly what breakeven and trail are for — protecting profit on trades that don't quite reach TP).
What to watch for:
- The data status pill flipping from
LIVEtoFROZEN— market data has stopped flowing. Bot will pause new entries until data resumes. Usually a brief broker hiccup; if it persists more than a couple of minutes, check Gateway. - The ticker strip dropping
IBKR DISCONNECTevents — the bot has lost its connection. It'll attempt to reconnect; you'll seeIBKR RECONNECTif it succeeds. If reconnect attempts keep failing, check Gateway and your internet connection. - The state badge stuck at
IN POSITIONlong after you expect the trade to have closed — most likely the bot is correctly managing a longer-than-usual trade. Check the chart; the position lines (SL / TP) tell you what it's waiting for.
When NOT to panic¶
A few things look alarming but are normal:
- A losing trade. Losses are part of the strategy. The whole reason a stop loss exists is that some trades hit it. One losing trade doesn't mean anything is broken.
- A series of losses early in the day. It happens. The daily cap exists so a bad morning can't become a catastrophic day.
- The bot skipping an FVG that looked tradeable. Probably hit a size or selection filter. Look at the FVGs Detected card — if the FVG is shown with a non-active status (expired, invalidated, omitted), that's why.
- A long stretch of
SCANNINGwith no detections. Some days the market doesn't form qualifying FVGs. The bot doesn't manufacture trades to feel productive. - A
DATA · FROZENblip lasting a few seconds. Common during routine broker hiccups; usually recovers immediately.
When TO intervene¶
DATA · DELAYEDfor more than a minute. The bot will keep running but it's trading off stale prices. Stop the bot and fix the data subscription.- The bot doesn't reconnect after an IBKR disconnect. If you
see repeated
IBKR DISCONNECTevents with noRECONNECT, Gateway has likely died — relaunch it, then resume the bot. - The Position card shows a position but Gateway doesn't (or vice versa). State has diverged from reality. Click Flatten All to force a clean exit, then stop the bot and investigate before restarting.
- The dashboard is unresponsive. The bot itself may still be running — check the console window. If the dashboard is stuck but the bot is fine, F5 the browser tab. If the console is also frozen, see Troubleshooting → Bot crashed / froze.
End of day¶
At your configured End of day time (4:00 PM ET by default), the
bot flattens any open position and transitions to DAY DONE.
The dashboard shows:
- State badge:
DAY DONE - Position card:
FLAT · No Active Position - Today readout: final wins / losses / net P&L for the session
- Trades Today table: every trade from the session
The bot will idle in DAY DONE until the next detection window opens (the following weekday at 9:30 ET, or whatever your schedule is set to).
You can close the browser tab. The bot keeps running in the background. The console window stays open; closing it stops the bot.
What to do after the session¶
A small ritual to build a habit around:
- Review the day's trades on the Trades Today table or the full Trades page. Look at each trade's exit type — was the day mostly TPs, trails, or stops?
- Check the equity curve on the Trades page. One day is noise; the curve over weeks is what matters.
- Don't change settings after a losing day. The strategy has losing days. Knee-jerk tuning after one bad session is the most common way to break a working setup.
- Do flag things to investigate over the weekend: config tweaks to backtest (Pro), questions for support, anything that felt structurally off (not "I had a losing trade" but "the bot was disconnected for 20 minutes").
Skipping a day¶
You don't have to run the bot every day. Two clean options:
- Just don't launch it. No trade for the day; nothing to reset; tomorrow it picks up fresh.
- Launch it but don't click Start. It'll sit in
STOPPEDstate until you click Start, or it'll idle the whole day if you never do. Auto-start is off by default for exactly this reason — the bot doesn't arm itself unless you tell it to.
If you want it to run unattended on a schedule (so you don't have to be at the computer), see Operations → Daily runbook for setup.
Where to go next¶
- Going live — paper-to-live transition checklist and the LTA modal
- Operations → Daily runbook — unattended operation, Gateway interaction, restart cadence
- Troubleshooting — when something on this page doesn't match what you're seeing