Configuration overview¶
WS Terminal's behavior is driven by a single configuration file
(config_product.py) that the dashboard's Config page reads and
writes for you. You rarely need to edit the file by hand — the Config
page exposes every field as a form input with validation, save, and
revert.
This page is the map: what the 12 sections are, which fields each tier can edit, and where your settings actually live on disk.
The two parameter-by-parameter walkthroughs are:
- Strategy parameters — schedule, FVG detection, entry depth, pyramiding
- Risk parameters — stop loss, take profit, breakeven, trailing, daily caps
The 12 config sections¶
The Config page is laid out in the same order as the underlying file. Top to bottom:
| # | Section | What it controls |
|---|---|---|
| 1 | Connection | Broker host, port (paper vs live), client ID |
| 2 | Futures contract | Symbol (/NQ default, /MNQ, /ES, /CL, etc.) and tick size |
| 3 | Trading schedule | Detection window, trade window, end-of-day time |
| 4 | FVG detection | Candle timeframe, min FVG size, entry depth, inverse mode |
| 5 | FVG selection | How many FVGs to scan, which to skip, first-vs-sequential |
| 6 | Risk management | Stop loss, take profit, breakeven, trailing stop |
| 7 | Multi-entry | Pyramid count, add-on quantities, add-on SL mode |
| 8 | Daily limits | Max trades per day, daily net stop |
| 9 | Position sizing | First-entry contracts, max total contracts |
| 10 | Monitoring | Heartbeat URL (uptime ping) |
| 11 | Dashboard & logging | Dashboard port, log file, log level |
| 12 | App settings | Auto-start on launch, trade log file |
A 13th internal section ("Cloud API") governs whether completed trades sync to the public track-record page. That toggle is on by default and isn't surfaced on the Config page.
Tier gating — what Basic vs Pro can edit¶
Both tiers see the full Config page, but Basic licenses can only save changes to a small subset of fields. The rest of the form renders as read-only and shows the active preset's values.
What Basic can edit:
- Section 1 — Connection (host, port, client ID)
- Section 2 — Futures contract (symbol, tick size)
- Section 9 — Position sizing (initial contracts, max contracts, per-add-on quantities)
- Section 11 — Dashboard port and log level
- Section 12 — Auto-start toggle
What Basic cannot edit (Pro unlocks all of these):
- Section 3 — schedule changes
- Section 4 — FVG detection settings, entry depth, inverse mode
- Section 5 — FVG selection / first-vs-sequential
- Section 6 — every risk parameter (stop type, TP type, breakeven, trailing)
- Section 7 — pyramid policy (max add-ons, gating, add-on SL mode)
- Section 8 — daily limits and net stop
The Config page surfaces a banner at the top on Basic licenses explaining the lock and linking to the upgrade flow. The bot otherwise runs identically — both tiers can use either of the two shipping presets without restriction.
Presets¶
Two presets ship with the bot:
- WS Terminal Standard — the default recommended preset. ATR-scaled stop, fixed 200-point take-profit, ATR-scaled trailing stop, equal-risk pyramid add-ons.
- WS Terminal Max — same FVG strategy, tuned for higher absolute returns at the cost of larger drawdowns. Tighter trailing activation; add-ons keep the original stop instead of recomputing for equal risk.
Both tiers can switch between these from the Config page's preset picker. Switching loads the preset's values into the form; you can review and click Save changes to apply.
Pro licenses additionally see custom presets. Pro can save the current form as a named preset, rename it, delete it, and switch between any number of custom presets. They live alongside the two built-ins in the picker. Basic does not see a save-preset button.
Where your config lives on disk¶
WS Terminal uses two locations:
| Location | What it stores |
|---|---|
<install>\config_product.py |
The bot's compiled-in defaults (ships with the .exe) |
%APPDATA%\WSTerminal\last_active_config.json |
Your live edits — overrides the defaults |
%APPDATA%\WSTerminal\presets.json |
Your custom presets (Pro only) |
The bot reads last_active_config.json first; any field not present
there falls back to the compiled-in default from
config_product.py. That means clearing
last_active_config.json is a safe "reset to factory" — you don't
lose anything except your custom overrides.
%APPDATA%\WSTerminal\ on most machines resolves to:
This is the same folder that holds your license.json and
trade_log.json (covered in Installation → Where the bot stores
your data).
What survives an update — and what doesn't¶
When a new version of WS Terminal ships, you download the new zip
and extract it (typically over your existing C:\WSTerminal\
folder, or to a fresh one).
Survives the update (lives in %APPDATA%\WSTerminal\):
- Your active config (
last_active_config.json) - Your custom presets (
presets.json— Pro only) - Your license activation (
license.json) - Your trade history (
trade_log.json) - Your legal acknowledgments (
acknowledgments.json)
Does not survive (replaced by the new zip's copy):
- The two shipping presets (Standard / Max) — these may be retuned
between releases. If a new release retunes them and you had one
loaded, your
last_active_config.jsonstill holds your previous values until you re-load the new preset. config_product.pyitself — but only the defaults that you haven't overridden are affected.
Migrating to a new machine
Copy the entire %APPDATA%\WSTerminal\ folder from the old
machine to the new one's %APPDATA%\WSTerminal\. Install the
bot on the new machine and it picks up where you left off —
license, config, presets, and history all intact.
Editing while the bot is running¶
Most fields can be saved while the bot is running and take effect immediately. The Config page surfaces an inline warning on any field that requires a restart or a stop-then-start.
The two notable restart-required cases:
- Dashboard port — the dashboard can't hot-swap its own port. Save, then close and relaunch the app.
- Active license tier change — if you upgrade or downgrade your Whop subscription mid-session, restart the bot to pick up the new tier's edit rights.
For risk and strategy changes, a safer pattern is stop the bot, edit, save, start again — that way no live trade is mid-flight when the new parameters become active.
Where to go next¶
- Strategy parameters — field-by-field for sections 3, 4, 5, 7
- Risk parameters — field-by-field for sections 6, 8
- First-run wizard — if you haven't completed initial setup yet