Architecture options
NOVOSKY offers three deployment options. The Go binary option is the simplest for end-users β no Python, no model management, just a single executable.- Go binary (simplest)
- Option A β Single machine
- Option B β Two machines (recommended)
The compiled binary has all ML models embedded. Customers receive three files.What the customer gets:See Go binary for the full reference.
Hardware requirements (trading only β no retraining):
The Go binary is orders of magnitude lighter than the Python bot. No scikit-learn, no LightGBM, no GPU needed.Setup:
GPU note
Training uses a GPU when one is available via LightGBMβs CUDA backend and XGBoostβsdevice=cuda. Without a GPU, training falls back to CPU automatically β no configuration change needed.
If running on Azure or another hypervisor VM, GPU passthrough requires a specific VM type (e.g. Azure NC-series, not the default B/D/E series which have only virtual VGA). CPU-only is perfectly viable for weekly retraining.
MT5 REST API setup
The bot does not use the MetaTrader5 Python package. All broker communication goes through a self-hosted HTTP API running on port 6542.1
Install MetaTrader 5 on your Windows VM
Download and install MT5 from your brokerβs website. Log in with your trading account credentials.
2
Install Docker
3
Pull and run the MT5 REST API container
<your_account_number>, <your_password>, <broker_server_name> with your MT5 credentials.
Set <choose_a_secret_token> to a long random string β this is the API_TOKEN in your .env on the Linux VM.4
Verify connectivity
From your Linux VM:
If you are using a broker-provided hosted VPS with MT5 pre-installed, skip Docker and configure the API container to connect to the already-running MT5 terminal.
Linux VM setup
Process management (PM2)
PM2 keeps the trading bot running continuously and restarts it if it crashes (but not after a hard halt βsys.exit(99) is intentional).
ecosystem.config.js is pre-configured for trading.py. It reads .env automatically at startup.