Case studies

Case study: Crypto CFD bot on MT5

Crypto volatility made a fixed pip-based stop meaningless, and the team's reporting was always out of date.

  • BTCUSDMarket
  • H1TF
  • MT5Platform
  • 10 weeksDelivery window
  • 5Deliverables
Backtest and forward test method

The client's idea

Kian Quant Team works BTCUSD on H1; the opening brief was: Run our own gridless strategy on MT5, ideally reporting to our journal hourly.

Project and starting point

Crypto volatility made a fixed pip-based stop meaningless, and the team's reporting was always out of date.

Solution architecture

ATR-based stops, a volatility filter to skip directionless stretches, and a regular status push to the team's journal over a webhook.

ATR is the shared language across symbols, letting the team compare the same parameter across several markets. It matches how BTCUSD is actually traded and can be tested against the data already available.

Why this design

ATR is the shared language across symbols, letting the team compare the same parameter across several markets. It matches how BTCUSD is actually traded and can be tested against the data already available.

Implemented capabilities

Modules and components built: Periodic reporting + volatility filter.

Delivered output:
Crypto CFD bot on MT5 — BTCUSD (H1)
Specification document and the rule-to-code mapping table
Full MQL5 source, commented
Test report: Four years of crypto data
Parameter document and install guide (10 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: Four years of crypto data.

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, reporting webhook, H1 and M15 data.

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

One build now runs three crypto symbols, the team's journal updates hourly, and the test drawdown came in below their manual version.

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 BTCUSD filters.

Portfolio

Measured results

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

  • 4 years Test window
  • 14.2 % Max drawdown in test
  • 3 Symbols covered
  • 9 scenarios Scenario test coverage