The tick data section of is a detailed guide that will lead you through the whole process of tick data backtesting, starting from where to acquire free historical Forex tick data, how to download it and how to use it in backtesting Metatrader 4 expert advisors to obtain a 99% modeling quality. If you’re not sure what backtesting is, it’s probably a good idea to purchase the Metatrader Backtesting and Optimization Course, which is geared toward people that are new to Forex and Metatrader 4 backtesting.

This page is divided into several sections:


In general, backtesting using the data from the MT4 history center might be good enough for EAs that are not scalping or pip hunting. However, if you’re dealing with such an EA or any kind of EA that closes trades within 1-15 pips, even the smallest feed differences might have a very large impact.

The issue is caused by the Metatrader terminal not having access to the real tick data, but only to minute bar data in the best case, which forces it to give your strategy backtest “false” ticks generated through a process of interpolation using the data for the smallest timeframe available. This is most likely not important to an expert advisor that uses stoploss and takeprofit targets of over 100 pips, but in the case of robots that attempt to scalp a few pips here and there, your backtest could be completely misleading.

So, it is very important to try testing using data having a quality that is as high as possible which is why I put together some resources, all of which I use in my backtesting when needed.

Tick data guides

  1. How to download free tick data – details the download process using several free tick data sources: Dukascopy, Oanda, Pepperstone, Integral, MB Trading and Gain Capital.
  2. How to prepare your tick data for Metatrader 4 – guide to converting the tick data to a format compatible with Metatrader 4 (from CSV to FXT).
  3. How to backtest using tick data with Metatrader 4 – a review of the options available for using tick data with the Metatrader 4 platform.
  4. FAQ & Troubleshooting

The Walk Forward Analyzer

Not directly related to tick data but with built-in support for it, the Walk Forward Analyzer is an excellent tool that lets you optimize your Metatrader 4 expert advisors in steps, in a technique called Walk Forward Analysis. Simply put, you optimize your EA for say 3 months, then you test it for the next 1 month to see if the best parameters resulting from the optimization work fine on out-of-sample data, then you optimize it further on the next 3 months and so forth. This tool lets you automate the whole process and does all the runs for you, providing an exhaustive set of configuration parameters and a neat optimization report at the end. The Walk Forward Analyzer is a must-have for anyone doing serious EA development. But don’t take my word for it, visit the website and download your copy – the WFA used to be priced around $30 but recently the author decided to provide it for free.


Since there are frequent updates to the tick data tools, I decided to keep a Tick data changelog that lists all the changes that the scripts have gone through.

