If this error occurs, check the following:
This problem is typically due MT4 not utilising your exported data correctly. Check the following:
Firstly, check you are checking the correct location. In MT4, go to File→Open Data Folder and then browse to the <Data Folder>/MQL4/Files folder. A file should exist with a *.mt4config extension. If it does not, check the 'Experts' tab to see if any errors are being generated. This problem is sometimes caused by an invalid filename being generated (since it utilises your broker's name). You can force a valid filename by going to the EA's '*ConfigFileName*' parameter to “Broker.mt4config”.
This is caused by Windows denying Tickstory access to the folder where it needs to store its downloaded tick data. To resolve this, go to File→Settings and specify a “Dukascopy Store Folder” that has general write permissions. For example, create a folder called “Tickdata” in your Documents and then specify C:\User\<YourName>\Documents\Tickdata as the storage folder location.
This is usually caused by a limitation with MT4 which only supports a maximum of 4GB of data. If your back-test period is greater than 2 years, you are likely to come across this limitation. To check for sure, have a look at the size of your FXT files and ensure they are under 4GB.
You can reduce the size of your data export by:
Further discussion on our forum can be found here.
MT4's historical data does have a minimum granularity of 1 minute which means that if you are using your broker's data, then yes, you are only going to get tests on interpolated points within each of these one-minute bars (for example, the Open, High, Low & Close is taken, resulting in 4 data points). To process these generated points (or “modelling types” as MT4 refers to them), MT4 creates an (FXT) data file which contains these individual “ticks”. It then proceeds to back-test on this data. Modelling types can be 'Every tick' (every tick that was downloaded from the broker while your terminal was connected), 'Control Points' (OHLC of the bar - 4 data points) or 'Open prices' (The open price of the bar - 1 data point).
In the case of Tickstory, it bypasses MT4's generation of the data file and instead produces it's own 'Every tick' model data file with tick-by-tick data. That is, rather than having merely a few data points that occurred within that minute, it will have all the actual ticks that occurred. The MT4 back-tester will then process this data as usual.
The value in back-testing is the ability to evaluate a strategy to-a-point. You have probably heard the phrase “past results do not guarantee future results” and this is the case for back-testing. The best you can do is understand your strategy and the variables involved so you have some confidence it can handle various market conditions, brokers, etc. Once you have done this, you are still not guaranteed to get the results you see on your back-test report - you will then need to go through a period of forward-testing on your chosen broker where you will find various other variables that cannot easily be simulated (trading lag, price discrepancies, slippage, etc). Then, when you finally are confident enough to go live with it, you are still likely to see some discrepancies between your simulated results versus live. This doesn't mean that back-testing has no value. The process of testing your strategy is a matter of prudence to ensure you are not merely gambling that your strategy will work as you hope. When you work with tick data, this is just another tool to help you more accurately simulate market conditions (especially for scalping strategies).
Remember that tick-data back-testing is just a tool to help you understand your trading strategy more comprehensively. It does not simulate the real-life situations you will encounter when you begin to trade live.
Here are some factors to consider when trying to evaluate your EA's performance in a live market:
An EA may not enter a trade for numerous reasons, depending of course on what entry criteria it uses and whether any errors are occurring while attempting to enter a trade. Quite commonly, EAs are dependent on the current spread of the market. If it's too high, the EA will refrain from trading. In most EAs, the spread limit is a configurable parameter and you can try adjusting this value to a higher threshold, just to see if this encourages the EA to open a trade. Other reasons for an EA not entering a trade can often be found by analysing the tester's “Journal” tab which often contain informational messages and may be reporting error numbers during the EA's operation. These error numbers can be Googled to find out more about the nature of the problem.
Common errors are:
Order Send Error 131 (ERR_INVALID_TRADE_VOLUME) - This usually indicates that the lot size that the EA has specified is incorrect. Check the 'Lot step' parameter you have set in Tickstory when you exported your data. If the lot size that your EA is using is not a multiple of this number, you will get this error and need to modify your EA so it correctly “normalises” the order volume so it conforms. In some EAs, there is a “Lot size” parameter which can be set. In this case, make sure that your lot-size is a multiple of the “lot step” parameter.
Order Send Error 134 (ERR_NOT_ENOUGH_MONEY) - This one means that your account cannot open the requested trade due to lack of money. You can adjust your initial deposit settings in MT4 Strategy Tester to supply your EA with additional funds for the back-test (or you can try lowering any parameters in your EA that deal with risk or lot-size).
Order Send Error 129 (ERR_INVALID_PRICE) - This can occur when your EA tries to enter a trade at a certain price, but the market price has since changed. In this case, putting a “RefreshRates()” call in your EA just prior to entering a trade can resolve this problem.
Zero-divide error - This error can occur if the EA is trying to use a particular parameter (Lot size, for example) and the value is zero. Just review your EA for where this error is occuring. Once you have established which specific parameter is zero, ensure that you have correctly exported this value in your Tickstory “MT4 Settings”.
The nature of tick-quality back-testing means that you are highly likely to get markedly different results between Tickstory and your broker data. This is especially true if your EA is a “scalper” that is sensitive to small price movements. Just remember that the most granular information MT4 brokers offer you is 1-minute data. In this one minute, numerous tick prices would have normally come through to your EA in a live trading environment. With Tickstory data, this information is more accurately simulated, potentially causing your EA to behave quite differently. For longer-term strategies, these differences should be not as pronounced, however for a short-term scalper strategy, this can mean the difference between success and failure! This is why tick back-testing can be much more revealing and valuable in assessing the viability of your strategy.
Just remember that Tickstory only exports data - it does not perform any back-tests, calculations or the like. There are essentially 4 places where you should look when attempting to debug your issue (in order of priority):