Custom Trading Systems • MT4 / MT5

Custom trading bot and expert advisor development for MetaTrader

EA LIFECYCLE Six stages from raw data to a trade journal RUNNING
01
EA LIFECYCLE

Illustrative simulation; the data is demo only, not real performance.

TICK
Journal
  1. EURUSD M15 ticks received — spread 0.8 pip
  2. London session confirmed • volatility inside band
  3. Buy signal confirmed: EMA cross + RSI 54
  4. Risk 1% approved → lot size 0.42
  5. Order placed: Buy 0.42 @ 2361.40 • SL 2353.20
  6. Stop moved to break-even — event written to journal
Scroll to enter the site

Architecture

Built on the stack traders actually run

The deliverable runs on your platform, so everything is built around MetaTrader, the MQL languages and standard testing tools.

  1. MetaTrader 4 MQL4 / EA / Indicator / Script
  2. MetaTrader 5 MQL5 / EA / Panel / Custom module
  3. Strategy Tester Backtest / Optimization / Walk-forward
  4. VPS / Deployment Setup / Monitoring / Handover

Module stack of every EA

Each module is tested independently and switched on or off per project.

  • Signal Engine

    Entry, exit, confirmation, multi-timeframe, multi-symbol

  • Risk Engine

    Risk/trade, equity stop, daily loss, max DD, position limit

  • Execution Engine

    Market/pending, spread, slippage, retry, magic number

  • Position Manager

    Break-even, trailing, partial close, basket

  • Filter Engine

    Session, spread, volatility, news, trend, account rules

  • Trade Journal

    Logging, error codes, state tracking, event history

  • Monitoring

    Dashboard, alerts, status, health check

  • Configuration

    Inputs, presets, safe defaults, validation

Manual → Automated

Manual trading vs systematic execution

The goal is not to remove the human; it is to shrink the gap between the written rule and live behaviour.

Manual trading

  • FOMO
  • Entry hesitation
  • Overtrading
  • Inconsistent size
  • Forgotten stop loss
  • Late execution
  • Decision under pressure

Automated / systematic execution

  • Predetermined rules
  • Signal check
  • Max positions
  • Position sizing
  • Risk rules
  • Rule-based execution
  • Logged process

Execution storyboard

Each stage plays itself to completion so you can see exactly what happens.

Execution storyboard 01 / 06
01

The rules you found on the chart: when to enter, where to exit, what counts as a mistake.

Problem

A good strategy stops being the same strategy without disciplined execution.

Hesitation, FOMO, overtrading, forgotten risk rules and late execution widen the gap between what is written down and what actually happens on the chart.

Diagnosis file

The five gaps that show up in project after project.

  1. Emotion and FOMO

    Entering without the strategy condition, exactly at the worst price.

    Systematic counterpart Entry only on a written condition
  2. Inconsistent execution

    The same rule gets executed two different ways on two different days.

    Systematic counterpart One rule for every trade
  3. Manual errors

    Wrong size, forgotten stop loss, stop moved for no reason.

    Systematic counterpart Size and stop calculated for you
  4. Unmeasurable risk

    Without logs and fixed rules there is no way to review real performance.

    Systematic counterpart Fixed risk ceiling and a log of every decision
  5. Limited scalability

    Several symbols and timeframes cannot be managed manually at once.

    Systematic counterpart Several symbols and timeframes at once

Solution

Turn your trading rules into an executable system.

TradeBotLab turns your trading logic into a dedicated Expert Advisor for MT4 or MT5: from analysis and specification to development, backtesting, forward testing and delivery.

From idea to production system

Every step has a deliverable, and none of them moves on without your sign-off.

  1. 01 Strategy Logic and constraint analysis
  2. 02 Specification Entry / exit / risk / filters
  3. 03 MQL4 / MQL5 Modular development
  4. 04 Risk Layer Hard, non-negotiable limits
  5. 05 Backtest Defined data window
  6. 06 Forward Test Demo environment
  7. 07 Deployment VPS / settings / handover
Three words that define our positioning

These are not slogans: each one is testable in every project we run.

  • Custom

    No off-the-shelf bots: the system is built around your logic.

    Built on your account and your logic
  • Engineering

    Modular architecture, maintainable code and usable documentation.

    Independent modules, documented
  • Testing

    Backtests and scenario tests with a transparent report before going live.

    Test report with stated conditions

