sobota 11. června 2011

Testing Features and Limits in MetaTrader 4

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" -> &quotSkip useless results" tab.


Strategy Tester: Modes of Modeling during Testing


What the Numbers in the Expert Testing Report Mean

One-Minute Data Modelling Quality Rating 


Break Through The Strategy Tester Limit On Testing Hedge EA


Testing Visualization: Trade History


Automated Optimization of a Trading Robot in Real Trading

pátek 10. června 2011

Backtesting v MetaTrader 4

Backtesting v MetaTrader 4

Zavřít MT před zavřením pozavírej všechny grafy a smazat vše z adresáře MT4/History/adresář brokera
Potom stáhnout 1M data např z alpari http://www.alpari-idc.ru/ru/dc/databank
Otevřít MT - Tools – Option – Charts – Max bars in history = 99999999999999, Max bars in chart = 99999999999999
V MT: Tools → History center a do příslušného páru naimportovat data z alpari
V MT: File – Open Offline – vyber timeframe, který jsi právě naimportoval
Otevře se ti graf, přetáhni na něj z Script → Period Converter a v inputs zvol periodu v minutách postupně až po nejvyšší timeframe, které chceš testovat

Tzn. Pokud chceš testovat systém na 1H přetáhneš poprvé period converter a dáš periodu 5, pak ho přetáhneš znovu a dáš periodu 15, pak zase znovu a dáš 30 a nakonec 60. Tím se ti vygenerují všechny ostatní timeframe, nižší timeframe potřebuješ pro správné dopočítávání. POZN: před dalším přetažením period conv. si zkontroluj, že ten předešlý doběhl, to uvidíš dole, v záložce expert se píše něco jako Total writen records …. Nebo nějak tak. Pak teprve přetáhni period conv. Dřiv ne.

Pak už jen stačí otevřít backtester a začít testovat, ovšem po každém novém importu nezapomeň zaškrtnout recalculate.

- pokud je zdrojový soubor (tedy ten s příponou *.mq4) umístěn v adresáři experts i přeložený (zkompilovaný) soubor tam není, nedělá to nic (žádné výsledky), přestože v roletce Strategy Testeru je název EA zobrazen

- v adresáři Experts tedy musí být soubory dva - se stejným názvem a různou příponou. např. MACDsample.mq4 a současně i MACDsample.ex4

- pokud tam nejsou, může to být tím, že se spouští Metaeditor samostatně. Pak ukládá na adresu, ze které byl spuštěn, dokud to není změněno příkazem File>Save as>Název adresáře

- takže poučení: vyplatí se zkontrolovat, kam Metaeditor ukládá přeložené (zkompilované) soubory - předejde se tím podobným překvapením

zdroj
http://financnik.cz/wiki/mtbacktest