Project specifications
- Market
- EURUSD / GBPUSD / USDJPY
- TF
- M30
- Platform
- MT5
- Client type
- Professional trader
- Delivery window
- 9 weeks
- Stack
- MQL5, market-data service, Python reporting scripts
- Strategy
- Breakout + session filter
- Modules
- Basket risk
- Testing
- Optimization
Who this was for
Rayan Algorithmic Team
- Role
- Three-person algorithmic desk
- City
- Tehran
- Project reference
- TBT-1401-02
The client's idea
Rayan Algorithmic Team works EURUSD / GBPUSD / USDJPY on M30; the opening brief was: One bot for three symbols, without losing sight of the risk across all open positions.
Initial challenge
Running three symbols at once while keeping total exposure in view: each pair behaved on its own, but on volatile days the combined exposure ran away.
Solution
A shared signal core with per-symbol parameters, an account-level basket risk cap, and entry priority ordered by signal strength.
Why this design
One shared core with a separate filter per symbol keeps the code maintainable for a small team. It matches how EURUSD / GBPUSD / USDJPY is actually traded and can be tested against the data already available.
Safeguards and risk control
Per-trade risk is derived from stop distance, the daily loss cap is enforced in code, and the kill switch is independent of the signal logic.
Our next-step proposal
The next step for this project is a monthly performance report and an annual review of the EURUSD / GBPUSD / USDJPY filters.
Portfolio
Measured results
These are the figures the test produced — not a promise about future performance.
- 3 Concurrent position cap
- 3 Symbols covered
- 9.4 % Max drawdown in test
- 27 Configurable inputs
Portfolio
How the delivery ran
Every project moves through these five phases, with the window for each agreed in the specification.
-
Discovery and problem framing
CompletedFraming EURUSD / GBPUSD / USDJPY on M30 and reading back the client's written rules.
Day 2–5
-
Written specification
CompletedTurning the rules into codeable conditions: entries, exits, filters, sizing. The basket risk allocation was written in the specification, separate from each symbol's logic.
Day 6–14
-
Implementation
CompletedBuilding the signal engine, risk module and execution layer as separate, testable pieces.
Day 15–39
-
Testing and validation
CompletedBacktest, forward test and trade-by-trade review on EURUSD / GBPUSD / USDJPY data.
Day 40–55
-
Handover and support
CompletedHandover of the source, the parameter document and a demo-account install.
Day 56–59