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:
- Sometime between 9:00 and 9:25 ET, log in to your machine
- Confirm IB Gateway is logged in and connected
- Launch
WSTerminal.exe - Open the dashboard at
http://localhost:8080 - Pre-flight check (covered in first-trade → Before market open)
- 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.
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
SCANNINGwith no detections. - "Just to be safe" mid-session, when nothing has gone wrong.
End-of-day cleanup¶
After the bot transitions to DAY DONE:
- Glance at the day's results. Review the Trades Today table.
- Decide whether to close the app. You can:
- Leave it running — it'll idle in
DAY DONEuntil the next session, picking up automatically the following morning. - Close it — close the console window. The bot stops. Relaunch tomorrow.
- Leave it running — it'll idle in
Both are valid. If your machine is on overnight anyway, leaving it running is the cleaner default — no morning-launch step required.
- 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.exeshortly 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):
- Log Gateway back in manually
- Confirm the dashboard's data status pill reads
DATA · LIVE - 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¶
- Going live — if you're still on paper
- Troubleshooting — when something described here isn't working
- Configuration overview — to customize what the routine actually does