Also, for those interested, the old tick data page is still available but a lot of the information there is now obsolete.

  • #2142 written by rajiv July 17, 2012 (4 years ago)

    I just check my EA with ducks data with real spreads always profits ,but from truefx data always losses with even 0 spread and no commission. for same EA HUH!
    I am 100% MAD

    • #2143 written by birt July 18, 2012 (4 years ago)

      You should add some debug information printing to the EA, test it in visual mode and find out why would that happen.

  • #2144 written by TonyBahama August 1, 2012 (4 years ago)

    I know this site is for Metatrader users, but I would like to try ForexTester as well, which is a bit more professional.
    Do you know any methods to import/convert Dukascopy real tick data to Forex Tester, or do you have any advice?

    Thanks very much!

    • #2145 written by birt August 2, 2012 (4 years ago)

      No, sorry. ForexTester is a paid product so I would suggest asking ForexTester support.

  • #2146 written by Dewey August 9, 2012 (4 years ago)

    Wow–this is just what I am looking for. I just converted a manual strategy I have been using into an EA and need to run all sorts of tests. I am going to get the Walk Forward Analyzer to start.

  • #2147 written by Dmitriy August 15, 2012 (4 years ago)

    I have a Renko EA. I can already save Renko as M5. Can I use TDS for testing Renko?

    Thank you!

    • #2148 written by birt August 15, 2012 (4 years ago)

      No, sorry, you can’t.

      • #2149 written by Vivian Hsu September 7, 2012 (4 years ago)

        Hi Birt,

        TDS is great but I’ve been working on Renko and just missing this piece (tick backtesting on Renko) before I have confidence to trade live. Any chance TDS will be enhanced later to support this? Many thanks!



        • #2150 written by birt September 12, 2012 (4 years ago)

          Don’t think so, sorry. Renko bars only go one way while tick data goes both ways so there’s no way to accurately represent it using Renko bars. The only possible representations would be inaccurate because the ticks outside the bar would likely have to be discarded.

        • #2151 written by Oblivian September 13, 2012 (4 years ago)

          I actually developing one expert, base on Renko charts. After two years of looking for solutions, and got on of the best programmer to study any available Renko bactesting script or Renko experts, 90% of the data are lost for ever. However, if you can still use those script or Renko experts to develop you system you will get a ”simulation”. You will never be able to compare backtest results with reality, because too much data are missing. Even more if you try to scalp one brick value. To be as close to reality with Renko you need to respect one simple rule. Your Stoploss and take profit, need to be at least 3 time the value of one brick. Just Google ”Renko plug-in backtest”. You should find something for backtest. That will not use your FXT to create chart history and the end result will be about 24,99% modelling quality. But remember that your strategy could be also good in live trading even if you can not prove it! Because I made it!

          • #2152 written by Vivian Hsu September 14, 2012 (4 years ago)

            Hi Oblivian, thanks for your reply. What do you mean by “90% of the data are lost for ever”? I manage to download every tick from Dukascopy for the past years.

            • #2153 written by birt September 14, 2012 (4 years ago)

              He specified that the data is lost only in case of Renko bars. It’s probably not 90% but a huge chunk of ticks happens outside the Renko bars.

              There are solutions for MT4 Renko backtesting but keep in mind that MT4 only interpolates ticks *within* the bar. In a live environment you will also have ticks outside the bar and most of the time the bar will head both ways before being completely formed.

  • #2154 written by Nick August 28, 2012 (4 years ago)

    Hi Birt,

    I’ve been using Tick Data Suite just fine with Dukascopy data for the past few months on Pepperstone’s platform. However, I’ve started testing with Armada Markets which has a .arm extension on their currency names. Despite adding this to the history files and the tester files, I cannot get a working backtest.

    Please advise.

    Kind regards,

    • #2155 written by birt August 29, 2012 (4 years ago)

      The FXT also has the currency pair name inside the file. If it doesn’t match, your backtest won’t start. You can edit that with a hex editor, it’s at offset 0xC4. If you still have problems after that, please use the support form and send me the error message you are receiving.

      • #2156 written by FxGuy August 29, 2012 (4 years ago)

        when you say “is at offset 0xC4” which hex editor you use for the same, for editing that FXT file?
        Can it be any?

        • #2157 written by birt August 29, 2012 (4 years ago)

          Yes, any hex editor. Personally, I use hiew but I would definitely not recommend that to the average user. Something like WinHex or Neo Hex Editor should be better suited.

  • #2158 written by Nick August 29, 2012 (4 years ago)

    My aim is to have lotsizes greater than 50 in 99% back testing. It seems like regardless of the broker I use (Alpari UK, Armada, Pepperstone, FXPig), the lotsizes in back testing are capped at 50, whereas if I run the same test without a pre-made FXT there doesn’t seem to be an issue in reaching hundreds of lots. How do I fix this?

    Kind regards,

    • #2159 written by birt August 29, 2012 (4 years ago)

      The maximum lot size is taken from the broker that you were using when you created the FXT. If it’s 50 in your backtest, it means it’s 50 for that broker. Running a regular backtest with that broker will also cap the lot size at 50.

      There are two ways to fix this:

      • Recreate the FXT using a broker that has a higher max lot size.
      • Use a hex editor (see the FAQ for some more info) and edit the max lot value at offset 0x114. Keep in mind that it’s little endian so for a max lot of e.g. 100000 (which is 0x186A0 in hex) you’d have to fill in the bytes with A0860100.
      • #2160 written by Nick August 30, 2012 (4 years ago)

        Thanks Birt! Works a treat.

  • #2161 written by James September 17, 2012 (4 years ago)

    Birt, you are a life saver. The time your writeups have saved are tremendous, thank you.

    I have one question though, I run the optimizer and come up with what looks like a winning set of inputs. I then right mouse click and select set inputs and run the tester. The problem is I get completely different results.

    Have I missed something?

    • #2162 written by birt September 18, 2012 (4 years ago)

      It’s a bug in MT4. If you are specifying a start/end date for your optimization, only the first pass takes it into consideration. Subsequent passes use the whole range of the FXT. Try removing the start/end dates, it should make the output identical.

  • #2163 written by James September 18, 2012 (4 years ago)

    Thanks Birt. Works better without the dates.

  • #2164 written by Andy September 19, 2012 (4 years ago)

    Hi Birt, if I use several TF for optimization and backtesting, I can get them in one go with the script several boxes marked “Create MX”, or I have to use the script once for each TF?

    • #2165 written by birt September 19, 2012 (4 years ago)

      You can create them in a single run using the Create* parameters.

  • #2166 written by andy November 19, 2012 (4 years ago)

    Hello Birt.

    First of all, thank you for all your info, is very helpful.
    I have two questionsL:

    2. I am testing a EA I wrote, the modelling quality is in 25% should I need to have that % in 99% in order to be more accurate? if so then do I need the TICK DATA? I f I dowload the TICK DATA with DUKASKOPY but I trade with another broker is the same??

    • #2167 written by birt February 27, 2013 (3 years ago)

      I seem to have missed your comment, sorry about the answering delay. Anyway, I’ll try to answer your questions in order.

      If your modeling quality is 25%, you are probably testing on the M1 timeframe; you would need tick data (and thus 99% modeling quality) especially if the EA you wrote can be described as a scalper or as a fast EA (closing trades within a few minutes). If your EA has an average of like 50-100 pips per trade, you will probably get very similar results with or without tick data.

      I don’t really understand your question about downloading tick data and trading with another broker – I will assume you are asking whether the Dukascopy tick data is the same as tick data from another broker and the answer is definitely not: the Dukascopy tick data does not coincide with tick data from another broker. However, how much of a difference that makes in a backtest depends entirely on the EA that is being backtested – for some it will be almost the same, for others it might yield completely different results.

  • #2168 written by ramin December 14, 2012 (4 years ago)

    Hi Birt,

    Is tick data suite take into account swaps in its backtesting?

    • #2169 written by birt December 17, 2012 (4 years ago)

      When converting the tick data into an FXT, the current swaps from your broker are used. That is to say that yes, the swaps are taken into account but they’re the current swaps for the whole duration of the backtest. Unfortunately, there’s no historic swap data that I know of and even if there was, it would be impossible to use it with MT4 and it would also be different for each broker.

  • #2170 written by Marcel February 27, 2013 (3 years ago)

    Hi Birt,

    I have a question which is most likely already raised a couple of times but what I like to know if it’s possible to read the data in the header of the FXT file?
    And is it possible to check whether I am using fixed spread or real spreads in the FXT file?


    • #2171 written by birt February 27, 2013 (3 years ago)

      Certainly – it’s possible to read the data in the header but I don’t know if there’s any tool that does that and displays the info stored. The closest thing you could do is create an EA that reads the stored parameters and prints them in the log or on the chart and run that EA in a backtest. You can do the same for the spread, just print it in a Comment() on the chart and run the backtest in visual mode – if it fluctuates, it’s real spread.

      • #2172 written by Marcel February 27, 2013 (3 years ago)

        Thanks for your quick response Birt, yes that’s a possibility, I will take a closer look at it at a later stage. Thanks.

  • #2173 written by Andy March 11, 2013 (3 years ago)

    Hi Birt, wanted to know for MT4 using HST files and whether to write-protect?

    • #2174 written by birt March 11, 2013 (3 years ago)

      If you’re asking whether you should use the generated HST files, the answer is yes. As for write-protecting, only do that if your HST files also include recent data (less than a month old) and if you do not use that MT4 terminal for anything other than backtesting.

  • #2175 written by Nduru March 23, 2013 (3 years ago)

    hi birt,

    this is an unrelated question to hist data, Id like to know, my e.a does not place trades on a demo or live account because it needs that I first open the orders without stoploss or take profit then I modify them. is there a way I can avoid having to modify orders?

    • #2176 written by birt March 23, 2013 (3 years ago)

      Sorry, not really. I’m sure there are still some brokers who support the old way (SL & TP with the order) but I wouldn’t recommend trying them.

  • #2177 written by Marcel April 1, 2013 (3 years ago)

    Hi Birt,

    I am using the Tick Data Suite and downloaded and converted a lot of tick data and all went fine. Now I have installed a new MT4 terminal of another broker and went to the whole process again (installed the TDS.exe file, converted the csv-files into fxt- and hst-files and moved them to the right directories) but if I want to run a backtest of i.e 2010 up till now, it’s showing me the message that there is no data, but if I start the backtest at the beginning of 1984 is running smoothly, showing trade dates in 1984. So I guess something went wrong with the date conversion/processing. Do you know how I can solve this issue?

    Kind Regards,

  • #2178 written by P.A April 2, 2013 (3 years ago)

    I am backtesting within tds but my renko show 0 volume for each bar.. I downloaded the data from dukascopy.
    Also icustom renko to refer to a second renko chart in backtest gives no trade at all, Any idea?

    • #2179 written by birt May 12, 2013 (3 years ago)

      Sorry, I did not develop or use anything renko-related so I’m afraid I can’t offer any assistance. I would advise asking the vendor of the renko package you are using. In any case, if there were no renko bars, 0 volume usually occurs when you are using real spread – due to the way the spread is encoded in the FXT, the volume information is lost.

  • #2180 written by Chris P April 18, 2013 (3 years ago)

    Just some input I wanted to add regarding the MetaTrader Back Testing & Optimization Course offered at Be wary that it is pretty outdated and actually pretty slim on content for what they charge. Also, and this is a biggie, they DO NOT HONOR their 60-day guarantee. I purchased the course and after going through it didn’t really learn anything new that I hadn’t already learned here on Birt’s site or figured out myself through trial and error. I both submitted a support ticket and emailed them (multiple times actually) requesting a refund, well before my 60 days were up, and they still have not refunded me or even replied/answered my ticket/email or anything! This has been weeks later now and still no word from them. I don’t know if they were just conveniently waiting until after 60 days or if they have just totally abandoned the product or what? Just wanted people to know, based on my experience here I cannot recommend their product and can verify that they DO NOT honor their guarantee stated on the website.

  • #2181 written by ramin April 22, 2013 (3 years ago)

    Dear Birt,

    I have a question maybe not relating to this topic but related to tick data,
    Is there any way to capture online tick data into a buffer or file in MT4?

    I know that I can write some indicator to get the quotes and write them on file, but here is a problem, it is possible that I miss some quotes, I want to capture the exact data that MT4 shows on its tick chart

    Thanks and Regards

  • #2182 written by SimonG April 22, 2013 (3 years ago)

    You will miss some ticks . . . at least I am always missing some ticks.

    If you want to know if you miss a tck keep a running count of the ticks for the current bar and compare it to Volume[0], if the numbers differ then you have missed a tick or more than one.

    • #2183 written by birt April 22, 2013 (3 years ago)

      Simon is correct although with some optimization and if you hide all other symbols and run a single chart with your logger you have very good chances of “catching” most ticks.

      • #2184 written by ramin April 23, 2013 (3 years ago)

        you are right, but I am wondered while mt4
        catch all of the ticks of course in a buffer that is transferred through TCP/IP packets why it does not make it possible to the programmer to access the those ticks in a buffer, thanks

        • #2185 written by birt April 23, 2013 (3 years ago)

          Because if that would happen for an EA that takes a long time to process a tick, it would queue up ticks and eventually reach a situation where the EA is processing ticks that occurred quite a while ago. What MT4 does is skip feeding each tick that comes while the EA is busy processing another tick.

          • #2186 written by ramin April 24, 2013 (3 years ago)

            Thats right, thanks

  • #2187 written by janggo May 11, 2013 (3 years ago)

    Hi Birt, do you have tick data for GMT +0 Broker such Exness ?

    • #2188 written by birt May 11, 2013 (3 years ago)

      I don’t really have any tick data of my own, but the Dukascopy data is GMT so you could probably use that. Anyway, the CSV2FXT script automatically aligns the data to GMT+0 and no DST for all supported tick data sources (unless you change its parameters, of course).

      • #2189 written by Hanky June 25, 2013 (3 years ago)

        Sorry Birt, I think you are not quite correct. IMHO Dukascopy download data in general are GMT+1 !!!and!!! apply to US Eastern Dayligth saving time. So in summer time they are GMT as you wrote. However in winter time they are GMT+1.
        If you remove DST from the date, winter time applies thoroughly and after the conversion they are thoroughly GMT+1.

        • #2190 written by birt June 25, 2013 (3 years ago)

          I suggest checking the CSV files from Dukascopy against a source that you know the GMT for. I did that really thoroughly before coming to the conclusion that the data is GMT+0 with no DST. You could also ask Dukascopy support but in matters related to GMT & DST I’ve learned that I should check everything myself and not rely on what support people are telling me.

          • #2191 written by Hanky June 25, 2013 (3 years ago)

            Ah, you are talking about CSV files! Well then it depends, which software has created those CSV files and if it corrected the GMT offset or the DST.
            I was talking about the original binary files as you downlad them from the Dukascopy web site. They have the format 2013_06_22_23h_ticks.bi5. And !!!this!!! time information is GMT+1 with US Eastern DST IMHO.

            • #2192 written by birt June 25, 2013 (3 years ago)

              I’m also talking about the original bi5 files – most things that convert from the bi5 files to CSV don’t change the GMT offset or the DST.

              Anyway, I’m not sure what makes you think they’re GMT+1 with DST, I’m pretty sure they’re GMT 0 with no DST.

              • #2193 written by Hanky June 25, 2013 (3 years ago)

                Ok, let’s look to the DST thing first:
                The Dukascopy binary tick data files which can be downloaded from are organized by having all tick information of one hour in one single file. Even if there are no tick data (i.e. because the market is closed), a file will be generated, but it will be empty (file size 0).
                From the file name one can get the information, at what time this one hour data set starts. Within the file there are only relative offsets to this time stamp from the file name. Taking a look at the Dukascopy binary file sizes and names, it can be noticed that the 0-sized files mainly occur on Fridays, Saturdays and Sundays. These are the hours the market is closed. The following are the file sizes and names of 4 weekends, each having the closing hours on Friday and the opening hours on Sunday. The first two sets are from February, where winter time applies and the last two sets are in summer time.

                Winter time:
                Size Date and Hour
                30.820 2013_02_08_21h_ticks.bi5 Open on Friday
                0 2013_02_08_22h_ticks.bi5 Closed on Friday
                0 Completely closed on Saturday
                0 2013_02_10_21h_ticks.bi5 Closed on Sunday
                38.580 2013_02_10_22h_ticks.bi5 Open on Sunday

                35.120 2013_02_15_21h_ticks.bi5 Open on Friday
                0 2013_02_15_22h_ticks.bi5 Closed on Friday
                0 Completely closed on Saturday
                0 2013_02_17_21h_ticks.bi5 Closed on Sunday
                36.760 2013_02_17_22h_ticks.bi5 Open on Sunday

                Summer time:
                46.580 2013_05_31_20h_ticks.bi5 Open on Friday
                0 2013_05_31_21h_ticks.bi5 Closed on Friday
                0 Completely closed on Saturday
                0 2013_06_02_20h_ticks.bi5 Closed on Sunday
                12.220 2013_06_02_21h_ticks.bi5 Open on Sunday

                41.160 2013_06_07_20h_ticks.bi5 Open on Friday
                0 2013_06_07_21h_ticks.bi5 Closed on Friday
                0 Completely closed on Saturday
                0 2013_06_09_20h_ticks.bi5 Closed on Sunday
                16.460 2013_06_09_21h_ticks.bi5 Open on Sunday

                As it can be seen, in winter time this market closes on Fridays at hour 21h (last hour with tick data, the exact minute/second cannot be seen from the file name) and opens on Sunday at 22h (first hour with tick data). Btw the winter time is the “normal” time as if there would be no DST correction. You can proof this by switching off the DST on your Windows Computer. During winter time there will be no change to your local time, during summer time, your time will be changed.
                In summer time, the Dukascopy download data market closes on Fridays at 20h and opens on Sundays at 21h, which is one hour earlier then in winter time.
                These schemas apply in this way to the complete phases of US Eastern Daylight Saving Times (March to November).
                So DST does apply to the Dukascopy binary data!

                2nd let’s find out the GMT offset of the Dukascopy data:
                One way to find out the GMT offset of the Dukascopy data is to compare the Friday/Sunday close/open times with the close/open times of a broker you know the close/open times from. If you don’t trust the close/open times only, you also can verify the hour bars around the close/open times or other significant hour bars.
                To find out, what GMT offset a specific MT4 broker has got, simply go to, click the broker and then click on the Spread of one of the symbols. GMT Offset for this broker will be displayed.
                Another way to find out the brokers GMT offset is to use the MT4 Clock tool from . It shows GMT, local time and the broker time at once on a MT4 chart, so the offset easily can be calculated. GMT Offset of a Broker = Broker Time – GMT or
                Broker Time = GMT + Offset.

                To proof that Dukascopy Data are GMT+1, compare them to a GMT+1 Broker like i.e. Gallant Capital Markets. You will notice that they close Fridays at 21h and open on Sunday at 22h exact like the Dukascopy data.
                In general, the Forex Market closes Friday at hour 20h GMT and opens on Sunday at hour 21h GMT. Supposed that the Forex market exactly is open on working days and is closed on weekend days (closing on hour 23h Friday night and open on 0h Monday morning), you can say that the Forex market is GMT+3. Or in other words, GMT+3 brokers like Pepperstone close on 23h Friday and open on 0h Monday.

                As Einstein said: Time is relative…

              • #2194 written by birt June 25, 2013 (3 years ago)

                I’m sorry but you are basing part of your assumptions on facts that are not relevant. Some brokers open the market earlier, some open it later. You can’t compare that to determine the GMT offset. What you should compare is the actual ticks and bar data.

                Furthermore, the fact that the opening and closing hours are different during the summer only emphasizes the lack of DST. Think about it: during summer the clocks are advanced by one hour, which means the economic activity starts one hour earlier (when GMT time is used).

                I would suggest comparing the actual ticks & bars at some relevant dates. That is what I did some ~3 years ago and I spent hours on it to make sure I was right.

                • #2195 written by Hanky June 26, 2013 (3 years ago)

                  Ok, I must admit you are right.
                  I compared some significant hour bars of a GMT+0 Broker with my GMT+1 and DST-corrected Dukascopy data. It turned out that during summer time they are equal. However during winter time they are not!
                  Then I compared some significant hour bars of a GMT+0 Broker with my GMT+0 and !not! DST-corrected Dukascopy data. They are always equal!
                  So yes I agree, Dukascopy download data are GMT+0 with no DST.
                  Thanks for the discussion, wich helped me to correct an error of mine.

                • #2196 written by birt June 26, 2013 (3 years ago)

                  Glad you were able to land on the same conclusion 🙂

  • #2197 written by Ralph June 2, 2013 (3 years ago)

    if I use original dukascopy tickdata is the DST already included or do I have to set DST manually?

    • #2198 written by birt June 25, 2013 (3 years ago)

      Assuming you use CSV2FXT to convert the data, you can configure in there whether you want DST or not. By default, DST is disabled.

  • #2199 written by FxTrader451 June 10, 2013 (3 years ago)

    Hi Brit,

    Just started testing your Tick Data Suite.
    So far it works very well.
    Will be buying it for sure.

    Is there a way to use Forex Tester tick data as the input?
    Specifically I wish to use the Forex Tester tick data from FxOpen due to the very tight FxOpen spreads.
    IE, how to convert from the Forex Tester tick data file *.dat format into *.csv or another format that your Tick Data Suite can use?


    • #2200 written by birt June 25, 2013 (3 years ago)

      There is currently no way to use the dat files from Forex Tester. However, if I understand correctly they have a subscription where they make CSV files available to you.

  • #2201 written by eugenio July 9, 2013 (3 years ago)

    Hi Birt,
    very interesting stuff, indeed,
    have You calculated how much average time require backtesting a pair with tick data… How many minutes per week of real tick data?
    Any ideas in order to maximize the testing speed?

    • #2202 written by birt July 9, 2013 (3 years ago)

      It depends entirely on the EA. Simple EAs like the MACD Sample take several minutes per year of data while other EAs might take days.

      Sadly, you cannot maximize backtesting speed. It goes as fast as a core of your CPU will allow it. The only thing you can do is run several backtests at once, one for each CPU core.

  • #2203 written by VabRus July 25, 2013 (3 years ago)

    I have been comparing GMT in Dukascopy and Alpari NZ, and checking in google if someone had the same question, good I found this web and I could check that Dukascopy is without DST. Thank Birt. This is very good for optimization EAs with variable GMT Time.

  • #2204 written by max July 30, 2013 (3 years ago)

    I’m testing the trial version. This happen on different currencies: I can run the test from 1.1.08 to 2010. But If I chose a different period like 2012 or 2013, the tester doesn’t start. What could be the reason? I followed with success all the steps of your guide.

    • #2205 written by birt July 30, 2013 (3 years ago)

      Most likely you don’t have the data for that period. Make sure that your CSV includes the data for 2012-2013 (use a viewer, not an editor… personally I use the F3 viewer from Total Commander) and make sure that you don’t restrict the date range when converting to FXT.

      To determine the date range of your existing FXT, simply run a backtest of the MACD Sample EA with the “use date” checkbox disabled.

      Finally, when the tester doesn’t start, a message in the backtest journal will provide more information – you should also take a look at that.

  • #2206 written by Chris August 6, 2013 (3 years ago)

    Hello I got my (win7)Alpari MT4 build out of sync ith TDS and am now having to wait for update that will work with build 509, how long will this take?

    Any info on how to find an Alpai build between 500 and 507 would be much appreciated.

    I can’t go back to my previous buidl because Alpairi have disabled its ability to connect to the server. Further, I have messed up my system restore so can’t use that to get back my old build in anycase 🙁

    Thank you.

    • #2207 written by birt August 6, 2013 (3 years ago)

      TDS v1.2.10 was released on 23.06.2013 and it works fine with MT4 build 509. If you have v1.2.10 installed and you get an error, please send me an email with a screenshot of the message.

  • #2208 written by eugenio August 16, 2013 (3 years ago)

    Hi Birt,
    and my compliments for Your fantastic work. I’ve bought Your TDS and I think it’s a must have for every fx trader (together with walk forward analyzer).
    I want to ask You this: do You have stats regarding the walk forward efficiency ratio calculated on eas that are included in Your top list?

  • #2209 written by eugenio August 16, 2013 (3 years ago)

    Another question,
    do You know about any valuable ea that trade with success metals or indexes (like eurostoxx50 or dax)?

  • #2210 written by eugenio September 2, 2013 (3 years ago)

    Hi Birt,
    I hope now You are back from holidays. I’ve bought fxflash but I’m deluded about it even if I haven’t used it live. Firstable it requires authentication and I think I will have to write to fxflash guys in order to have a second autentication on a live server, after having used the credentials they gave me to forward test on demo account. Second, it’s a blackbox, there aren’t parameters left to optimize, like stop loss, trailing, atr filters.
    In Your opinion are there any Eas left that allow you to experiment with parameters value and that don’t require authentication on their web site?

  • #2211 written by eugenio September 25, 2013 (3 years ago)

    Hi Birt,
    …are You alive?

    • #2212 written by birt September 26, 2013 (3 years ago)

      Sure am alive but I’m also insanely busy lately. Won’t even have a vacation this year… Anyway, sorry for the delay in replying to your previous message. There are a lot of EAs that allow you to experiment but the general trend is to deliver a product that works with its out of the box settings. Some developers choose to make it fool-proof by hardcoding most of the settings that they consider to be correct.

      As for the authentication, that shouldn’t matter, you should be able to backtest & optimize a product even if it has such a mechanism.

  • #2213 written by damian November 3, 2013 (3 years ago)

    Hi, I have adquired your Birt’s patch one month ago, and I want to install it in the las metatrader 4. My problem is that my computer run with windows 7, and, I think that the installation of the Birt’s patch doesn’t work fine in windows 7.
    Please I need a solution, thanks.

    • #2214 written by birt November 3, 2013 (3 years ago)

      That script is no longer supported and it doesn’t work with recent MT4 versions. The Tick Data Suite is a commercial product that provides all that functionality and more; you can get a trial and check it out.

  • #2215 written by damian November 3, 2013 (3 years ago)

    I’m sorry, I have adquired the tick data suite, i was wrong (you can check it by my mail).
    The problem is that the tick data suite install the TDS in the path:
    C:\Users\Jose Damian\AppData\Local\VirtualStore\Program Files\MetaTrader FLOAT\
    But my metatrader is installed in the path:
    C:\Program Files\MetaTrader FLOAT\tester\history

    What can I do?

    • #2216 written by birt November 3, 2013 (3 years ago)

      Ah, I see.

      Your problem is that your MT4 is in Program Files and your computer has UAC enabled. I would suggest making a copy of that MT4 installation on your Desktop and using that one for backtesting.

      You could also read more info about potential issues that you might run into at – just search for “UAC” there.

  • #2217 written by damian November 5, 2013 (3 years ago)

    Hi, I have a problem with your code. When I run the code I have the next error: wrong bars count 0.
    Can you help me?

  • #2218 written by Chris November 26, 2013 (3 years ago)

    Hi there! Thanks for this information! Can I do backtesting if my EA uses more than one timeframe for analysis?

    • #2219 written by birt November 26, 2013 (3 years ago)

      Certainly. That’s why you need the HST files generated by the script: the indicators that run on other timeframes read the bar data from the HST files and use the current bid for the close of the current bar.

      • #2220 written by Chris November 26, 2013 (3 years ago)

        OK, thanks! Will your patch script work for build 509?

        • #2221 written by Chris November 26, 2013 (3 years ago)

          Nevermind, I found the answer. Not beyond 408, right? So the only way to use tick data is with TDS?

          • #2222 written by birt November 26, 2013 (3 years ago)

            Yes, that is correct. That or use build 408 or older, which is a bit of a pain in the ass.

  • #2223 written by FxPhil December 31, 2013 (3 years ago)

    Hi Brit.

    Back to multi TF backtesting. Understand it can be done but can the upper TF work when it needs a upper TF tick data price touch of a upper TF EMA in real time to trigger a lower TF trade setup?

    • #2224 written by birt January 3, 2014 (3 years ago)

      Yes, that can happen. The close of the current bar is always the latest bid price so there should be no issue.

  • #2225 written by Gary January 3, 2014 (3 years ago)

    Hi Birt,

    Assuming I read into the mt4 platform the tick data, and run an EA with your method,
    1) does it simulate exactly like in real time execution of EA?
    e.g. does the value of
    iMA (NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
    is being evaluated every tick?

    2) Assuming you run an EA for a week while saving the tick data for that week and then run the back testing with the tick data, will you get the same results?

    • #2226 written by birt January 6, 2014 (3 years ago)

      1) Yes. The close of the current bar is always the current bid price.

      2) Yes, that should be the case. However, keep in mind that ticks may get dropped in live trading if the EA did not finish running before the next tick arrives whereas each tick will get processed in backtesting. This might result in small differences. Furthermore, to ensure the conditions are identical, I would advise using the HST files recorded by the client in this case because otherwise (by using the HST files generated by CSV2FXT) the EA would lack the previous history which might result in differences for the first few days (depending on the timeframe and the number of bars used by the EA).

  • #2227 written by Ken Grakauskas January 19, 2014 (3 years ago)

    First, thank you for your TDS. It is clear, straight forward, and understandable. A couple brief questions if I may.
    1) In back testing, I get a lot of OrderSend error 138’s. Is this normal?
    2) On about 10% of the back tested trades, the appropriate exit trade is not taken. I am exiting at a particular Bollinger Band and price action will march right through it. No errors are in the journal. If it was a sell to close, that trade set dangles until the next trade series opens that has a new sell to close, THEN the prior trade closes with the new close. Any ideas?

    Thanks for all you do!

    • #2228 written by birt January 19, 2014 (3 years ago)

      Glad to hear you’re finding it to your liking 🙂

      Regarding your issues:

      1. OrderSend error 138 is a reqoute error. It means you configured slippage in the TDS configuration tool and it also means that the slippage you are allowing in the EA is smaller than the slippage configured in TDS. If you want to backtest with slippage, the EA slippage has to be at least as big as the one configured in TDS.

      2. That’s again because of slippage. You get a requote error and the EA does not retry closing. I would recommend attempting the OrderClose() several times in a loop because this situation can also happen live.

  • #2229 written by Peter January 29, 2014 (3 years ago)

    what will happen with the upcoming MT4 release in February which is quite a change in comparison to the old build 509?

    • #2230 written by birt January 29, 2014 (3 years ago)

      A new TDS version will be released.

  • #2231 written by mark February 10, 2014 (3 years ago)

    birt I have another problem now. I can load the csv2fxt script but it is displaying an error ” The DLL files appears to be missing, please place it in the correct location and restart the script.” I don’t understand because the csvreader.dll is in the folder. where am I supposed to place it? I am using build 600 mt4. please help.

    • #2232 written by birt February 10, 2014 (3 years ago)

      Are you using CSV2FXT 0.46? If so, make sure the DLL is in MQL4\Libraries.

  • #2233 written by Mirador February 15, 2014 (3 years ago)

    Hi Birt,
    I’ve been through all kind of problems with MT4 Build 600+. Not enough disk space on c: to do tickdata backtests. I use the /portable key to work back on the installation folder wich is F:. But now, I can’t start TDS.exe shortcut with the /portable key. Any solution ?

    • #2234 written by birt February 15, 2014 (3 years ago)

      That’s incorrect, you CAN start tds.exe with the /portable switch. It passes it to terminal.exe and it acts just like you would’ve started terminal.exe /portable. All you need to do is add it to the TDS shortcut.

      • #2235 written by Mirador February 15, 2014 (3 years ago)

        It works indeed. I had to update TDS from today’s version.
        Not happy about crap MataQuotes working like amateurs. Too many unwanted changes, Looks like improvisation. I guess you’re looking for a break too. Thanks for your hard work.

  • #2236 written by sergey April 2, 2014 (2 years ago)

    tell me please, does tds 1.3.2 work correctly with update 625? When i upgrade my metatrader to build 625, if often shut down without any log when i began optimisation.

    • #2237 written by birt April 2, 2014 (2 years ago)

      Yes, it should work correctly with build 625 but the new build appears to have some bugs with some EAs. Can you please try running a few optimizations with the MACD EA to see if the problem can be reproduced with that?

  • #2238 written by Canman888 April 9, 2014 (2 years ago)

    Hi Birt, I have just updated to 1.3.2, but when I try to start TDS it says I can only switch computer every 2 days. However, I have NOT switched computer at all.


    • #2239 written by birt April 9, 2014 (2 years ago)

      Have you perhaps used it on a laptop or something like that? Two very different hardware IDs (even different CPU) have been logged today.

      Anyway, I reset your timer so you should be able to use it now but if you have it installed on more than a computer you will have to uninstall it and leave it running on a single computer; otherwise you will always run into this problem. This applies even to multiple VMs on the same server.

      • #2240 written by Canman888 April 9, 2014 (2 years ago)

        I think I know why. I have added a CPU to the computer. Might that be the reason?

        • #2241 written by birt April 9, 2014 (2 years ago)

          Yes, that’s definitely the reason. Anyway, it should work now and you shouldn’t run into the problem again.

          • #2242 written by Canman888 April 9, 2014 (2 years ago)

            Thank you and thank you again for your fast and effective support 🙂

          • #2243 written by Canman888 April 9, 2014 (2 years ago)

            Hi again,

            Now I have another issue when running TDS. I get this error:


            • #2244 written by birt April 9, 2014 (2 years ago)

              Are you actively applying hardware modifications to your computer? In any case, open the TDS Configuration tool (Start -> Programs -> Tick Data Suite) and reset your authentication information from there. Please use the support form or simply email me if you have any further issues.

              • #2245 written by Canman888 April 9, 2014 (2 years ago)

                Nope, not doing any hardware modifivcations. However, I did solve the problem. I Had to go into TDS configuration and just click the update licenses button. And now it works, yay 🙂

  • #2246 written by vlad October 25, 2014 (2 years ago)

    Hello Birt,

    Im facing a problem where for some reason, during some of my backtesting some ticks are missed and therefore my EA doesnt signal the trade.

    Might be related to the execution time of my EA, but it gets quite hard to get a consistent view on the performance of this guy.

    Any suggestions?


    • #2247 written by birt October 25, 2014 (2 years ago)

      What do you mean by “some ticks are missed”? Did you try to backtest a tick logger EA and compare the result with the source CSV?

      If there are indeed ticks missing, are they perchance duplicate ticks (e.g. ticks with the same bid and ask price and occurring in the same minute)?

  • #2248 written by GeeGee December 5, 2014 (2 years ago)

    Hi Birt,

    after some pause I started to optimize some EAs with TiskDataSuite(paid), but I have a big problem … optimization ran ok, then I set selected params and start testing … and the results are quite different from optimization results and even for 3 runs I get 3 different results (remarkably worse everytime than optimalization results, first run seems to be best).. ie. for Moving Average sample EA built in MT4 and EURUSD 1.1.2014-26.10.2014 I get profit 1118,-822,-304 … (modelling Q 99%) Data from DUKAS, CSV2FXT version 0.46, TIckDataSuite last ver, Slippage set to 1, I have tried data got from TickStory Lite and result is similar … MT4 build 745 … this behavior is maybe connected with wersion of MT4, When I was switching from build 409, some EA optimized in 409 and working well was terribly bad in testing inside newest build…. I remember, that after optimization several runs gave same results, maybe with very small differences but now it is not usable tool (but which one: MT4 or TickDataSuite?) Where is the problem? And, if I run test without TDS, it gives same results for several runs (modelling Q N/A), and for that reasons I tried to change broker … no change

    • #2249 written by birt December 5, 2014 (2 years ago)

      First of all, I would advise disabling slippage when optimizing. Since slippage is random, you will always get different results. Also, if you enabled the genetic optimization algorithm, disable that as well if you want to have the same results. Once the above are done, you should get the same results consistently.

      These being said, some users reported weird stuff happening with build 745 so personally I would use an older build for backtesting. In your case, however, I don’t think that had any effect on the results if you tested with the moving average sample EA.

  • #2250 written by GeeGee December 5, 2014 (2 years ago)

    Thanks, I will try to switch off slippage and use older versionof MT4 …. I want to use version above 600, do you recomend me some? build 670? and could you advice where to download older versions, I think all brokers has updated versions.

    • #2251 written by birt December 5, 2014 (2 years ago)

      Drop me an email from the email address associated with your license and I’ll hook you up.

  • #2252 written by Ashok January 14, 2015 (2 years ago)

    I am baffled with this particular EA results and not sure what to make of it.
    I have bought one EA and tested thoroughly with TDS. I prepared TDS data which match with actual real mode data from broker. This data preparation step include use of spread in real mode with commission charged by my broker. This makes sure that it matches with price movement of particular currency in live account. After I prepare this data I run back test with certain parameters and this EA is profitable on back-testing. However, when I try this EA on demo account this does not match with back-testing result. I do not expect it to match 100% but at least up to certain extent it should match with back-testing results. I have tested so many EAs so far using TDS and TDS was excellent to give me correct results. For those EAs I got good profitable result based on tester data but when I ran with TDS I got results with losses. So, I concluded that TDS catches every tick movement properly as it is in Live situation for demo/real account. This was good for all the EAs I tested so far but this particular EA which I am testing shows very good profitable results on tester during TDS back testing but when I run it demo account it shows losses and there is quite huge mismatch between tester and demo account result.
    My question is what could be the factor for this? How can I test this with TDS so that I can get the results that can match with tester? Is there anything I need to do to prepare data beside making spread and commission match to the broker?
    I would appreciate your feedback on this which will help me tremendously in gaining the insight of this issue.

    • #2253 written by birt May 27, 2015 (1 year ago)

      Generally, the smaller the pip target, the more misleading the backtesting results. If your EA closes at several pips all the time, it’s normal to have differences between tick data backtesting and live. Same goes for EAs that trade very volatile periods such as news.

  • #2254 written by sherif February 27, 2015 (1 year ago)

    Hello Birt
    Hello everybody
    what is the recommended test period we should use for monthly optimizing expert advisor working on H1 chart ?
    appreciate your help

  • #2255 written by Paulo July 14, 2015 (1 year ago)

    Hello Birt:

    As You wrote:
    “…This tool lets you automate the whole process and does all the runs for you, providing an exhaustive set of configuration parameters and a neat optimization report at the end. Priced at $29.95, it’s a veritable steal; the Walk Forward Analyzer is definitely a must-have for anyone doing serious EA development” ….

    Well, that guy told NOT MORE in EA biz.. He’s retired. and the WALK “never more”…

    So, please, what the alternative? What tool to make ass good like that Walk Forward.. I saw MATFRA, but is not frendly and (I think, until now) I need some bacharelor or MBA to put that running fine..

    I saw too some place where We need to send our strategies.. :LOL: really.. that’s guys are funny!!!!

  • #2256 written by Max June 8, 2016 (8 months ago)

    Can I be inboxed the $29.00 reactivation details

    • #2257 written by birt June 8, 2016 (8 months ago)

      Certainly, you’ve been inboxed 🙂

  • #2258 written by MAXWELL MATEY July 31, 2016 (6 months ago)

    How do I downgrade tsd to a version compartible with my license? TDS never autodowngrades to make this possible automatically

  • You may use these HTML tags: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>


  • Comment Feed for this Post
Go to Top