view_live_mt5_eas.py:
- Refresh All button and Auto-refresh input moved inside Account
Configuration expander to eliminate wasted space on main page
- Updated Xm ago timestamp remains on main page below expander
view_live_mt5_eas.py:
- Secondary text colour changed from #555/#666 to #A0A8B8 (silver grey)
for readability on dark theme
- Font size bumped from 11-12px to 13px across all card labels:
Updated timestamp, Balance/Current, Recovery, Loss streak,
Stagnation, Today P&L, prop account progress bar labels
view_live_mt5_eas.py:
- Replace broken sleep+rerun approach with streamlit-autorefresh
which injects a JS timer — works without user interaction
- Graceful fallback if package not installed, shows install hint
- First page load always pulls fresh data from FTP
- Auto-refresh fires FTP pull when poll interval has elapsed
requirements.txt:
- Added streamlit-autorefresh
view_live_mt5_eas.py:
- Auto-refresh: added sleep+rerun loop at end of render so page
keeps itself alive without user interaction
- Initialise ftp_last_auto_refresh to now on first page load so
timer starts correctly rather than triggering immediately
- Open positions table: updated columns to match MT5 HTML report
(Time, Position, Symbol, Type, Volume, Price, S/L, T/P,
Market Price, Swap, Profit, Comment)
mt5_parser.py:
- parse_open_positions: added market_price, swap, profit, comment
columns to match all 11 columns in MT5 HTML Open Positions table
view_live_mt5_eas.py:
- Auto-refresh: added sleep+rerun loop at end of render so page
keeps itself alive without user interaction
- Initialise ftp_last_auto_refresh to now on first page load so
timer starts correctly rather than triggering immediately
- Open positions table: updated columns to match MT5 HTML report
(Time, Position, Symbol, Type, Volume, Price, S/L, T/P,
Market Price, Swap, Profit, Comment)
mt5_parser.py:
- parse_open_positions: added market_price, swap, profit, comment
columns to match all 11 columns in MT5 HTML Open Positions table
view_live_mt5_eas.py:
- Auto-refresh: added sleep+rerun loop at end of render so page
keeps itself alive without user interaction
- Initialise ftp_last_auto_refresh to now on first page load so
timer starts correctly rather than triggering immediately
- Open positions table: updated columns to match MT5 HTML report
(Time, Position, Symbol, Type, Volume, Price, S/L, T/P,
Market Price, Swap, Profit, Comment)
mt5_parser.py:
- parse_open_positions: added market_price, swap, profit, comment
columns to match all 11 columns in MT5 HTML Open Positions table
mt5_parser.py:
- parse_open_positions: added market_price, swap, profit, comment
columns to match all 11 columns in MT5 HTML Open Positions table
view_live_mt5_eas.py:
- Open positions table columns updated to match MT5 report order:
Account, Time, Position, Symbol, Type, Volume, Price, S/L, T/P,
Market Price, Swap, Profit, Comment
view_live_mt5_eas.py:
- Open positions table now shows all columns: Account, Position,
Symbol, Base, Type, Lots, Open Time, Open Price, SL, TP, Status
- Friendly display names and formatted Open Time (DD.MM.YYYY HH:MM)
- Any extra columns returned by parser appended automatically
- Replaced real account numbers in FTP setup guide CLI examples
with generic placeholders (123456, 789012)
icmarkets_parser.py:
- Replaced real account numbers in docstring examples with
generic placeholders (123456789, 987654321)
.gitignore:
- Added *.docx to prevent docs with sensitive info being committed
view_live_mt5_eas.py:
- Replaced real account numbers in CLI examples with generic
placeholders (123456, 789012)
.gitignore:
- Added *.docx to prevent handoff/setup docs with sensitive
information being committed to the repo
view_live_mt5_eas.py:
- Replaced bare error message with full inline setup guide when
ftp_config.json is missing
- Part 1: FileZilla Server install, create FTP user, disable TLS,
passive mode port range
- Part 2: MT5 terminal FTP publisher settings step-by-step table,
common issues table
- Part 3: CLI verification commands for connection test, save
credentials, pull and cache accounts
- Part 4: config file reference table and .gitignore entries
- Part 5: troubleshooting table
- Info banner at bottom prompting to refresh once CLI setup is done
- Page loads normally once ftp_config.json exists — no behaviour change
Live MT5 EAs page (view_ftp_tracker.py):
- FTP-based multi-account tracker replacing view_mt5_tracker.py
- Account configuration with add/remove, FTP folder validation, Demo/Personal/Prop types
- Prop account fields: profit target %, max loss %, daily loss % with EA hard stop banner
- Account summary cards: recovery factor, loss streak, stagnation days, today P&L, prop progress bars
- Calendar view: month/week/year, Mon-Fri only, weekly total column, $ or % toggle
- Open positions table parsed from MT5 HTML Open Positions section
- Symbol correlation heatmap (collapsible)
- Trade analysis section with full stats, equity/drawdown/daily P&L, DOW/hour, monthly table
- Analysis modes: Overall, By Account, By Symbol, By Algo, By Day of Week
- Dynamic combined balance field auto-updates from selected accounts
- Auto-refresh polling with session state timestamp guard
- Report date extracted from MT5 HTML header (Date: field)
- Drawdown $ / % toggle with spline smoothing
mt5_parser.py:
- calc_stats(df, deposit=0.0) — deposit-aware balance drawdown matching MT5 Balance Drawdown Maximal
- max_drawdown_pct and peak_equity added to calc_stats return
- peak_at_dd uses .loc[] fix (IndexError on filtered DataFrames)
- parse_open_positions() — parses Open Positions section from MT5 account HTML
- extract_strategy() — filters sl/tp/so close-reason comments, maps nan to Manual
ftp_sync_cli.py:
- New CLI tool for FTP connection testing and cache population
MT5Tools_FTP_Setup_Guide.docx:
- FileZilla Server setup, MT5 publisher config, CLI verification, troubleshooting