---
title: "Custom MetaTrader 5 trading robot development · Oxarus Quant"
description: "Tell us how you enter, manage and exit a trade, and we'll write a robot, indicator or panel for MetaTrader 5 built for you alone."
url: https://oxarus.com/en/quant/robots
key: quant-robots
route: /quant/robots
unit: quant
locale: en
status: live
alternates:
  tr: https://oxarus.com/tr/quant/robots
  en: https://oxarus.com/en/quant/robots
documents:
  json: https://oxarus.com/machine/en/quant/robots.json
  jsonld: https://oxarus.com/machine/en/quant/robots.jsonld
  txt: https://oxarus.com/machine/en/quant/robots.txt
schema: oxarus.machine/2.0
---

# Custom MetaTrader 5 trading robot development · Oxarus Quant

> Tell us how you enter, manage and exit a trade, and we'll write a robot, indicator or panel for MetaTrader 5 built for you alone.

Breadcrumbs: [Oxarus home](https://oxarus.com/en) › [Oxarus Quant](https://oxarus.com/en/quant) › [Custom Robots](https://oxarus.com/en/quant/robots)

## Notices

- Interface data marked as representative is illustrative; it is not a real client, result or measurement.
- Not investment advice. Trading in financial markets carries a risk of losing capital.

## Sections

- [your rules, run by a robot.](#hero)
- [just describe it.](#builder)
- [the robot's journey.](#journey)
- [beyond the robot.](#catalog)
- [what we do and don't.](#honest)
- [tell us about your method.](#cta)

<a id="hero"></a>
<!-- section:hero component:RobotsHero kind:hero sources:messages:quantRobots.hero -->

## your rules, run by a robot.

_QUANT · CUSTOM ROBOTS_

Have a method you've been running by hand for years? Walk us through your entry, stop, trade management and exit rules. We'll write a MetaTrader 5 robot built for you alone.

<https://oxarus.com/en/quant/robots>

- [Describe your strategy](https://oxarus.com/en/quant/robots#cta-heading) → `open_page(path="/quant/robots", anchor="cta-heading")`
- [How to describe it](https://oxarus.com/en/quant/robots#brief) → `open_page(path="/quant/robots", anchor="brief")`

- Your strategy, coded for you alone
- Specification first, code second
- We work under an NDA

1. Your rules
2. Code
3. On the chart

<!-- demo:start messages:quantRobots.hero.demo -->
_Representative interface data_ · Representative screen. Not investment advice.

- **window:** MetaTrader 5
- **symbol:** EURUSD · H1
- **briefTitle:** Client notes

- _Entry_
  - **text:** With price above the 50 EMA, buy when a green candle engulfs the red one.
- _Stop_
  - **text:** Stop 5 pips below the last swing low.
- _Manage_
  - **text:** Once 20 pips in favor, move the stop to break-even, then trail it 15 pips behind.
- _Risk_
  - **text:** 1% of balance per trade. No new trades during news hours.

- **file:** ClientTrendPullback.mq5
- **running:** Robot running
- **entry:** Buy
- **sl:** Stop
- **be:** Break-even
- **trail:** Trailing stop

File · View · Insert · Charts · Tools · Window · Help

M1 · M5 · M15 · M30 · H1 · H4 · D1 · W1 · MN

- **algo:** Algo Trading

- Trade
- Exposure
- History
- Journal
- Experts

- **waiting:** Waiting for the approved specification…

- compiling ClientTrendPullback.mq5
- including RiskSizing.mqh, NewsWindow.mqh
- 0 errors, 0 warnings, 312 msec elapsed

- ClientTrendPullback (EURUSD,H1) initialized
- entry condition met: bullish engulfing above EMA(50)
- order #1042 buy 0.42 EURUSD at 1.08736, sl 1.08512
- position #1042 stop moved to break-even 1.08736
- position #1042 trailing stop 1.08921

<!-- demo:end -->

<a id="builder"></a>
<!-- section:builder component:StrategyBuilder kind:content anchor:#brief sources:messages:quantRobots.builder -->

## just describe it.

_SPECIFICATION_

No coding required. Pick your rules or add one in your own words; the robot's specification, its MetaTrader inputs and the test list update as you choose.

<https://oxarus.com/en/quant/robots#brief>

- **How should it enter a trade?**
  - Moving average crossover
  - Support / resistance breakout
  - At a set time, on a set condition
- **How should the trade be managed?**
  - Fixed stop and target
  - Break-even, then trailing stop
  - Partial take-profits
- **Position size?**
  - Fixed lot
  - Percent of balance
- **When should it stay out?**
  - Around major news releases
  - During the Asian session
  - Friday evening

**Specification**

- A buy opens when the fast average crosses above the slow one; a sell opens when it crosses below.
- A buy opens when price closes above the highest high of the last 20 candles; a sell opens when it closes below the lowest low.
- At the set time, a single trade opens if the defined condition is met.

- Every trade opens with a fixed stop and a fixed target.
- Once price moves in favor, the stop moves to the entry level, then trails at a set distance.
- Part of the position closes at the first target, and the rest at the second.

- Every trade opens with the set fixed lot.
- Lot size is calculated from the stop distance so each trade risks the set percentage of balance.

- No new trades from 30 minutes before to 30 minutes after major news.
- No new trades during the Asian session.
- No new trades after 20:00 on Friday.

#### MetaTrader inputs

#### How the rules play out on the chart

- The conditions under which the robot enters
- How an open trade is protected and closed
- How much is risked on each trade
- Optional: times to stay out of the market

- **Your own rule** · _clarified on the call_
  - **placeholder:** e.g. Close all trades at the Friday close
  - **clear:** Clear

**Behavior tests**

- **state:** ready to test

_Interface labels:_ Specification completeness · updated · Optional: a rule the options don't cover

<a id="journey"></a>
<!-- section:journey component:RobotJourney kind:steps anchor:#journey-heading sources:messages:quantRobots.journey -->

## the robot's journey.

_PROCESS_

We get your sign-off at the end of every step. No rule goes into the code unless we've agreed on it.

<https://oxarus.com/en/quant/robots#journey-heading>

1. **Discovery call** · _NOTES_
   We walk through your method together, using example trades on the chart.
   - _Representative interface data_ · Representative
     **What this step produces**
     - **file:** call-notes.md
     - _Method_
       - **v:** Buy pullbacks to the 50 EMA in the trend direction
     - _Example trades_
       - **v:** Entries and exits marked on the chart
     - _Open question_
       - **v:** Is the stop measured from the last swing low or the last two?
     - _Open question_
       - **v:** Which calendar defines news hours?
2. **Specification** · _SIGN-OFF_
   Every rule becomes a clear sentence, with nothing left ambiguous. You approve it.
   - _Representative interface data_ · Representative
     **What this step produces**
     - **file:** SPEC-0142 · rev 04
     - _§1 Entry_
       - **v:** Buy on a bullish engulfing candle above the 50 EMA
     - _§2 Stop_
       - **v:** 5 pips below the last swing low
     - _§3 Manage_
       - **v:** Break-even after 20 pips, then a 15-pip trailing stop
     - _§4 Risk_
       - **v:** 1% of balance per trade; no new trades during news hours
     - _Sign-off_
       - **v:** Approved by the client
3. **Code** · _MQL5_
   The robot is written in MQL5. Inputs come with names that make sense to you.
   - _Representative interface data_ · Representative
     **What this step produces**
     - **file:** ClientTrendPullback.mq5
     - _Compile_
       - **v:** 0 errors, 0 warnings
     - _Inputs_
       - **v:** InpRiskPercent · InpEmaPeriod · InpStopBufferPips
     - _Modules_
       - **v:** RiskSizing.mqh · NewsWindow.mqh
     - _Traceability_
       - **v:** Every spec clause links to its place in the code
4. **Behavior test** · _TEST_
   In the Strategy Tester, we verify trade by trade that the robot follows your rules exactly.
   - _Representative interface data_ · Representative
     **What this step produces**
     - **file:** Strategy Tester · EURUSD,H1
     - _§1 Entry_
       - **v:** Entry condition verified on every trade
     - _§2 Stop_
       - **v:** Stop placed at the rule's level on every trade
     - _§3 Manage_
       - **v:** Break-even and trailing steps follow the rule
     - _§4 News_
       - **v:** No new trades opened inside the news window
5. **Delivery and setup** · _DELIVERY_
   We deliver the compiled, licensed .ex5 file with setup notes. The scope of post-delivery fixes is set in the contract; source code comes under a separate agreement.
   - _Representative interface data_ · Representative
     **What this step produces**
     - **file:** Delivery package
     - _ClientTrendPullback.ex5_
       - **v:** Compiled, licensed robot
     - _Setup notes_
       - **v:** What each input does and how to install
     - _Test report_
       - **v:** Rule checks from the Strategy Tester
     - _Fix support_
       - **v:** Scope agreed in the contract
     - _ClientTrendPullback.mq5_
       - **v:** Source code, under a separate agreement

The next step starts once you sign off.

_Interface labels:_ Previous step · Next step

<a id="catalog"></a>
<!-- section:catalog component:FileCatalog kind:features anchor:#catalog-heading sources:messages:quantRobots.catalog -->

## beyond the robot.

_WHAT WE BUILD_

Besides robots, we write indicators, scripts, panels and alert services, and port older robots to MT5. Pick a file.

<https://oxarus.com/en/quant/robots#catalog-heading>

- **Trading robot**
  A robot that opens, manages and closes trades according to your rules.
  - **folder:** Experts
  - **file:** Robot.ex5
  - **Example:** A robot that scales in on trend reversals
  - **Inputs:** 14
  - **Platform:** MT5
  - **Delivery:** .ex5
  - **kind:** Expert Advisor
- **Custom indicator**
  An indicator that draws your own levels, zones or calculations on the chart.
  - **folder:** Indicators
  - **file:** Indicator.ex5
  - **Example:** An indicator that plots the previous day's levels automatically
  - **Inputs:** 8
  - **Platform:** MT5
  - **Delivery:** .ex5
  - **kind:** Custom Indicator
- **One-off script**
  Short tools you run once to get a specific job done.
  - **folder:** Scripts
  - **file:** Script.ex5
  - **Example:** A script that closes every open trade in one click
  - **Inputs:** 3
  - **Platform:** MT5
  - **Delivery:** .ex5
  - **kind:** Script
- **Trading panel**
  A panel that calculates lot size and sets stop and target by dragging them on the chart.
  - **folder:** Experts
  - **file:** Panel.ex5
  - **Example:** A panel that sizes lots from a risk percentage
  - **Inputs:** 11
  - **Platform:** MT5
  - **Delivery:** .ex5
  - **kind:** Expert · Panel
- **Alerts and notifications**
  Notifies you by phone, email or Telegram when a condition is met.
  - **folder:** Services
  - **file:** Alert.ex5
  - **Example:** A service that messages Telegram when a level breaks
  - **Inputs:** 6
  - **Platform:** MT5
  - **Delivery:** .ex5
  - **kind:** Service
- **Migration and fixes**
  We port your MetaTrader 4 robot to MT5, and fix robots that don't work.
  - **folder:** Experts
  - **file:** MT4\_to\_MT5
  - **Example:** An MT5 version of a legacy MT4 robot
  - **Inputs:** —
  - **Platform:** MT4 → MT5
  - **Delivery:** .ex5 + report
  - **kind:** Port & fix

- **Delivery**
  - **ex5:** Compiled, licensed .ex5
  - **ex5 tag:** Default
  - **mq5:** Source code (.mq5)
  - **mq5 tag:** Separate agreement

<a id="honest"></a>
<!-- section:honest component:HonestTerms kind:content anchor:#honest-heading sources:messages:quantRobots.honest -->

## what we do and don't.

_STRAIGHT TALK_

<https://oxarus.com/en/quant/robots#honest-heading>

**We do**
- Turn the strategy you describe into code, exactly
- Test that the robot follows the rules
- Keep your code and strategy confidential
- Provide fix support after delivery

**We don't**
- Suggest strategies or call market direction
- Promise profits
- Manage your account or touch your trades
- Sell the same robot to anyone else

**MQL5 seller profile**

We hold a verified seller account in the MQL5 community. A robot written for you is never listed on the Market; it is delivered to you alone.

- **Account:** Verified seller
- **Platform:** MetaTrader 5
- **Delivery:** Licensed .ex5
- **Source code:** By separate agreement

**Market · Seller profile**

- **handle:** MQL5 Market · Seller · Oxarus

##### Oxarus

- **monogram:** OX

_Verified seller_

- **platform:** MetaTrader 5

- **Experts**
  - **code:** EA
- **Indicators**
  - **code:** IND
- **Utilities**
  - **code:** UTIL

- **file meta:** MT5 · .ex5

Licensed .ex5 · Source code by agreement · Custom work stays private

> Not investment advice. Trading in financial markets carries a risk of losing capital.

**We do**
- Each rule maps to code, point by point. Delivery is a compiled, licensed .ex5 file; source code comes under a separate agreement.
- A Strategy Tester report shows that every rule triggers correctly.
- An NDA is signed before any work begins.
- Bugs found after delivery are logged and fixed; the scope of that support is set in the contract.

**We don't**
- The strategy is yours; we only code the rules you define.
- No robot can know future outcomes, and we won't write anything that claims to.
- We never ask for your account details; you run the robot in your own terminal.
- A robot written for you is never sold to another client.

<a id="cta"></a>
<!-- section:cta component:StudioCta kind:cta anchor:#cta sources:messages:quantRobots.cta -->

## tell us about your method.

_ROBOT_

Write out your rules in a few sentences and, if you can, attach screenshots of example trades. We'll pin down scope and timeline, then get back to you.

<https://oxarus.com/en/quant/robots#cta>

- [Describe your strategy](https://oxarus.com/en/contact?start=quant) → `start_project_brief(topic="quant")`
- [info@oxarus.com](mailto:info@oxarus.com?subject=Custom%20robot) → `contact(subject="Custom robot")`

## Actions

- [Describe your strategy](https://oxarus.com/en/quant/robots#cta-heading) → `open_page(path="/quant/robots", anchor="cta-heading")`
- [How to describe it](https://oxarus.com/en/quant/robots#brief) → `open_page(path="/quant/robots", anchor="brief")`
- [Describe your strategy](https://oxarus.com/en/contact?start=quant) → `start_project_brief(topic="quant")`
- [info@oxarus.com](mailto:info@oxarus.com?subject=Custom%20robot) → `contact(subject="Custom robot")`
- [Türkçe](https://oxarus.com/tr/quant/robots) → `switch_locale(locale="tr", path="/quant/robots")`

## Related pages

- [Oxarus Quant](https://oxarus.com/en/quant)
