0% found this document useful (0 votes)
36 views2 pages

MetaTrader 4 Strategy Testing Guide

The document discusses features and limits of strategy testing in MetaTrader 4. Key points include functions like Sleep() and Alert() not outputting, only allowing trading of the symbol under test, using account settings for lots and commissions, modeling swaps and orders accurately but with potential margin calculation inaccuracies on cross currencies, approximating lower timeframes, assuming instant order execution with no slippage, and optimization not outputting to the journal or drawing objects to increase speed.

Uploaded by

n6dht6rp2x
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views2 pages

MetaTrader 4 Strategy Testing Guide

The document discusses features and limits of strategy testing in MetaTrader 4. Key points include functions like Sleep() and Alert() not outputting, only allowing trading of the symbol under test, using account settings for lots and commissions, modeling swaps and orders accurately but with potential margin calculation inaccuracies on cross currencies, approximating lower timeframes, assuming instant order execution with no slippage, and optimization not outputting to the journal or drawing objects to increase speed.

Uploaded by

n6dht6rp2x
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

TESTING FEATURES AND LIMITS IN METATRADER 4

Introduction

This article allows to find out more about features and limits of Strategy Tester in MetaTrader 4.

Special Features of Testing Strategies on History Data

 Some functions are processed/passed without output

These are Sleep(), Alert(), SendMail(), PlaySound(), MessageBox(), WindowFind(), WindowHandle(),


WindowIsVisible()

 Trading is permitted for the symbol under test only, no portfolio testing

Attempts to trade using another symbol will return error

 Lot sizes including initial size and increment step, commissions and swaps should be taken from
the active account settings

Before testing, it is necessary to make sure that there is at least one activated account in the list in
"Navigator" window of the terminal.

 All swaps, margin requirements, expirations, GTC-orders are modeled

Testing is performed maximally closely to trading server conditions. But the can occur some inaccuracies
in estimation of margin requirements on cross currencies because of lack of precise information about
conversion prices at each moment.

 Zero bar of another timeframe for the same symbol under test is modeled approximately

Open = correct Open, Close = correct Close, Low = min (Open,Close), High = max (Open,Close), Volume =
final Volume (false)

 Instant Execution mode is assumed to be used in trades, being processed without slippage

 Processing orders, Open/Close without slippages

 Testing stops after StopOut

 Weekly, monthly, and irregular timeframes are not tested

 The deposit currency can be changed, but conversion prices are set, and the current available
ones are used

 There are still no delays in execution of trade operations


A setup delay is planned to be introduced in processing of transactions

 Account History is fully available, and it does not depend on settings

 If other symbols and periods are actively used, it is desirable to download them to all possible
depth

 At every-tick modeling, tester pumps all necessary timeframes for the symbol under test
independently

 Using of MarketInfo function generates error


ERR_FUNCTION_NOT_ALLOWED_IN_TESTING_MODE(4059), however, correct information
about current prices for the symbol under test, about stop level dimensions, about point size,
about spread size of any symbol being present in the quotes window is provided.

Special Features of Optimization Process

 Nothing is output in the journal (either Print() function)

This was done in order to accelerate the testing and save disk space. If complete logs are output the
journal files will need hundreds of MByte.

 Draw objects are not really set

The objects are disabled in order to accelerate the testing.

 "Skip useless results" function is used

In order not to garble the table and chart with testing results, the possibility to skip very bad results is
used. This function can be enabled in context menu of "Optimization Results" -> "Skip useless results"
tab.

You might also like