What hardware do you need?
You have two options. Both work — it depends on your budget and whether you want everything on one machine.- Option A — One machine
- Option B — Two machines (recommended)
One Linux VPS runs everything: the MT5 REST API (in Docker) and the trading bot.
Suitable cloud VPS: Hetzner CX21 (€4/mo), DigitalOcean 4 GB Droplet ($24/mo), Vultr 4 GB, AWS t3.medium, Azure B2s.The live bot (
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4 cores |
| RAM | 4 GB | 8 GB |
| Disk | 20 GB SSD | 40 GB SSD |
| OS | Ubuntu 22.04 | Ubuntu 22.04 |
trading.py) uses under 300 MB RAM at runtime.MT5 requires Windows. On a Linux-only VPS you run the MT5 REST API inside a Wine-based Docker container. See the MT5 server setup guide.
One-time setup (~3 hours)
Recommended: run
python scripts/onboarding.py as your very first step. It checks your Python environment, validates .env credentials, tests the MT5 API connection, pulls model files from R2, and sets your risk profile — all in one command.Pull the trained models
models/. Takes under a minute.Set your risk profile (1-5) without retraining
--profile 1 to --profile 5 directly. If you run onboarding without --profile, it can ask a questionnaire and recommend one.Profile map:| Profile | Name | Risk/trade | Hard halt |
|---|---|---|---|
| 1 | Steady Income | 0.5-1.0% | 20% |
| 2 | Conservative | 1.0-1.5% | 30% |
| 3 | Balanced | 1.5-2.0% | 45% |
| 4 | Growth | 2.0-3.0% | 55% |
| 5 | Aggressive | 3.0-4.0% | 65% |
If onboarding asks to run optimization now, choose
n in trader mode.Pull the approved revision
Weekly routine for traders
Your weekly routine is simple: keep bot running, monitor alerts, and pull new approved revisions.If the bot stops unexpectedly
Hard drawdown halt (Telegram alert + exit code 99)
You receive:Bot crashed (not a halt)
Changing your risk profile
| Flag | Profile | Risk/trade | Hard halt |
|---|---|---|---|
--profile 1 or --profile steady | Steady Income | 0.5-1.0% | 20% |
--profile 2 or --profile conservative | Conservative | 1.0-1.5% | 30% |
--profile 3 or --profile balanced | Balanced | 1.5-2.0% | 45% |
--profile 4 or --profile growth | Growth | 2.0-3.0% | 55% |
--profile 5 or --profile aggressive | Aggressive | 3.0-4.0% | 65% |
When to do what
| Situation | Action |
|---|---|
| Bot is running, Telegram shows trades | Nothing — all good |
| Developer announces new approved revision | Pull revision + restart bot |
| Telegram: Hard Drawdown Halt | Update starting_balance_usd, optionally lower profile, restart |
| PM2 shows bot crashed | pm2 logs novosky --lines 100 to diagnose |
| You withdrew funds from MT5 | Update risk_profile.starting_balance_usd in config.json |
| You deposited more funds | Update risk_profile.starting_balance_usd in config.json |
What you never need to touch
ml/directory — model training codemodels/*.pkl/*.onnx— model binaries (managed byr2_hub.py)backtest/— backtesting codeml_config.jsonfeatures list — managed by developer optimization pipeline
config.json (risk profile, starting balance) and .env (API credentials).