FREEDOMv3.2
Activity
📊Analysis
💰Portfolio
📡News
Settings
Backtesting
IB connected Last scan 8s ago Stream connecting
🔔
Alerts
No alert source is wired. The bot does not yet publish alerts, so this panel cannot tell you whether anything is wrong — check the Activity and Portfolio tabs, which read live endpoints.
Paper
Live
Halt
EURUSDLIVE
EUR/USD
● —
/5 slots
Awaiting /portfolio
XAUUSDLIVE
XAU/USD
● —
/5 slots
Awaiting /portfolio
SPX500LIVE
S&P 500 (MES)
● —
/5 slots
Awaiting /portfolio
Strategy performance
Leaderboard
0 selected Compare
Trades
Win rate n=—
Avg R
Total P&L
What triggers this strategy — in order
Improvements to consider
Further reading
R-multiple distribution
An R-multiple is a trade's profit or loss expressed as a multiple of what was risked on it — a trade risking $100 that made $250 is +2.5R, one that hit its stop is -1.0R. Measuring in R rather than dollars makes trades comparable across instruments and position sizes. Two strategies can share the same average R while having very different distributions — mostly small, consistent wins vs. frequent small losses offset by rare large winners. That shape is what this section is for.
Trade log
All
Forex
Commodities
Indices
Stocks
InstrumentEntryExitRP&LDateExit reason
Account, margin & FX
Awaiting first snapshot…
Account
Net liquidation
Buying power
Margin used
Cushion
Unrealized
Realized (today)
Margin cap headroom
Share of the pyramid margin cap used (PYRAMID_MAX_MARGIN_PCT = 50) — the global ceiling on total margin across all instruments before new pyramid adds are blocked.
Currency exposure
Account is SGD-denominated; all instruments quote in USD. Every position carries FX risk on top of instrument risk — a move in USD/SGD affects P&L even if the position itself is flat.
Exposure figures not yet available — no open positions to measure. Gross USD exposure is derivable from positions once any exist (Σ qty × entry, since every instrument quotes in USD); the USD/SGD rate needs a source that nothing currently serves.
NAV & P&L
NAV history chart not yet available — nothing serves NAV over time. The period tabs and sparkline shown here previously were illustrative, and their axis values sat close enough to the real net liquidation to be mistaken for it. They return once an endpoint provides NAV history.
Open trades
Trades closed
Realized
Daily loss gate
Margin & profitability by asset · awaiting first open position
By asset class
No per-instrument margin data yet — this populates once a position is open (marginByInst is currently empty in /api/portfolio with no open positions).
Profitability vs. margin consumed
Efficiency is P&L ÷ margin consumed, so it needs both. Neither exists while the account is flat — this fills in alongside the margin breakdown.
By underlying instrument
Nothing to break down yet — no open positions. Populates from the same marginByInst data as the asset-class view.
Reading settings from the bot…
Versions & Connection
Freedom Bot Version Control
VersionSavedNoteBacktestedAction
Connection
Host127.0.0.1
IB_HOST
Port4004
IB_PORT — 4004 (v3.2 paper, set in this stack's .env)
Live client ID20
IB_CLIENT_ID — must stay unique from the backtester's ID and from v3.1's clientId 10
Backtester client ID21
Separate clientId used by backtest_engine.py
Scan interval240s
SCAN_INTERVAL_SECONDS — how often the signal engine re-scans all instruments
Read-only — v3.2 runtime values (config.py + this stack's .env). Static transcription for port/clientId; scan interval matches the live backend.
Order Management
Risk & Sizing
Risk per trade%
RISK_PER_TRADE_PCT — % of account NAV risked on a single position
Max daily loss%
MAX_DAILY_LOSS_PCT — account-wide circuit breaker; halts trading for the day once crossed
Min stop (standard)pips
MIN_STOP_PIPS — minimum stop distance floor for non-GBP pairs
Min stop (GBP)pips
MIN_STOP_PIPS_GBP — wider floor since GBP crosses are historically more volatile intraday
Order Execution
Min signal score
MIN_SIGNAL_SCORE — Gate 1: signals below this conviction score (0-100) are rejected
Min reward:risk
MIN_RR_RATIO — Gate 6: orders below this reward:risk ratio are rejected
Max pullbacks
MAX_PULLBACKS — pullback count ceiling for pattern-based entries
Order type
ORDER_TYPE_DEFAULT — LMT (limit) or MKT (market) for new entries
Pyramiding
Add in profit only
PYRAMID_ADD_IN_PROFIT_ONLY — only allow adds when the existing stack is net positive
Max open / instrument
MAX_OPEN_PER_INST — max stacked positions allowed per instrument
Min favorable movepips
PYRAMID_MIN_MOVE_PIPS — price must move this many pips favorably before a new add
Max margin cap%
PYRAMID_MAX_MARGIN_PCT — blocks pyramid adds if total margin would exceed this % of buying power
Cooldowns
COOLDOWN_SECONDS — minimum time between first entries on the same instrument
Strategy
Global news settings · shared by every strategy, not owned by News Scalping
Asset Class Management
Read-only. Grouped by asset_registry.py's asset_class. Live means the bot has an IB contract for the instrument (config.INSTRUMENTS) and can hold a position in it; backtest-only means the engine can simulate it but the bot cannot trade it. There is no per-class enable and no per-class risk override anywhere in the bot — RISK_PER_TRADE_PCT is global. Instruments are added in config.py.
Audit Log
TimeSectionFieldBeforeAfter
No changes yet this session
Wire — news & economic calendar
Today
Week
Month
All
Headlines refresh every 10 min · economic calendar refreshes every 5 min · last updated 2m ago
DateTime (UTC)TypeSourceHeadline SummaryAsset(s)Instrument(s)Open trades at impactRemarks — analysis & risk advisory
Jul 807:24ScheduledForexFactory Non-Farm Payrolls US employment report — historically the highest-volatility scheduled release for USD pairs. FX
CMD
IDX
EURUSD, XAUUSD, SPX500 EURUSD Long 2/5
XAUUSD Short 1/5 no stop
SPX500 Long 3/5
Blackout begins 06:56 UTC. XAUUSD has no stop — highest-priority position to review before this window; consider a manual stop or reducing size.
Jul 822:54ScheduledForexFactory CPI (US) Inflation print — second high-impact USD event in the same trading day as NFP. CMD
IDX
XAUUSD, SPX500 XAUUSD Short 1/5 no stop
SPX500 Long 3/5
Compounds today's gap-risk window for XAUUSD given the missing stop — two high-impact releases, one unprotected position.
Jul 1010:12ScheduledForexFactory Interest Rate Decision (EU) ECB policy decision. FX EURUSD EURUSD Long 2/5 48h out — time to review EURUSD stop placement before release, no immediate action needed.
Jul 804:10BreakingForexLive ECB's Lagarde: policy remains data-dependent into Q3 Neutral/dovish tone, no explicit signal on near-term rate path. FX EURUSD EURUSD Long 2/5 Aligns with existing long bias; no action needed.
Jul 803:58BreakingCNBC Nvidia extends rally as AI capex guidance beats estimates Bullish company-specific news, AI capex commentary well received. STK NVDA NVDA Long 5/5 full stack Bullish, but position is already at max stack (5/5) — no room to add; monitor trailing stop given full exposure.
Jul 803:31BreakingMarketWatch Crude slips on surprise inventory build ahead of EIA report Bearish for crude on unexpected supply build. CMD No current crude position — informational only; relevant once 3.2 futures rollout adds CL.
Jul 803:12BreakingNasdaq US 10-year yield ticks up ahead of tomorrow's CPI print Rising yields, market positioning ahead of CPI. IDX SPX500 SPX500 Long 3/5 Rising yields can pressure equity multiples — worth watching into CPI.
Jul 802:12BreakingYahoo Gold holds near record highs as dollar softens Gold strength on broad dollar weakness. CMD XAUUSD XAUUSD Short 1/5 no stop Gold strength works against the short position; combined with the missing stop, this is the highest-priority review of the day.
Jul 801:12BreakingCNBC Fed's Waller signals openness to a September cut Dovish Fed commentary. IDX
FX
SPX500, EURUSD SPX500 Long 3/5
EURUSD Long 2/5
Broadly supportive of both open longs.
Jul 800:12BreakingForexLive GBP steady after mixed UK PMI data Mixed data, limited GBP reaction. FX No GBP exposure currently — informational only.
Jul 723:12BreakingMarketWatch Apple supplier reports point to steady iPhone demand ahead of earnings Steady demand signal ahead of earnings. STK AAPL not currently held — informational only.
Jul 722:12BreakingNasdaq Tesla shares slide after delivery numbers miss consensus Bearish, delivery miss. STK TSLA not currently held — informational only.
Jul 721:12BreakingYahoo Dollar index holds near two-week high ahead of Fed minutes Broad USD strength heading into Fed minutes. FX
CMD
EURUSD, XAUUSD EURUSD Long 2/5
XAUUSD Short 1/5 no stop
Headwind for the EURUSD long, tailwind for the XAUUSD short — but the missing stop remains the priority over directional read.
Jul 805:40GeopoliticalReuters Middle East tensions escalate after reported strikes near key shipping lanes Non-financial but market-moving — flight-to-safety flows typically follow escalation headlines. CMD
IDX
XAUUSD, SPX500 XAUUSD Short 1/5 no stop
SPX500 Long 3/5
Classic risk-off setup: gold typically bid, equities typically sold on escalation. Works directly against both the XAUUSD short and SPX500 long — the unprotected gold short is doubly exposed here.
Jul 719:05GeopoliticalReuters US–China trade talks resume in Geneva, no breakthrough expected this round Non-financial diplomatic development; low near-term volatility expected but a headline-risk item into the weekend. IDX
STK
SPX500, NVDA SPX500 Long 3/5
NVDA Long 5/5 full stack
No breakthrough lowers near-term surprise risk, but any sudden headline out of these talks can move semis (NVDA) and broad indices fast — worth monitoring even though NVDA has no room to add.
Jul 716:30Supply chainReuters Minor earthquake reported near Taiwan chip-fabrication hub, no damage confirmed yet Non-financial event with direct semiconductor supply-chain relevance — NVDA and broader chip names are sensitive to Taiwan fab disruption headlines. STK NVDA NVDA Long 5/5 full stack No confirmed damage yet, but this is exactly the kind of non-financial headline that can gap NVDA on a follow-up report — worth a manual check on fab-damage updates given the position is already fully sized.
From (DD/MM/YYYY)
To (DD/MM/YYYY)
6 months selected · max range is 2 years
Capital
Risk per trade
%
Liquidity / slippage
Standard applies your real MIN_STOP_PIPS-scale spread plus ~1 pip of adverse fill slippage per side — the same apply_costs=True behavior your live /backtest/run endpoint already uses. This maps to that boolean; the finer presets here are illustrative until the engine supports graduated cost models.
Intraday strategies over a 2-year range generate a large bar count — runs beyond ~3 instruments will need the async job queue (Phase 3 of the v2 plan: POST /backtest/start → background worker → poll /status/{id}) rather than the current synchronous endpoint, which times out past ~100s.
Asset Class Management
Every instrument backtest_engine.py can simulate, grouped by the registry's asset_class. Selected by default: the three the live bot is configured to trade — the same set /backtest/run defaults to. Opt in to more, but note the engine pulls hourly bars from IB per instrument and the run is killed at 300s, so a large selection can time out. This list is read from the engine, so it cannot drift from what a run will accept; instruments cannot be added here.
Backtesting Versions
Every configuration you've actually run through the backtest engine, with its result — separate from the live bot's version history on the Settings tab. "Load config" repopulates the fields below with that experiment's exact settings so you can retest or tweak further. Once a result looks good, use "Save to Settings tab" below to turn it into an official bot version.
VersionResultAction
Bot settings for this test Starts as a copy of live Settings — retest freely, nothing touches production until you push it back
Risk & Sizing
Risk per trade%
Max daily loss%
Min stop (standard)pips
Min stop (GBP)pips
Order Execution
Min signal score
Min reward:risk
Max pullbacks
Order type
Pyramiding
Add in profit only
Max open / instrument
Min favorable movepips
Max margin cap%
Test controls
Cooldowns
Apply trading costs
Hours-only (RTH)
Results No backtest run yet
Results
Net P&L
Ending NAV
Win rate
Trades
Max drawdown
Profit factor
Cost drag
No backtest has been run in this session. Click “Retest with these settings”.
Effective strategies
StrategyTradesWin rateAvg RNet P&L
No backtest run yet
5-level validation
1. Cost analysisNo run
Modeled spread + slippage costs as a share of gross P&L. Pass when cost drag is under 10% of gross.
2. Walk-forwardNo run
Parameters fitted on each train window, frozen, then measured out-of-sample. The engine returns no verdict when the grid collapses to one parameter set (nothing was fitted, so nothing can be overfit).
3. OverfittingNo run
Parameter-sensitivity check across ±10% neighbours. Pass when at least 2/3 of the neighbours that actually traded stayed profitable.
4. Monte CarloNo run
Bootstrap-resampled trade sequences. Pass when even the 5th-percentile outcome is profitable — the rule is stated here, not implied by the number.
5. Paper-liveNo run
Compares logged paper trades against this backtest. Reports progress toward the 60-trade checklist; it is never a Pass/Fail.
Trade log All Forex Commodities Indices Stocks
DateInstrumentStrategySideEntryExitRP&L
EURUSD
EUR/USD
Strategy match
EMA alignment
Momentum
Risk:Reward
1m
5m
1H
4H
1D
1W
Candles
Line
100%
+
EMA 6 EMA 18 SMA 200
StrategyEntryStopTarget P&LRHeld