Skip to content

Daily runbook

This page is the day-in-day-out operating manual for running WS Terminal as a routine. It covers what to do at session start, what the bot does on its own, what you have to do periodically, and what to do when you've skipped a day.

If this is your first session, read Your first trading day first — this page assumes you've already done that walkthrough.

When to launch the bot

For a US futures session on the default schedule (9:30 AM - 4:00 PM ET), aim to have the bot running by 9:25 AM ET at the latest. That gives the connection a couple of minutes to settle and lets you sanity-check the dashboard before the detection window opens.

A common launch ritual:

  1. Sometime between 9:00 and 9:25 ET, log in to your machine
  2. Confirm IB Gateway is logged in and connected
  3. Launch WSTerminal.exe
  4. Open the dashboard at http://localhost:8080
  5. Pre-flight check (covered in first-trade → Before market open)
  6. Click Start

If you're running unattended, see Unattended operation below — the bot can launch itself.

What the bot handles on its own

Once running, the bot manages:

  • FVG detection for the day
  • Order placement, fills, and exits — entry limits, working SL/TP orders, breakeven moves, trail activation
  • Pyramiding within your configured limits
  • End-of-day flatten at your configured EOD time (4:00 PM ET by default)
  • Brief IBKR disconnects — automatic reconnect attempts resume the session
  • State transition to DAY DONE once all daily caps are reached or the trade window closes

You don't have to touch the dashboard during a normal session.

What you have to handle periodically

A few things the bot doesn't do for you:

IB Gateway daily auto-restart

IBKR logs Gateway out daily for security — typically once every 24 hours, sometime after midnight ET. Gateway's built-in auto-restart feature handles this gracefully: at a configured time each night, Gateway re-logs in using a token file (no credentials required), and the bot's connection resumes automatically.

Configuration walkthrough is in IB Gateway → Step 7. Recommended setting: auto-restart at 11:55 PM ET, well after the day's session has closed.

IBKR weekend forced re-login

Distinct from the daily auto-restart, IBKR pushes a periodic full re-authentication during weekend maintenance windows. This one cannot use the token file — it demands username, password, and a 2FA tap from the IBKR mobile app. Gateway shuts itself down afterward; the bot loses its connection until you manually relaunch Gateway.

This typically happens once every few weekends, usually Saturday or Sunday morning. You will need to manually log Gateway back in when this happens. No way around it on the user side; IBKR controls the re-auth schedule.

Symptom you'll see when this has happened: bot dashboard shows IBKR disconnected, Get-Process java returns nothing on the machine, Gateway is not running.

Fix: launch IB Gateway from its desktop shortcut, log in (credentials are the same as before — the rejection that triggered the shutdown is typically spurious; the password isn't really wrong), tap 2FA when prompted. Bot reconnects within seconds of Gateway coming back up.

Market data subscription

Confirm a few times a year that your IBKR market data subscription is still active and billing through correctly. If your subscription lapses (lapsed credit card, IBKR billing change), you don't get a loud warning — the bot just starts seeing 15-20 minute delayed quotes and the dashboard's data status pill flips to DATA · DELAYED. Catch this fast or trade quality suffers.

See Market data subscription.

Bot updates

When a new version of WS Terminal ships, the dashboard's About modal surfaces a Check for updates indicator. Download, extract, relaunch.

For unattended setups, the bot won't auto-update itself — you have to do the relaunch step.

When to restart the bot

In general: as little as possible. A running session that's been behaving correctly is more valuable than a fresh start. But restart for:

  • Config changes that don't hot-swap. Dashboard port; broader risk parameter changes where you want a clean slate.
  • Memory creep — if you've left the bot running for many consecutive days, a weekly restart isn't a bad idea. Modern Python is fine on long uptimes, but it's not a stress test worth running.
  • After a Gateway restart if reconnect didn't happen cleanly.
  • After a Windows update reboot.
  • If the dashboard becomes unresponsive but the console window is still alive. Sometimes the WebSocket gets stuck; restarting rebuilds it.

When to NOT restart:

  • After a losing trade.
  • After a long stretch of SCANNING with no detections.
  • "Just to be safe" mid-session, when nothing has gone wrong.

End-of-day cleanup

After the bot transitions to DAY DONE:

  1. Glance at the day's results. Review the Trades Today table.
  2. Decide whether to close the app. You can:
    • Leave it running — it'll idle in DAY DONE until the next session, picking up automatically the following morning.
    • Close it — close the console window. The bot stops. Relaunch tomorrow.

Both are valid. If your machine is on overnight anyway, leaving it running is the cleaner default — no morning-launch step required.

  1. If running overnight, confirm Gateway auto-restart will fire. Glance at Gateway's status — it should show "auto-restart at [time]" in the bottom strip.

Unattended operation

If you want WS Terminal to launch and arm itself without you being at the computer (you're on vacation, working a day job, etc.), three things have to be set up:

1. Auto-launch on machine boot

WS Terminal doesn't currently ship a one-click installer task for this — you set up a Windows Task Scheduler entry yourself, or place a shortcut in your Startup folder. Conceptually:

  • Task / shortcut: launch WSTerminal.exe shortly after Windows boot (give Gateway a minute to come up first)
  • Trigger: At log on (if you auto-log-in) or at startup (if the machine boots into a session)

2. Auto-start on app launch

In Settings → Operator Console, enable Auto-start on launch. This makes the bot arm itself the moment the .exe finishes loading, instead of sitting at STOPPED waiting for you to click Start.

Combining auto-start with a live port triggers a separate acknowledgment modal the first time. Read it carefully — you're consenting to live orders being placed during unattended periods. See Going live → The auto-start variant.

3. IB Gateway auto-launch and auto-restart

Gateway needs to be running and logged in before the bot starts. Set up Gateway's auto-restart per IB Gateway → Step 7, and add Gateway to your Windows startup the same way you did the bot.

For Gateway's weekend forced re-login, there's no current workaround — your unattended setup will lose IBKR connectivity until you manually log Gateway back in. The dashboard's data status pill and the bot's reconnect attempts will surface the outage, but you'll need to be physically present (or have remote access) to clear it.

Unattended live trading is real risk exposure

The combination of a live port + auto-start + machine-boot launch means the bot can place real orders during periods you are not present. Broker outages, network failures, config drift, or unexpected price action during those periods can produce fills you didn't anticipate. The acknowledgment modal spells this out — read it, decide whether the trade-off makes sense for your situation.

If you skip a day

Nothing has to "reset." The bot's daily counters (wins / losses / trades-today) zero out at the start of the next detection window automatically. There's no rollover to clear, no state to flush.

If you didn't launch the bot at all yesterday:

  • Trade history is unaffected — yesterday simply doesn't have an entry
  • Today, launch as normal

If you launched the bot but never clicked Start:

  • Same as above — no trades to clear, the daily counters were already zero
  • Today, launch as normal

If the bot ran yesterday but you skipped end-of-day review:

  • No urgency. The trades were recorded; you can review them on the Trades page any time.

If you skip multiple days in a row and come back to find Gateway logged out (likely a weekend forced re-login during your absence):

  1. Log Gateway back in manually
  2. Confirm the dashboard's data status pill reads DATA · LIVE
  3. Start the bot as normal

The trade history and config persist across all of this — APPDATA state survives logouts, restarts, and skipped days.

Where to go next