Download MetaTrader 5

Testing Features and Limits in MetaTrader 4

13 September 2005, 13:37
MetaQuotes Software Corp.
2
5 063

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.

Translated from Russian by MetaQuotes Software Corp.
Original article: https://www.mql5.com/ru/articles/1512

Last comments | Go to discussion (2)
whroeder1
whroeder1 | 16 Nov 2012 at 13:48
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)
Is no longer correct, per Tester in the Terminal MetaTrader 4: It Should Be Known - MQL4 Articles and in EA testing
MQL4 Comments
MQL4 Comments | 4 Mar 2014 at 21:42

With Build 610 my strategy tester does not do any trade any more.

The EA is approved from Build 5xx and working in live accounts. New directory structure is understood. Many EAs and FX pairs were tried.

The strategy tester worked well before Build 610, now it says -Expert loaded, -Spread set, -Parameters set but NO trade is done during simulation. I can not get any output, even print statements fail.

I am helpless searching since 1 week, who can help?

Thanks, RoMe

Step on New Rails: Custom Indicators in MQL5 Step on New Rails: Custom Indicators in MQL5

I will not list all of the new possibilities and features of the new terminal and language. They are numerous, and some novelties are worth the discussion in a separate article. Also there is no code here, written with object-oriented programming, it is a too serous topic to be simply mentioned in a context as additional advantages for developers. In this article we will consider the indicators, their structure, drawing, types and their programming details, as compared to MQL4. I hope that this article will be useful both for beginners and experienced developers, maybe some of them will find something new.

Here Comes the New MetaTrader 5 and MQL5 Here Comes the New MetaTrader 5 and MQL5

This is just a brief review of MetaTrader 5. I can't describe all the system's new features for such a short time period - the testing started on 2009.09.09. This is a symbolical date, and I am sure it will be a lucky number. A few days have passed since I got the beta version of the MetaTrader 5 terminal and MQL5. I haven't managed to try all its features, but I am already impressed.

Using text files for storing input parameters of Expert Advisors, indicators and scripts Using text files for storing input parameters of Expert Advisors, indicators and scripts

The article describes the application of text files for storing dynamic objects, arrays and other variables used as properties of Expert Advisors, indicators and scripts. The files serve as a convenient addition to the functionality of standard tools offered by MQL languages.

How to create an indicator of non-standard charts for MetaTrader Market How to create an indicator of non-standard charts for MetaTrader Market

Through offline charts, programming in MQL4, and reasonable willingness, you can get a variety of chart types: "Point & Figure", "Renko", "Kagi", "Range bars", equivolume charts, etc. In this article, we will show how this can be achieved without using DLL, and therefore such "two-for-one" indicators can be published and purchased from the Market.