Skip to main content

How to Document and Version Your Trading Bot

Learn how to name versions, record changes, save test settings and results, and keep your Profectus trading bot projects organized.

Short answer

Give every meaningful bot change a clear version and record what changed, why it changed, and how it was tested.

At minimum, save the strategy rules, symbol, timeframe, inputs, test period, costs, test model, key results, and next decision. Good documentation helps you reproduce a result, compare versions fairly, and explain a problem to support.

Why documentation matters

Without a test record, a promising backtest may be impossible to reproduce. You may also repeat an old experiment or forget why a filter was added.

Documentation becomes more important when:

  • a strategy has several inputs or variables;

  • several people work on the same project;

  • multiple bots run on one MetaTrader account;

  • the bot is tested with different brokers or symbols; or

  • you return to the project after several weeks.

Give the project a clear name

Use a name that explains the strategy and market.

Examples:

  • EURUSD London Breakout

  • Gold Mean Reversion

  • US Index Trend Pullback

Avoid names such as New Bot, Test 4, or Final Final.

Use simple version numbers

Start with a basic version such as v0.1. Increase the version when a meaningful rule changes.

Example:

  • v0.1 — first working entry and exit

  • v0.2 — spread check added

  • v0.3 — stop-loss calculation changed

  • v0.4 — time filter added

Do not create a new version for a spelling correction. Do create one when the trading behavior may change.

Record what changed

For each version, write one short change note.

Good:

Added a session filter so new trades can only open between 08:00 and 16:00 broker server time.

Weak:

Improved the bot.

The note should allow another person to understand the difference without opening both projects side by side.

Save the test setup

Record:

  • project and version name;

  • test date;

  • symbol and broker symbol name;

  • timeframe;

  • historical period;

  • Profectus or MetaTrader test environment;

  • MetaTrader test model where relevant;

  • starting balance and position-sizing method;

  • spread, commission, and other costs;

  • all changed inputs; and

  • any special data or time-zone assumptions.

A result without its test setup is not fully reproducible.

Save the result and the decision

Keep the report or screenshots with the version record. Summarize:

  • trade count;

  • Profit Factor, which is total gross profit divided by total gross loss;

  • net result;

  • balance and equity drawdown where available;

  • win rate;

  • unusual trades or errors; and

  • the next decision.

Use a clear decision such as:

  • continue testing;

  • fix a logic issue;

  • compare another setting;

  • test on unseen data;

  • park the idea; or

  • stop development.

Use Project Properties

Profectus Project Properties can store useful identifying information such as:

  • project title;

  • version number;

  • description;

  • website or documentation link; and

  • Magic Number.

A Magic Number identifies a bot or strategy inside MetaTrader. Give independent bots different Magic Numbers when they run on the same account so they do not manage each other's trades.

If one bot has several entries that need separate management, use Group Numbers for those entries. Group Numbers and Magic Numbers solve different problems.

Keep the Builder readable

Use clear names for inputs, variables, and important blocks.

For example:

  • Max_Spread is clearer than Var1;

  • London_High is clearer than PriceA; and

  • Buy Breakout Entry is clearer than an unchanged generic block title.

Add descriptions where the purpose is not obvious. Treat the project as if another person will need to understand it later.

A simple record template

Copy this structure for each meaningful version:

Project

  • Name:

  • Version:

  • Strategy purpose:

  • Change in this version:

Test setup

  • Symbol and timeframe:

  • Test period:

  • Test environment and model:

  • Position sizing:

  • Costs:

  • Inputs:

Result

  • Trade count:

  • Profit Factor:

  • Drawdown:

  • Win rate:

  • Notes or errors:

Decision

  • Continue, fix, park, or stop:

  • Next test:

Common mistakes

  • Overwriting the only copy of a working project.

  • Saving a report without its inputs or test period.

  • Using the same Magic Number for independent bots.

  • Changing several rules without recording them.

  • Naming versions only by result, such as Best Version.

  • Keeping only good tests and losing the history of rejected changes.

Related Profectus guidance

Backtested and past performance do not guarantee future results. This article is educational and is not financial or investment advice.

Did this answer your question?