Money Maker
A research-grade forex system: backtesting, risk management and execution as separate engines.
- Engagement
- R&D project
- Industry
- Trading & Quantitative Research
- Year
- 2026
The challenge
Retail forex traders make decisions from screenshots and instinct, then have no way to know whether a strategy worked or they simply got lucky. The missing piece is not another signal generator. It is reliable infrastructure for testing a strategy before risking money.
Our approach
We built five independent engines for data, features, models, risk and execution. Tight coupling is a common failure in trading systems. It can let a backtest see future data or entangle risk logic with signals so neither can be tested alone. Each engine is separately testable, which makes the backtest results meaningful.
What it had to achieve
- Test a strategy against history without lookahead bias
- Separate risk management from signal generation
- Make model features reproducible rather than ad hoc
- Keep execution swappable across brokers
Architecture
The decisions that made the rest possible.
Feature engine separate from model training
Features are computed once and reused across models, so two models are compared on identical inputs rather than on subtly different preprocessing.
Risk engine independent of signals
Position sizing and exposure limits are enforced downstream of any strategy, so a bad signal cannot bypass risk rules.
Backtester with strict time ordering
The backtest replays data in sequence and refuses access to future bars, which is the difference between a result and a fantasy.
Execution behind an adapter
Broker connectivity is architected as an interface (OANDA, MT5), so changing venue does not touch strategy or risk code.
What we delivered
- Data engine for market data ingestion and storage
- Feature engine producing reusable, versioned features
- Model layer using scikit-learn and XGBoost
- Risk management engine with position sizing and exposure limits
- Backtester enforcing strict time ordering
- Execution engine architected for OANDA and MT5 connectivity
Outcomes
What changed once it was live.
- Strategies are evaluated against history without lookahead contamination
- Risk rules apply regardless of which strategy produced a signal
- Models are comparable because they share one feature pipeline
What we would do differently
Every project teaches something. Publishing it is how you tell whether a team is reflecting or just selling.
- Most retail trading systems fail at the backtester, not the model. Enforcing time ordering strictly, even when inconvenient, is the whole value of the exercise.
- Keeping risk downstream and independent means it can be tested in isolation. That is where the real protection comes from.
Let's find out if this is worth building.
A 45-minute discovery call, free. You describe the problem, we tell you honestly what it takes, what it costs, and whether you should build it at all.