All three are verifiable in the project document.

Services

Services that complete a trading system

Pricing follows a review of requirements, complexity, module count, platform and testing depth; delivery time is quoted per project.

11 TradeBotLab services Pricing model

Interactive EA

See the strategy before you order

This interactive widget runs a sample strategy on the chart — no order needed, just to make Entry, Risk and Execution structure tangible.

ENTRY CONDITIONS
Filters
RISK
Trades
—
Rule matched
—
Filtered out
—
Max DD (sim)
—

Illustrative only — not a real trading result.

Process

A nine-step process with defined outputs

No stage moves forward without your sign-off.

  1. 01

    Discovery

    Collect strategy, goals, market and constraints

    Acceptance Written project brief
  2. 02

    Specification

    Define entry/exit/risk/filters

    Acceptance Spec approved
  3. 03

    Architecture

    Module design and EA structure

    Acceptance Architecture approved
  4. 04

    Development

    MQL4/MQL5 implementation

    Acceptance First build
  5. 05

    Test

    Backtest, error and scenario testing

    Acceptance Test report
  6. 06

    Optimization

    Optimization within contract scope

    Acceptance Final parameters
  7. 07

    Forward Test

    Demo / forward environment run

    Acceptance Period report
  8. 08

    Delivery

    Files, docs and source per contract

    Acceptance Formal handover
  9. 09

    Support

    3–12 months support per project

    Acceptance Agreed channel

Risk Engine

Risk engine at code level, not slogan level

Risk rules are implemented as controllable, testable system behaviour so execution no longer depends on the trader's in-the-moment decision.

100% Risk control coverage

Active rules against every rule implemented in the sample system.

Toggle a control to see how the system behaves.

Backtest

Testing is part of delivery, not a claim

Test reports state the data window, commission, spread, tick model and known limitations — a number without measurement conditions means nothing.

Equity curve

  1. Historical backtest
  2. Optimization
  3. Forward test (demo)
  4. Deployment
Data window
2019–2024 • M15
Test model
Every tick based on real ticks
Spread / commission
Variable + commission
Test stages
Backtest → optimization → forward

Portfolio

Portfolio

Every project can be shown from specification to test report.

TBT-1401-01 MT5 Personal trader

Gold trend expert advisor

Initial challenge Late entries and inconsistent position sizes during manual M15 execution — worst in the Asian session, when the client is asleep.

Market
XAUUSD
TF
M15
Strategy
Trend + EMA + RSI

Modules Risk engine + trailing

Testing Backtest + forward test

TBT-1401-02 MT5 Professional trader

Multi-symbol expert advisor

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…

Market
EURUSD / GBPUSD / USDJPY
TF
M30
Strategy
Breakout + session filter

Modules Basket risk

Testing Optimization

TBT-1401-03 MT5 Prop trader

Prop account risk manager

Initial challenge Challenge accounts carry daily and overall drawdown limits, but none of them were enforced in code — one bad day could end the acco…

Market
XAUUSD / US30
TF
M5
Strategy
Risk layer independent of the signal

Modules Daily loss cap + circuit breaker

Testing Critical scenario testing

TBT-1402-04 MT4 Professional trader

Automated indicator signal on NAS100

Initial challenge The NAS100 and XAUUSD signal was being taken by hand with a visible delay — in the first minutes of the session the entry differed …

Market
NAS100 / XAUUSD
TF
M5
Strategy
Indicator signal + sizing from stop distance

Modules Execution + slippage control

Testing Historical signal comparison

TBT-1402-05 MT5 Professional trader

London session breakout expert

Initial challenge The first minutes of the London session are the most volatile of the day; wide spreads and heavy slippage turned manual entries int…

Market
GBPUSD
TF
M15
Strategy
Range breakout + spread filter

Modules Execution filter + retry

Testing Three-year backtest

TBT-1402-06 MT4 Existing EA owner

Risk guard for a grid expert

Initial challenge The grid expert had worked well in ranging markets for years, but a three-month trend had taken a large part of the account.

Market
EURUSD
TF
M5
Strategy
Basket guard on an existing grid

Modules Drawdown cap + basket close

Testing One-way market scenario test

