
Tradinator
Created Mar 2026
Reduced the data lookback period from previous settings to 5 bars in main.py to optimize processing. Also included updates to the universe series configuration and updated the dashboard screenshot in media assets.
Implemented a new GitHub Pages delivery mode that automatically pushes the dashboard_data.json file to a repository using the GitHub Contents API. This allows for easier remote dashboard hosting by treating GitHub as an automated file-sync host for the monitoring pipeline. 
Previously, the DASHBOARD_DATA_URL configuration was silently ignored when using Netlify delivery, forcing the system to always use a local relative filename. I've updated the performance monitoring logic to correctly respect the configured data URL for both FTP and Netlify modes. This ensures custom data URLs are properly handled during automated deployments. 
Updated the universe_series.xlsx file containing core domain data. This change ensures the application is using the latest dataset for universe-related calculations and queries. 
We've introduced a new deployment mode that allows you to host the performance dashboard on Netlify, providing an excellent alternative for users who do not have access to traditional cPanel/FTP hosting. This implementation leverages Netlify's Files Deploy API using only standard libraries, ensuring an efficient, incremental upload process that only pushes changed files. Setup is straightforward and documented in the updated hosting guide. 
Updated the performance monitoring dashboard to use a relative URL for its data source (dashboard_data.json) when operating in localhost or file_only delivery modes. This modification ensures that the front-end correctly hydrates when the dashboard HTML file is opened directly from the filesystem or a local server, preventing issues where hardcoded absolute paths might fail to resolve.
This update fixes critical routing issues for dashboard data by adding independent FTP paths for JSON and HTML reports, configurable via FTP_JSON_REMOTE_DIR. Additionally, the FTP upload logic was hardened by moving from a restrictive error-flag pattern to a resilient error-accumulator approach and optimizing path normalization to avoid server-specific CWD issues. These changes ensure more reliable deployment of performance monitoring data. 
Improved error handling during dashboard generation by implementing an error-list accumulator, ensuring that critical failures don't silently disrupt the reporting workflow. Additionally, robust client-side FTP path normalization was introduced to prevent relative-path drift, ensuring consistent uploads even when using shared connections to remote servers. These changes make the monitoring pipeline significantly more resilient.
This update fixes a bug in the portfolio pie chart where multiple CFD position tickets for the same instrument caused duplicate labels, by correctly aggregating notional value by instrument ID. Additionally, the supported instrument universe has expanded from 5 to 30, incorporating new indices, forex pairs, and commodities with added metadata for better asset classification. This ensures cleaner reporting and broader market coverage. 
We have scaled our supported trading universe to 30 instruments, complete with enriched asset_class and region metadata in universe.json. Corresponding search logic in discover_universe.py was updated to ensure these new assets can be correctly identified and validated. This expansion provides broader market coverage for the trading engine. 
Resolved three issues in the performance reporting module: corrected a JSON failure flag, ensured proper FTP directory management by resetting the path before uploading, and added granular error handling for individual file operations to prevent full pipeline crashes.
Fixed an issue in the dashboard's performance monitoring module where duplicate labels appeared in the pie chart. I've updated the logic to aggregate positions by instrument_id, ensuring a consolidated view of holdings. 
Introduced ftp_json_remote_dir to the application configuration, allowing users to specify a separate remote destination for uploaded JSON dashboard data. This change provides greater flexibility when syncing monitoring outputs to external servers, separating operational files from dashboard analytics. 
The portfolio was being held almost entirely in cash due to overly restrictive signal validation parameters that filtered out valid market opportunities. We lowered the MIN_SIGNAL_STRENGTH threshold and widened the MA window separation to ensure better sensitivity to price trends, while increasing the lookback period to accommodate these changes. These adjustments should significantly improve capital allocation by allowing more signals to pass through the pipeline. 
