20 Commits

Author SHA1 Message Date
unknown 29585d88f4 added account ordering function in live mt5 ea account config 2026-06-13 08:39:53 +10:00
unknown 95b0f45842 Set fixed width for live mt5 account cards. 2026-06-13 08:36:42 +10:00
unknown 62e2812935 Set fixed width for live mt5 account cards. 2026-06-13 08:35:11 +10:00
unknown 8fd3d5b92d Fixed mt5 parser for accounts with zero trades 2026-06-13 08:27:19 +10:00
unknown 538fff2bab Fixed mt5 parser for accounts with zero trades 2026-06-13 08:21:10 +10:00
unknown aa09155e08 Fixed mt5 parser for accounts with zero trades 2026-06-13 08:18:14 +10:00
unknown fffaddb2bf Fixed mt5 parser for accounts with zero trades 2026-06-13 08:14:14 +10:00
unknown f60cc3790c Fix loading of new accounts without trades on live mt5 eas page 2026-06-13 07:42:38 +10:00
unknown 04e4dea081 feat: move refresh controls into account configuration expander
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
2026-04-20 14:47:30 +10:00
unknown 92bdf09356 fix: account summary card text colour and size on dark theme
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
2026-04-20 14:41:44 +10:00
unknown 1cdca6cfcb fix: auto-refresh using st_autorefresh JS timer instead of sleep/rerun
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
2026-04-20 14:12:45 +10:00
unknown a8ff2b729d Fix live mt5 ea's page to fetch ftp data, then update cache before rendering.
Fix Live mt5 ea's autofresh to fetch ftp data, update cache then render.
2026-04-20 14:00:53 +10:00
unknown 934b5fec71 fix: auto-refresh and open positions columns on Live MT5 EAs page
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
2026-04-20 13:54:37 +10:00
unknown 6778d1b590 fix: auto-refresh and open positions columns on Live MT5 EAs page
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
2026-04-20 13:52:37 +10:00
unknown b6ed4b6c4b fix: auto-refresh and open positions columns on Live MT5 EAs page
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
2026-04-20 13:49:58 +10:00
unknown f77f44056c fix: open positions table now matches MT5 HTML report columns
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
2026-04-20 13:17:11 +10:00
unknown 239ed043c6 fix: open positions table shows all columns, remove account numbers
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
2026-04-20 13:00:55 +10:00
unknown ba91d8fd13 fix: remove real account numbers from Live MT5 EAs setup guide
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
2026-04-20 10:30:35 +10:00
unknown fc42eeef02 feat: full FTP setup guide on Live MT5 EAs page when unconfigured
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
2026-04-20 09:46:55 +10:00
unknown 6f8e01bcf1 feat: Live MT5 EAs page + parser improvements
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
2026-04-20 08:30:46 +10:00