No JMWS session detected.
Sign in via JMWSFree cash
—
Account total
—
Cash + open-position market value
Open positions
—
—
Open orders
—
Awaiting fill
Positions
| Ticker | Qty | Avg | Current | P/L | P/L % | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Open orders
| ID | Ticker | Type | Qty | Price | Status |
|---|---|---|---|---|---|
| — | |||||
Every recommendation the Python worker has produced. Auto-execute is off by default — these are advisory until you flip the switch in Controls.
| When | Ticker | Action | Score | P/L % | Explanation | Executed? |
|---|---|---|---|---|---|---|
| No decisions yet — worker hasn't run. | ||||||
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.
Strategy
The bot manages its own risk. No knobs to turn. It will:
- Never put more than 10% of total account value into a single position
- Hold at most 10 positions at once — automatic diversification
- Keep ≥5% of total in cash as dry powder for future opportunities
- One buy per 15-min cycle — risk spreads over time, never all-in
- Only buy stocks that historically recovered from similar lows ≥55% of the time
- Only sell when statistically extended AND already in ≥3% profit
- Cooldown after every trade per ticker — no flip-flopping
Strategy is hard-coded in the worker (main.py: MAX_POSITIONS, POSITION_SIZE_PCT, MIN_CASH_RESERVE). Changing it requires a deploy — deliberately, so you can't fat-finger it from a phone.