tick data in strategy tester

 

Hi, I am new to this forum and have a couple of questions. I don’t know if this has been asked before, so sorry for possible duplication. I will have difficulties to name the English expressions for the interface since mine is in German. Maybe you can help. Besides I use MT4.

These questions mainly concern the strategy tester interface demo account with internet connection to the brokers’ quotes.

 1)  I can select the Spread to be ‘current’ or type some value in. As far as I figured out, it does have no impact on the strategy result. Only in the report, this value will be represented. Am I right?

2) When I navigate to ‘Expert Advisor Options’ a window with 3 tabs appears. The second tab is the one where I can choose the external variables. I have 5 columns. The 4th says ‘Step’, the 5th says ‘stop’. What does that mean? What do the values in these last columns represent?

 3)   On the very left in this window, I can check or uncheck several variables. What is this good for?

 4)   In the report there is a row on the right that says ‘mismatched chart error’. In my case this value varies between 1 and 7. Is the effect on my profitability high then?

 

Know the major questions.

5)   In the report it says ‘modelled ticks’. What does that mean? How are the ticks modelled? Don’t they represent the true data of the past, since I use all the data from my broker on demo and no external data?

6)   If tickdata is real data and not only a simulation, where is it stored then? The lowest timeframe I can get is 1-Minute. However if I observe the strategy tester on this timeframe, I see movements of the prices. So there must be storage for these ticks?

 7)   If I want to import tick data into my MT4 where will this be stored since the lowest timeframe is 1-Minute?

8)   My strategy is independent of bars and indicators. When running the same strategy on exactly the same time horizon but in different timeframes, I will get different results. How is this possible? Also, the number of ‘ticks modelled’ varies.

 

 

My main concern is question 8; question 5 to 7 shall help to understand question 8.

Since my strategy focusses on ticks (this time, ticks represent a signal not the quality of the data) and I have limited access to my broker’s data, I would like to use external data for a strategy tester. If I do, I will have highly different quantities of ticks between my broker and external data. Do you have an idea how to simulate the same quantity of ticks with external data so that they are similar to the quantity of ticks of my broker?

 
I would really like to have some help.
 
Chris.h:

Hi, I am new to this forum and have a couple of questions. I don’t know if this has been asked before, so sorry for possible duplication. I will have difficulties to name the English expressions for the interface since mine is in German. Maybe you can help. Besides I use MT4.

These questions mainly concern the strategy tester interface demo account with internet connection to the brokers’ quotes.

...

My main concern is question 8; question 5 to 7 shall help to understand question 8.

Since my strategy focusses on ticks (this time, ticks represent a signal not the quality of the data) and I have limited access to my broker’s data, I would like to use external data for a strategy tester. If I do, I will have highly different quantities of ticks between my broker and external data. Do you have an idea how to simulate the same quantity of ticks with external data so that they are similar to the quantity of ticks of my broker?

  1. It does affect the strategy, but the "degree" of affect depends on the type of strategy used (also, there were a few builds back, that had a bug with respect to the spread, so use the latest build).
  2. The meaning of the parameters (e.g. Stop, Step) is for optimisations. You need to read the documentation.
  3. I suggest you read the documentation (or hit F1) and learn the basics of using the Strategy Tester. It makes no sense for us to explain it to you again if it is already explained in the documentation.
  4. That is because the history data you have is not properly synchronised/matched between the different time-frames. Do a search on the forum on this, as there has been plenty of discussions on that.
  5. Again, do I search on the forum as there is also several threads explaining that.
  6. MetaTrader 4 does not have "real" tick data, but generates "emulated" tick data based on the history files (".hst") and stores it in the tester files (".fxt").
  7. You you can import 3rd party tick data (eg. TickStory with Dukascopy data) and it is stored in the FXT files (see previous point).
  8. Since you did not show your code, when cannot verify the reason. However, judging from your very poor understanding of how the Strategy Tester works, I can say that your code probably does not take into account those differences or is "buggy" due to lack of understanding of the mechanisms used.

In conclusion, you need to do plenty of reading and research on the subject!

 

Fernando Carreiro:

 

I can say that your code probably does not take into account those differences or is "buggy" due to lack of understanding of the mechanisms used.


Ok, 

 

I think I have gotten a better understanding of how the strategy tester works, now.

I don't really understand what you mean by "differences". Differences of what? What is not taken into account? 

I still have a problem with 8). I don't understand why changing the timeframe also changes the amount of ticks being modelled regardless of the EA that is used. This affects the result.

 

I don't think my code is wrong. It is quite simple and there are no error warnings. As I analyzed very single trade, I found, that they are often very similiar: They open during the same second, but at different price levels. I assume there are just some ticks missing in one timeframe (or modelled differently), so the entry price will vary. Again: I don't use indicators or bars as entry signal. Again: I use the same time horizon of data from my broker, which is directly and automatically downloaded as soon as I am connected to him (which I am).

If someone is aware of this problem, please explain me or give me a link to a similiar thread in this forum. Thanks so far!

 
the mt4-terminal (mt5 too I guess) uses open, high, low close and the tick-volume to create artificial ticks!! You can see that that the h4-file of the history is a lot shorter than the m1-file - but if you are using (yet only in mt4 possible) use real tickdata (Birt's tickdata suite or Tickstory) the h4 and m1 files do have the same size = same amount of ticks!
 
Chris.h: I don't really understand what you mean by "differences". Differences of what? What is not taken into account? 

I still have a problem with 8). I don't understand why changing the timeframe also changes the amount of ticks being modelled regardless of the EA that is used. This affects the result.

