NH PRO

How to audit trading-bot execution: orders, fills and costs

How to audit trading-bot execution: orders, fills and costs

How to audit trading-bot execution: orders, fills and costs

Trading execution audit — quotes, orders, fills and costs

A trading robot can detect a situation, send an order and still obtain a different result from the one suggested by the chart. To investigate the difference, follow the complete path: observed quote, decision, order request, broker response and actual fill. A connection indicator or a profitable screenshot cannot replace that record.

This guide provides an execution review sheet for someone preparing to work with NH PRO. It separates execution quality from strategy performance and shows how to avoid counting trading costs twice. The numbers below are invented for explanation; they are not New Hope results or recommended trading settings.

Start with one clearly defined configuration

Give the review a name and a date. Record the broker, account type, instrument, program version, connection method and settings revision. Keep the observation period and account currency alongside them. If several configurations are mixed into one report, it becomes difficult to identify which change explains a difference.

Start from the NH PRO setup guide and the NH PRO operating manual. These cover preparation and operation. The execution review begins when you can connect an actual request to its outcome. Do not assume that a result from another broker, instrument or account environment transfers to your own setup.

Keep requests, orders and fills separate

MetaTrader distinguishes an order from the deal that records execution. Its deal properties include the related order, execution time, volume and price. This provides a useful basis for reconciliation: an instruction to trade and the resulting execution are separate records. MetaQuotes: deal properties.

Stage

Record

Question

Observation

Quote source, bid/ask, time

Which price was actually available to the program?

Request

Side, quantity, order type, identifier

What did the program ask to do?

Response

Status, error or order identifier

Was the request accepted, rejected or unresolved?

Execution

Fill identifiers, prices and quantities

What quantity was actually executed?

Reconciliation

Position, costs, broker statement

Does the account record match?

Use the identifiers that your platform and connection expose. If a field is unavailable, mark it as missing. Never infer a fill from an order-submission message alone. For partial fills, retain the individual executions before calculating a volume-weighted average.

Define the reference price before measuring slippage

For this review, use the observed ask at the recorded decision time for a buy and the observed bid for a sell. This is an explicit measurement convention, not a universal definition. A broker-server reference or a different timestamp may produce a different value, so label the convention in the report.

Calculate adverse slippage as buy fill minus reference ask for a buy, and reference bid minus sell fill for a sell. With this convention, a positive number is worse for the trader; a negative number is better. Keep the units clear: raw price difference, points and pips are not automatically interchangeable.

A top-of-book quote also needs context. cTrader documents volume-weighted execution, meaning that the average fill for an order can differ from the best displayed price. Review quantity alongside the price difference. cTrader: trading conditions. For the general causes, see our existing article on why Forex slippage occurs.

A worked example without double-counting costs

Assume a fictional EUR/USD buy of 10,000 base-currency units in a USD account. The observed quote is 1.10000 bid / 1.10002 ask. The buy fills at 1.10005 and the same quantity later sells at 1.10015. Ignore financing and other adjustments for this example; total commission for entry and exit is $1.20.

Calculation

Result

Observed spread: 1.10002 − 1.10000

0.00002, or 0.2 pip

Entry adverse slippage: 1.10005 − 1.10002

0.00003, or 0.3 pip

Fill-to-fill result: (1.10015 − 1.10005) × 10,000

$1.00

After stated commission: $1.00 − $1.20

−$0.20

The actual entry and exit prices already reflect the execution obtained. Do not subtract the spread and slippage again from that fill-to-fill result. Keep them as diagnostic measurements explaining the fills. If instead you start with a hypothetical signal-price result, cost adjustments require their own consistent reference; do not mix that calculation with realised account P&L.

Check what each report field includes. MetaTrader's documentation distinguishes gross trade results excluding swaps and commissions from other result views that include them. The column label alone is not enough to decide which costs remain to be added. MetaTrader 5: trading report.

Review failed attempts and timing as well as completed trades

A file containing only successful fills leaves important questions unanswered. Record rejected, cancelled and unresolved requests, and distinguish an unfilled remainder from a completely unfilled order. State the number of attempts alongside the number of completed trades. Otherwise, an attractive average can describe a selective subset.

Keep program timestamps, broker timestamps and their time zones identifiable. A difference between unsynchronised clocks is not a reliable measurement of network latency. Where possible, compare intervals measured by the same clock. Preserve the original records before combining them into one timeline.

Review typical outcomes and unusually poor ones separately. Group observations by instrument, quantity, session and configuration revision. There is no universal acceptable slippage number in this article: suitability depends on the strategy and conditions. A small or unusually quiet sample should be labelled accordingly.

Agree on the next action before changing settings

For each finding, record an action: investigate missing data, clarify a broker response, repeat observation after a documented change, or pause further activity. Change one relevant variable at a time when practicable. A different server or feed should lead to a new comparison, not an automatic claim of better performance.

Price restrictions also need to match the execution mode. MetaQuotes documents different request requirements for different modes; a deviation setting is not a universal guarantee of an execution price. Confirm how the actual connection behaves before relying on a field's name. MetaQuotes: trade request structure.

Which NH PRO package matches your preparation?

NH PRO requires configuration and human oversight. The full package supports connections through MT4, MT5, FIX API and cTrader and includes five fast quote sources: two in London, two in New York and one in Tokyo. The combination still needs to be assessed for the intended broker and instrument.

The $500 evaluation lasts one month, is available once per user and cannot be extended. It is not rental. It includes only the robot and instructions, without a broker list, ready settings or help configuring trading. It is for personal familiarisation with the software.

The $5,000 full purchase includes the robot, a broker list, ready settings for brokers and instruments, and assistance from a personal manager. These resources do not guarantee profit. Discuss your NH PRO package: state whether you want the evaluation or full purchase, your platform and intended instrument. The team can clarify what is included and the next step. Trading-setup assistance belongs to the full package.

Get our presentation about New Hope PRO and CRYPTO

Get our presentation about New Hope PRO and CRYPTO

Get our presentation about New Hope PRO and CRYPTO