Skip to content

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:

  1. 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.
  2. Launch WS Terminal. Double-click WSTerminal.exe. The console window appears, then the dashboard banner. Open http://localhost:8080 in your browser if a tab isn't already open.
  3. Glance at the top bar. The bot state badge should read STOPPED. The data status pill should say DATA · LIVE (or DATA · — briefly while it updates). The session clock should show the current ET time.
  4. Confirm the symbol. The chart card's header shows the active symbol — make sure it matches what you configured (/NQ by default).
  5. 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 points threshold

What you'll see on the dashboard:

  • The chart updates with new candles every minute
  • The FVGs Detected card stays at 0 active until 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:

FVG#1 · BULLISH · 21015.0 → 21023.5

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:

Pending Entry
FVG #1 · LONG · 1 contract
Resting at  21019.25

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:

  1. Price retraces into the FVG to your entry price → the order fills. State transitions to IN POSITION.
  2. Price never retraces → the FVG eventually expires (when later price action invalidates the structure). The order is cancelled. State goes back to SCANNING.
  3. 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:

FILL · LONG · 1 contract @ 21019.25

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-entry is on, a new add-on limit order gets placed. The state stays at IN POSITION while 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 LIVE to FROZEN — 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 DISCONNECT events — the bot has lost its connection. It'll attempt to reconnect; you'll see IBKR RECONNECT if it succeeds. If reconnect attempts keep failing, check Gateway and your internet connection.
  • The state badge stuck at IN POSITION long 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 SCANNING with no detections. Some days the market doesn't form qualifying FVGs. The bot doesn't manufacture trades to feel productive.
  • A DATA · FROZEN blip lasting a few seconds. Common during routine broker hiccups; usually recovers immediately.

When TO intervene

  • DATA · DELAYED for 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 DISCONNECT events with no RECONNECT, 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:

  1. 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?
  2. Check the equity curve on the Trades page. One day is noise; the curve over weeks is what matters.
  3. 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.
  4. 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 STOPPED state 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