You did not pay attention to my answers, in particular point 4 and 6:

4. That is because the history data you have is not properly synchronised/matched between the different time-frames. Do a search on the forum on this, as there has been plenty of discussions on that.
6. MetaTrader 4 does not have "real" tick data, but generates "emulated" tick data based on the history files (".hst") and stores it in the tester files (".fxt").

As Carl has pointed out in the previous post, the emulated tick data of a H4 Bar data will be different to a M1 Bar data, because of the "mismatch" errors you have in your history data. If all the data was properly matched and synced between the various time-frames, then the emulated ticks would be the same.

To overcome this, you can either correct the flaws by using the "PeriodConverter.mq4" to generate matched/synced upper time-frames from M1 data, or you could use 3rd Party tools and data and produce perfectly matched/synced HST and FXT files with real tick data.

 
Fernando Carreiro:

You did not pay attention to my answers, in particular point 4 and 6:

As Carl has pointed out in the previous post, the emulated tick data of a H4 Bar data will be different to a M1 Bar data, because of the "mismatch" errors you have in your history data. If all the data was properly matched and synced between the various time-frames, then the emulated ticks would be the same.

To overcome this, you can either correct the flaws by using the "PeriodConverter.mq4" to generate matched/synced upper time-frames from M1 data, or you could use 3rd Party tools and data and produce perfectly matched/synced HST and FXT files with real tick data.

As far as I discovered, the amount of ticks and mismatched chart error are not necessarily correlated. While testing on other pairs, I had 0 mismatched chart errors on either time frame but still different results due to different amounts of ticks. I see that there is propably no way arount using external data. I just would like to have known  the reason for this. Bottom line is: 2x M15 do not have the same amount of ticks as 1x M30 of the very same time horizon. Besides, the modelling of the ticks in these two examples is likely to be different.

 
Carl Schreiber:
the mt4-terminal (mt5 too I guess) uses open, high, low close and the tick-volume to create artificial ticks!! You can see that that the h4-file of the history is a lot shorter than the m1-file - but if you are using (yet only in mt4 possible) use real tickdata (Birt's tickdata suite or Tickstory) the h4 and m1 files do have the same size = same amount of ticks!
Chris.h: As far as I discovered, the amount of ticks and mismatched chart error are not necessarily correlated. While testing on other pairs, I had 0 mismatched chart errors on either time frame but still different results due to different amounts of ticks. I see that there is propably no way arount using external data. I just would like to have known  the reason for this. Bottom line is: 2x M15 do not have the same amount of ticks as 1x M30 of the very same time horizon. Besides, the modelling of the ticks in these two examples is likely to be different.

It has been a long time since I have used "emulated" tick data, so I decided to test it out. The results are below. You and Carl Schreiber are both correct - tick emulation is different on different time-frames. Using real tick data will overcome the problem.

// Emulated Tick data (MetaTrader generates FXT files)
EURUSD,H4: 22572527 tick events (   3602 bars, 22573528 bar states)
EURUSD,H1: 22575465 tick events (  11376 bars, 22576466 bar states)
EURUSD,M1: 22846770 tick events ( 622624 bars, 22847810 bar states)

// Real Tick data (TickStory generated FXT files)
EURUSD,H4: 28503562 tick events (   5738 bars, 50936607 bar states)
EURUSD,H1: 28503562 tick events (  22879 bars, 50936607 bar states)
EURUSD,M1: 28503562 tick events (1368527 bars, 50936607 bar states)
 
Carl Schreiber:
the mt4-terminal (mt5 too I guess) uses open, high, low close and the tick-volume to create artificial ticks!! You can see that that the h4-file of the history is a lot shorter than the m1-file - but if you are using (yet only in mt4 possible) use real tickdata (Birt's tickdata suite or Tickstory) the h4 and m1 files do have the same size = same amount of ticks!

Yes, but using a different algorithm, supposed to be closer to real ticks (I didn't test it).

And MT5 allows now to backtest using real ticks from your broker.

 
Alain Verleyen:

...

And MT5 allows now to backtest using real ticks from your broker.

Sounds nice - but  the tickdata files get incredibly big: 1-4 GB lets calculate with 2GB per file per symbol and per timeframe => 20 symbols and 10 timeframes => 400 GB.

Do you know a broker which offers server-space and traffic costs for such an amount of data for all clients?

It sounds nice but it is unfortunately not realistic!!

 
Carl Schreiber:

Sounds nice - but  the tickdata files get incredibly big: 1-4 GB lets calculate with 2GB per file per symbol and per timeframe => 20 symbols and 10 timeframes => 400 GB.

Do you know a broker which offers server-space and traffic costs for such an amount of data for all clients?

It sounds nice but it is unfortunately not realistic!!

  • Ticks data are ticks data, there is no "timeframe" implied here.
  • The MT5 platform allows it. If brokers will offer the data is an other matter. Each one can check by itself.
  • If Metaquotes have (finally) implemented it, you can be sure it's not "not realistic" :-D GBytes of data are nothing nowadays (at least in our countries).
  • I downloaded 1 year of EURUSD ticks, it took 13 minutes and is using 219.37 Mb.

2016.11.08 18:53:48.691    Tester    EURUSD: preliminary downloading of history ticks completed, 219.37 Mb in 12:55.563 (289.64 Kb/sec)

Reason: