No JMWS session detected.
Sign in via JMWSLatest updates
Everything the bot has done and every news shift on your tickers — newest at the top. This is the answer to "what's changed since I last checked?".
Active investments
Pending investments
—Active investments
Pending investments
News & sentiment
Every ticker in the bot's universe scanned every cycle. Google News RSS → VADER sentiment. Headlines < 24 h old, recency-weighted. Green ≥+0.20 = bullish, red ≤−0.20 = bearish, grey = neutral. This nudges the buy/sell score; it never trades on news alone.
Investment reasoning
Every decision the bot has made with the £ stake, the news that drove it, and the upside it's modelling. Newest first.
Every action the bot considered or took. Filter to debug.
| When | Level | Source | Event | Detail |
|---|---|---|---|---|
| Loading… | ||||
Connection
Auto-execute
When ON, the bot executes its own sell recommendations on the demo account. When OFF, the bot only scores and records decisions — every trade is advisory until you flip this back.
Reset bot state
Wipes the dashboard's view of the account — snapshots, AI decisions, activity log, news. Use this after resetting your Trading 212 practice account so the dashboard isn't holding stale numbers. The bot itself keeps running; the next cycle (~30 s) repopulates everything fresh from T212.
Strategy
Always on. The bot has a mind of its own. It:
- Scans continuously — no fixed schedule. Each cycle takes ~30–60 s; the bot is effectively always on the clock.
- Reads the news first — every ticker's latest headlines are fetched (Google News RSS) and scored with VADER sentiment. Positive news is the primary buy driver: the bot wants to be in stocks the wire is talking up. News is ~46% of every buy score — heaviest single component.
- Confirms with technicals — past-recovery rate, RSI, position in 5-y range, etc. are still part of the score (≈54%) so a news pump on a wildly overextended stock doesn't auto-trigger a buy.
- Refuses to buy into bad news — if news sentiment ≤ −0.30 (clearly bearish wire), the buy is blocked regardless of how good the technicals look.
- Sizes itself by conviction — position size scales linearly from 3 % to 25 % of the account by score. A score of 1.0 puts 25 % on one name; 0.5 puts ~14 %; 0.2 puts ~7 %. Strong signals get concentrated, weak signals get tiny stakes.
- Decides spread vs concentrate on its own — there's no fixed position count. When one signal dominates, the bot bets big and ends up with fewer holdings. When everything scores similarly, it spreads thin. Number of holdings emerges from the math, not a setting.
- Pulls out early when a holding's current buy-score collapses below 0.30 — opportunity cost beats loss aversion.
- Sells extended winners on the rare-peak exit score — news-boosted so a bullish headline on a profitable position accelerates the take-profit.
- Keeps ≥1 % of total in cash as dry powder.
There are no user-tunable knobs. Strategy lives in main.py, buyer.py, analyzer.py and changing it needs a deploy — deliberately.