Testimonials

Project feedback

Every note is published with the project owner's name, role and consent.

Project notes 1 7
  • Project note
    “Turning my entry and exit rules into a documented, testable EA was a very structured process.”
    سارا محمدی Retail trader — Tehran

    Gold Trend EA

  • Project note
    “The risk management layer was designed exactly for my account rules and tested across scenarios.”
    امیرحسین رستگار Prop trader — Dubai

    Prop Risk Manager

  • Project note
    “The new build is far clearer in logging, parameters and trade control — and much easier to extend.”
    نگار شریفی Algorithmic trader — Tehran

    EA modification

  • Project note
    “My grid EA kept opening positions through strong trends with no cap — the guard layer that was added was exactly what I needed.”
    رضا امینی Retail trader — Isfahan

    Grid EA risk guard

  • Project note
    “The multi-symbol signal engine works with session filtering and a basket risk cap, and every decision is traceable in the log.”
    دانیال فیشر Algorithmic trader — Munich

    Multi-Symbol EA

  • Project note
    “Basket management handles index positions, stop movement and partial closes at once, without me stepping in.”
    سارا بنت Prop trader — London

    Index basket position manager

  • Project note
    “Our three modules were migrated to MT5 through a shared order layer, with the behavioural difference against the old build documented and reviewable.”
    مهدی کریمی Trading team lead — Toronto

    MT4 to MT5 portfolio migration

Why TradeBotLab

Why TradeBotLab

Iran's first specialist team dedicated to trading-systems engineering, with more than five years of experience. Our work is custom, engineered and tested before it goes live.

Commitments register More than five years in trading-systems engineering

Every one of these is written into the project agreement

Each commitment is written into the agreement; a verbal promise does not replace it.

  • 01

    Specification before code

    Projects start with a written spec and your sign-off, not a developer's guess.

    Before code
  • 02

    Modular architecture

    Future features can be added without rewriting the whole system.

    Extensible
  • 03

    Transparent test report

    Measurement conditions, data limits and assumptions are always stated.

    Transparent
  • 04

    No profit promises

    No win rate or return figure is published without its measurement conditions.

    No hype
  • 05

    Contractual support

    3 to 12 months of support with a clearly scoped agreement.

    3–12 months
  • 06

    Documented handover

    Parameter guide, settings and usage instructions for the delivered system.

    Documented
3–12 monthsContractual support
SpecificationWritten before any code
Test reportWith the measurement conditions

FAQ

Frequently asked questions

If your question is not answered here, send us the project details.

Common questions The questions that come up in almost every project, with short expert answers.
How much does a custom trading bot cost?
Answer

Pricing follows the project review. Strategy complexity, module count, platform and testing depth all affect the estimate. Send the details and you receive a scope with a time and cost estimate.

How long does delivery take?
Answer

Delivery time is set by project complexity and quoted with the estimate. Fixes and audits are usually faster than building a complete system from scratch.

Who owns the source code?
Answer

Source ownership is defined in the contract and written down there. Third-party dependencies are recorded as well so ownership stays transparent.

Do you work on MT4 or MT5?
Answer

Both. A project can target MT4, MT5 or both; when migrating from MT4 to MT5 the execution and order-management differences are handled explicitly.

Does the bot guarantee profit?
Answer

No. A bot is a strategy execution tool; it does not guarantee strategy quality or the absence of loss. Historical and forward testing cannot guarantee future results either.

What if my strategy is only a rough idea?
Answer

During discovery the idea is turned into implementable rules. Ambiguous points are listed in the specification and sent for your approval.

What does post-delivery support look like?
Answer

Support typically runs 3 to 12 months depending on project size and the contract. Scope, revision count and the communication channel are agreed up front.

Is my strategy kept confidential?
Answer

Yes. Strategy logic is used only to deliver your project, and public portfolio or testimonial content is published only with your written consent.

Knowledge

Algorithmic trading knowledge hub

Platform, testing, risk and development topics.

Articles are coming soon.

Start a project

Your strategy is ready to become a trading system.

Send the strategy details, platform, market and project requirements so we can review the technical scope and estimate the project.

Project request form

Four short steps, then you send the project details.

Fields marked with an asterisk are required.

Platform and project type

Fields marked with an asterisk are required.