Case studies

Case study: Prop account scaling bot

The team ran several challenge accounts with different caps and adjusted risk by hand — one human slip would end an account.

  • US30Market
  • M5TF
  • MT5Platform
  • 8 weeksDelivery window
  • 5Deliverables
Backtest and forward test method

The client's idea

Ayrik Quant Desk works US30 on M5; the opening brief was: Let the bot scale its risk as the account grows — without ever crossing the provider's rules.

Project and starting point

The team ran several challenge accounts with different caps and adjusted risk by hand — one human slip would end an account.

Solution architecture

A state machine with defined risk steps, caps recalculated from the day's equity, and an automatic stop when any provider limit is approached.

The risk steps were written as numbers in the specification, so changing them later is a management decision rather than a code change. It matches how US30 is actually traded and can be tested against the data already available.

Why this design

The risk steps were written as numbers in the specification, so changing them later is a management decision rather than a code change. It matches how US30 is actually traded and can be tested against the data already available.

Implemented capabilities

Modules and components built: State machine + dynamic caps.

Delivered output:
Prop account scaling bot — US30 (M5)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Three growth and drawdown scenarios
Parameter document and install guide (8 weeks)

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.

Backtest and forward test method

Test method: Three growth and drawdown scenarios.

Testing runs in three stages: a backtest on historical data, limited optimisation inside the contract's scope, and a forward run with the parameters frozen.

Tools and stack: MQL5, an equity simulator, state logs.

Every figure from this project is published together with its measurement conditions: the data window, the tick model, the spread, the commission and the build of the executable. Without them a number cannot be compared with anything.

Publishable results

Four accounts now run from one bot, and across the period no account came closer than 30% of its rule ceiling.

Limitations and cautions

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.

Every test result depends on the quality of the historical data, the broker's spread and market conditions, and none of it is a promise about the future. Through a severe price gap or a broker disconnection a stop loss cannot be guaranteed, so behaviour in those conditions must be reviewed separately.

Our next-step proposal

The next step for this project is a monthly performance report and an annual review of the US30 filters.

Portfolio

Measured results

These are the figures the test produced — not a promise about future performance.

  • 2 Concurrent position cap
  • 5.6 % Max drawdown in test
  • 19 Configurable inputs
  • 99.7 % Runtime stability in test