- Spread guard: skip entry when spread > 60 pts (3x normal for XM)
- Break-even: auto-move SL to entry price when profit exceeds 1x ATR
- ATR multiplier cap: SL capped at max 5x ATR, TP at max 10x ATR
(prevents absurd SL/TP from misconfigured bots)
Co-Authored-By: Claude <noreply@anthropic.com>
- find_mt5_symbol: broker-specific priority (XM/MetaQuotes/Exness/etc)
was overwriting symbol_variants for ALL symbols, not just XAUUSD.
EURUSD/GBPUSD/etc were being mapped to GOLD on XM broker.
Fixed by guarding with base_symbol_cleaned == 'XAUUSD' check.
- place_trade: ORDER_FILLING_FOK → ORDER_FILLING_IOC for broker
compatibility (XM and most forex brokers use IOC, not FOK).
Co-Authored-By: Claude <noreply@anthropic.com>
- MA Crossover: now shows trend direction+strength, price position vs MAs
- RSI Crossover: now shows RSI zone (overbought/neutral/oversold), gap from MA
- Bollinger Reversion: now shows BB width, price position within bands
- Turtle Breakout: now shows channel width, volatility assessment, price position
All strategies now explain WHY they're holding instead of just saying 'no signal'
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix health check: mt5.isinitialize() → mt5.terminal_info() (was crashing)
- Bump MetaTrader5 5.0.5120 → >=5.0.5735 (old version removed from PyPI)
- README: add dev status note, restructure strategy table with 14 active
- README: Hybrid & Crypto reclassified as Intermediate (not Expert)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit provides a comprehensive fix for the Vercel deployment, addressing multiple issues:
1. **Added Build Configuration:**
A `builds` section was added to `vercel.json` to explicitly instruct Vercel to use the `@vercel/python` builder for the `api/app.py` entry point. This resolves the 404 "NOT_FOUND" error.
2. **Corrected `vercel.json` Syntax:**
Fixed a syntax error by removing a duplicated `env` block and an extra closing bracket, which previously caused a JSON parsing failure.
3. **Resolved Dependency Conflict:**
Upgraded `numpy` to version `1.26.0` in `pyproject.toml` to satisfy the dependency requirements of `pandas`, resolving a package installation failure during the build process.
This commit addresses two issues that were causing Vercel deployments to fail:
1. **Corrected `vercel.json` syntax:**
Removed a duplicated `env` block and an extra closing bracket to resolve a JSON parsing error.
2. **Resolved dependency conflict:**
Upgraded `numpy` from version `1.23.5` to `1.26.0` in `pyproject.toml` to satisfy the version requirement for `pandas==2.3.1`.
- Updated "last_check" from 2025-10-09 to 2025-10-16 to reflect the most recent verification time. This helps track the latest broker status update automatically.
- Streamlined .env.example to include only essential Flask and MT5 configs for production environments
- Added .vercel directory to .gitignore for clean Vercel deployments
- Enabled internationalization by adding data-i18n attributes to strategy switcher UI elements
- Updated MT5 setup guide and roadmap documentation for clarity and current focus
This change simplifies configuration for server deployment while enhancing UI accessibility across languages.
The is_market_open method in the cTrader broker now accurately reflects forex market hours (Sunday 22:00 UTC to Friday 22:00 UTC). The previous implementation was a naive check that didn't account for the specific open and close times.