Journal of Testing

The entire process of testing and optimization is logged in the journal in details. Let's see what happens after Start button is clicked in the strategy tester.

Preparing price history

Before launching testing/optimization, the tester prepares the environment. The presence of a tested symbol history is checked and the entire history stored in the trade server is synchronized. If the platform has no history for a tested symbol, synchronization with the trade server may take a few minutes.

Tester EURCAD: preliminary downloading of M1 history started

starting the preliminary download of EURCAD M1 history

Tester EURCAD: 20% history downloaded

20% of download complete

Tester EURCAD: 95% history downloaded

95% of download complete

Tester EURCAD: preliminary downloading of M1 history completed in 0:14.640

download complete in 0:14.640

Tester EURCAD: history data begins from 2014.12.29 00:00

symbol's minute data are present from 2014.12.29 00:00

If testing is performed based on real ticks, the platform synchronizes the existing ticks within testing dates. Tick download may take a long time.

Tester EURCAD: preliminary downloading of history ticks started, it may take quite a long time

starting preliminary download of EURCAD ticks, it may take quite a long time

The presence of cross pairs is checked afterwards. For example, if testing is performed on EURCAD, while the deposit currency is USD, EURUSD and USDCAD symbols are necessary to calculate profit and margin requirements when performing trades. Therefore, full synchronization of history and these symbols is performed. If necessary, tick data are synchronized as well. Price data preparation is described in the tester journal in details:

Tester EURUSD: preliminary downloading of history ticks started, it may take quite a long time

starting preliminary download of EURUSD ticks, it may take quite a long time

From this moment on, the agent starts keeping its own journal sending its data to the tester one. Local agent journal can be opened from the tester journal context menu. The journal shows environment synchronization details between the terminal and the agent.

The minimum data exchange between the platform and the agent is performed at the synchronization stage during a repeated testing on the same history data. History cached in the agent memory is used. If the tick generation model remains unchanged, cached tick data is used as well. In this case, testing starts immediately:

Tester account info found

trading account data found

Network 1482 bytes of tester parameters loaded

downloaded 1482 bytes of testing parameters

Tester initial deposit 1000.00 USD, leverage 1:100

initial deposit before testing - 1 000 USD, leverage - 1:100

Tester successfully initialized

testing initialized

Network 1614 bytes of total initialization data received

total volume of the data obtained by the agent during initialization - 1614 bytes

Tester Intel Core i7-3770 @ 3.40GHz, 16351 MB

configuration of the PC the agent is launched at

History EURUSD,H1: history cached from 2014.01.01 23:00

EURUSD H1 history cached starting from 2014.01.01 23:00

Tester EURUSD,H1 (MetaQuotes-Demo): every tick generating

launched testing on all ticks (MetaQuotes-Demo server)

Tester EURUSD,H1: testing of Experts\Tester\MultyPairCrossMA.ex5 from 2015.01.01 00:00 to 2016.01.01 00:00 started with inputs:

testing Moving Average EA from 2015.01.01 00:00 to 2016.01.01 00:00 is to be launched with the following inputs:

Tester InpLots=0.10

Tester InpStopLoss=50

Tester InpTakeProfit=50

Tester InpTrailingStop=30

Tester InpFastMAPeriod=21

Tester InpSlowMAPeriod=34

InpLots=0.10

InpStopLoss=50

InpTakeProfit=50

InpTrailingStop=30

InpFastMAPeriod=21

InpSlowMAPeriod=34

History EURUSD,M5: history cached from 2014.01.01 23:00

EURUSD M5 history cached starting from 2014.01.01 23:00

History EURJPY,M5: history cached from 2014.01.01 23:00

EURJPY M5 history cached starting from 2014.01.01 23:00

History USDJPY,M5: history cached from 2014.01.01 23:00

USDJPY M5 history cached starting from 2014.01.01 23:00

Testing completion

Stop out. If trading is unsuccessful, testing can be stopped by Stop Out:

Tester final balance 44.81 USD

final balance is 44.81 USD

Tester stop out occurred on 3% of testing interval

stop out occurred after passing 3% of the testing period

Standard completion. Testing can be stopped earlier by calling the ExpertRemove function when a certain condition is fulfilled. This is followed by the following journal entries:

Memory error. Testing can be completed ahead of schedule due to a critical error. For example, constant memory re-allocations by the ArrayResize function can lead to excessive memory fragmentation which in turn may cause the memory block to be of insufficient size. The memory error is triggered as a result.

Initialization error. Testing stops without starting if the OnInit function in the program returns a code different from INIT_SUCCEEDED. For example, this feature can be used to manage input parameters.