How to backtest using tick data with Metatrader 4

If you’re trying to follow this guide, you must have gone through acquiring tick data and converting it for Metatrader 4 usage and as a result you should have the HST files in your history\[your broker's name] folder and the FXT in your tester\history folder. If you’re not at this stage, please revise the guides linked above.

This guide is split in several sections:

  1. Enabling tick data backtesting
  2. How to verify it worked
  3. Running multiple Metatrader 4 instances from the same folder

Enabling tick data backtesting

Since the recent Metatrader 4 client builds no longer offer the ability to use custom FXT files, you need to run a special software that enables it to do that.

At this point, you have two options:

  • You can use the Tick Data Suite, which is a commercial (aka paid) software that has more features than the free script and is fully supported. A trial version is available.
  • Alternatively, you can use the completely free Birt’s patch script which has some limitations*. No support is available.

*The limitations that apply to the free script include but are not limited to:

  • You cannot run optimizations (trying to do so results in a crash).
  • It does not work with third party tools such as the Walk Forward Analyzer.
  • You must run the script manually every time you restart Metatrader 4.
  • The 2GB limitation removal is only available for builds 405+ and for select operating systems for previous builds.
  • If you run the script after performing a backtest without it, a subsequent backtest will result in a crash.
  • You have to manually enable real spread and you have to restart the terminal if you no longer want to use real spread.
  • There is no support. You have to make do with the older comments on the tick data page and with the troubleshooting section.

For a more in-depth comparison table, please head to the Feature matrix page.

Depending on your choice above, please follow the relevant guide:

How to verify it worked

If your backtest is running and the file in tester\history was not recreated, it usually means everything is ok. Naturally, it’ll skip the “Collecting M??” and “Using M??” steps. At the end of the backtest, you should see a green bar in the results tab and modeling quality 99% in both the results tab as well as on the balance chart.

If you run into any problems, please head to the FAQ & Troubleshooting page.

Running multiple Metatrader 4 instances from the same folder

If you’re using the Tick Data Suite, this is done automatically and you can start as many MT4 terminal instances you wish from the same folder.

Otherwise, if you are using the Birt’s patch script and you need to run multiple instances from the same folder you can use one of the loaders available in the loader archive on the tick data downloads in the Miscellaneous section. These loaders are working with builds 225-409; the generic loader in the main folder works with builds 405-409 while the generic loader inside the old folder will work with older versions. There are also individual loaders for several older builds but the generic loaders should work for pretty much everyone as long as the build used is not above 409. Please note that no support is available for these loaders.

Keep in mind that the generic loaders will need to configure themselves for your particular build so they will display a series of messages and close your terminal once the relevant offsets are found. This only happens the first time you run them and it is perfectly normal.

  • #124 written by birt March 17, 2013 (3 years ago)

    Regarding the crashes, it sounds like something is seriously wrong with your computer.

    If you followed the download and process instructions correctly, you should have ended with an FXT file for the currency pair and timeframe that you want to backtest on. For instance, if you want to backtest on EURUSD M1, you should have EURUSD1_0.FXT in your tester/history folder. Assuming you have that FXT there, you’d need to select EURUSD as currency pair and M1 as timeframe for your backtest.

    Also note that it’s not necessary to enable “visual mode” and you shouldn’t enable “use date” until you’re comfortable with the whole procedure. Finally, I would recommend not backtesting the EA you intend to backtest but starting with the MACD Sample and getting that one with 99% modeling quality before you move on to yours.

  • #125 written by Darren June 12, 2013 (3 years ago)

    I use the Tick Data Suite software. Everything is fine, however when i am running backtest for my EA, the 1st pending order give ” EURUSD,M30: OrderSend error 130″ ,but subsequent pending order give no error. My pending order’s distant is 40 pips away from current price. By the way, I have done backtesting on other MT4 without using tick data, it is fine.

    Please assist.

    • #126 written by birt June 15, 2013 (3 years ago)

      If the first pending order is the only one with the error, there must be something wrong with it. I would suggest adding a Print() right before sending the order and making it print all the parameters involved (current ask, current bid, requested price, SL, TP) in the backtest log file. Once that’s done, you can easily see why the error comes up.

  • #127 written by Jelks July 8, 2013 (3 years ago)

    Hi Birt,

    Major discrepancies here. We have an EA that three of us have tested. I’ll refer to the other two testers as A and B. We are all in different cities, but we have been phone (and email) conferencing.

    I spent quite a bit of time on the phone with A the end of last week. We kept getting discrepancies in our results, so I finally got him and B on the phone at the same time. Using the tick data we all three had earlier downloaded from Alpari JForex and converted using the same inputs in the CSV2FXT script, we each simultaneously ran Dreadnought in the Tester from 1/1/2011 to 7/1/2013 with our RiskPercent input set to 5. Our results: me, just under $93M; A, a hair over $36M; B, about $11.5M.

    No good. Thinking we might have different data, we each did the CSV2FXT conversion (again!), using the M1 chart. This time, we didn’t use any settings file, we just changed 2 inputs: FXTGMTOffset (set to 3) and UseRealSpread (set to true). And, of course, the CSV file name.

    Then, in the Tester, just in case there was some issue with with the RiskPercent input, we changed it from 5 down to 3.6. Then we ran it again, double-checking every single input, one by one.

    Results: me, $17,605,739.45; A, $9,462,334.58; B, $8,468,838.57.

    Here’s more: over that test period, B and I each had 553 trades, A had 554. And although our Bars in Test were all the same (934,664), our Ticks Modelled were all different — mine was 48,386,715; A had 48,386,776; B had 48,386,769. We’re all using exactly the same EA, the same data (supposedly — that’s why we all went over this extremely carefully), the same inputs (ditto), the same everything. So why would our results be so different?

    Many thanks,


    • #128 written by birt July 8, 2013 (3 years ago)

      The EA input parameters are saved in the backtest results files. I would advise getting the three backtest results and comparing the parameters saved in them once more just to make sure no error slipped in there.

      Assuming the parameters are identical, the next things I would check are:
      1. The input CSV files – they are probably different if the resulting FXTs are different. Use crc32, md5sum or something like that.
      2. The spread – you could backtest my Average Spread EA to check.
      3. The brokerage used to create the FXT files should also be the same. If different brokers are used, the values that are taken from the broker might make a large difference (swaps, stop distance etc.).
      4. If the history files were not correctly copied the indicators might have incorrect values. Additionally, since the testing period includes recent data, I would advise setting the HST files readonly to prevent MT4 overwriting a part of them.
      5. Inspect the result files trade by trade. Are the lot sizes the same? Are the profit figures the same? Does the difference accumulate over time or is it just a few trades that are different?
      6. Slippage – was it disabled on all 3 installations?

      • #129 written by Jelks July 15, 2013 (3 years ago)


        You said, “The brokerage used to create the FXT files should also be the same. If different brokers are used, the values that are taken from the broker might make a large difference (swaps, stop distance etc.).”

        So if you have identical CSV files from the same source, UseRealSpread is set to true, and all other inputs are identical when you run CSV2FXT, and you’re testing *within* the period for which you have tick data, you’re saying you can have different results with different brokers in the Tester???

        Then you said, “Additionally, since the testing period includes recent data, I would advise setting the HST files readonly to prevent MT4 overwriting a part of them.”

        When CSV2FXT finishes and it asks you if you want to move the FXTs to tester/history and the HSTs to history, I know it sets the FXTs to readonly (because the subsequent times I run it it always tells me they are). Are you saying it does *not* set the moved HSTs to readonly and we have to do that manually? So if I download tick data today, run the conversion, then run a test ending say 2 or 3 days ago, we might be using broker data that has overwritten parts of the HSTs we’ve just gone through so much trouble to create?

        Finally, you asked, “Slippage – was it disabled on all 3 installations?”

        How do you disable slippage?

        Thank you for all the suggestions, we are still trying to make sure we have everything the on the same page.


        • #130 written by birt July 18, 2013 (3 years ago)

          Yes, even with identical CSVs you will most likely have different results with different brokers. Some of the values that the script puts in the FXT are taken from the broker. Those that have the largest impact are the stop level and the swaps.

          The CSV2FXT script does not mark the HST files read-only because that’s dangerous. Readonly HST files are only suited for MT4 installations that are exclusively used for backtesting. Setting a HST file read-only might break regular trading. So, yes, if you didn’t mark them read-only manually and you were testing until a few days ago, your backtest might have included HST data that was overwritten by MT4, which is used for indicators running on a different timeframe.

          Finally, you disable slippage from the Configuration tool (Start -> Programs -> Tick Data Suite).

          • #131 written by Jelks July 19, 2013 (3 years ago)


            I currently have the “Enable slippage features” box UNchecked. Is that the default?

            I am going to have to digest for a bit what you said about the HST files not being read-only. First, I have never used a TDS-MT4 for live trading or even demo trading, only for back-testing. I *have* had other period charts of the same currency open, some with indicators.

            So if I understand this correctly, if the three of us want to conduct the exact same test so that we all get the same result, we should …

            a) Make sure we are all using the same JForex feed for the tick data (and of course using the same time frame for the download)?

            b) Make sure our TDS-enabled MT4 is the same broker and same account type?

            c) Make sure the “Enable slippage features” checkbox is unchecked prior to running CSV2FXT?

            d) Immediately after running CSV2FXT, immediately drop to the command prompt in the history folder and set the HST file[s] of whatever period we want to compare (attrib +R xxx.hst)???


            • #132 written by birt July 19, 2013 (3 years ago)

              a) Use crc32, md5 or something like that on your input CSV files to ensure they’re identical.

              b) Yes.

              c) Yes.

              d) Just answer “No” when asked if you want to copy the files, then exit MT4, mark the HST files read-only and finally move the HST files to history/[broker] and the FXT file to tester/history.

              You should also distribute a .set file for CSV2FXT and another .set file for the EA. If you’ve done all the above, the three of you will end up with identical FXT & HST files (you can check once more via crc32 or md5).

              By default, slippage is disabled.

              If after all these checks you still get different results, please email me the report files and the backtest logs.

    • #133 written by birt July 8, 2013 (3 years ago)

      Forgot to mention: also make sure that the base currency is the same in all cases. If you still can’t figure it out, please mail me the backtest reports, I’ll also take a look.

  • #134 written by jok July 9, 2013 (3 years ago)

    Hi birt, I have another question if possible, can you please explain maybe the differences between your guide and what tickstory is offering? Apparently there are various guides as well with which you can ensure 99% quality with data from them and apparently it works with mt4 latest build as well. If you can tell us any differences that would be great. thanks.

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

      As far as I know (haven’t checked recently but I doubt much has changed), Tickstory does not let you use variable spread, does not work with optimizations, does not remove the MT4 2GB file size limitation, does not let you enable slippage, does not let you backtest using tick data with third party tools. Also, its updates for the new MT4 builds have been known to take several weeks.

      • #136 written by jok July 9, 2013 (3 years ago)

        ok, thanks, that clears things up for me.

  • #137 written by jok July 9, 2013 (3 years ago)

    I cannot find anywhere a copy of mt4 build 408. You have any links? Maybe i am using google wrongly…

  • #138 written by Chris December 28, 2013 (2 years ago)

    Hi thanks for the tools they work great! Just one question. Backtesting EURUSD, (no issues with other pairs) many orders open at 20+ pips below or above price. What could be causing this?

    • #139 written by birt December 28, 2013 (2 years ago)

      The only reason I can think of for that to happen happen would be setting the spread to 20+ pips or perhaps creating the FXT during the weekend when the spreads are widened and disregarding the warning. Oh, it also could be that you selected a huge slippage but I strongly doubt that.

      If neither of the above is the case, please write an EA that prints the ask and bid prices prior to placing a market order and send a support email with the messages you are getting in the backtesting journal.

  • #140 written by Chris December 28, 2013 (2 years ago)

    Thank you, I’ll recreate FXT first.

  • #141 written by graziani January 13, 2014 (2 years ago)

    is it going to be possible to make tickdata backtest with new MT4 build>555 as the history files structure has changed?

    • #142 written by birt January 13, 2014 (2 years ago)

      Yes, I’ve been working on a beta TDS version since December but unfortunately I didn’t have the chance to finalize it yet. It’s most likely going to be available sometime this month but I’m not yet sure when.

  • #143 written by Jon January 22, 2014 (2 years ago)

    Is it possible to provide a separate loader script/program for build 509? If not, has anyone done this privately?

    • #144 written by birt January 22, 2014 (2 years ago)

      No, sorry, the script is no longer supported and all the functionality (plus more) has been folded into the Tick Data Suite.

  • #145 written by Jon January 23, 2014 (2 years ago)

    I used csv2fxt to convert the files.

    I also needed to confirm how is the ask data being stored in the hst/fxt files? I understand that it is being stored in the volume field, but I need confirmation for this.

    I know TDS autodetects real spread. But I need to know how to test/call the real spread outside TDS. See

  • #146 written by Jon January 24, 2014 (2 years ago)

    I had a question regarding mt4 backtesting in general. Is there an ability (script) to put the historical trades of a backtest on a chart without using visual mode? Visual mode is very slow for my expert advisor; about 2 minutes per trading day. But the non-visual mode is much, much faster. but then it is tricky to review the trades on a chart.

    I would prefer a script that can read directly from the reports tab, but if I have to manually generate the report first, that’s ok too.

  • #147 written by steve February 12, 2014 (2 years ago)

    Just some questions – these may have been answered in the text or in questions from other members so apologies if these are obvious:

    1/ after running the csv2fxt script the backtester will not work on ‘every tick’ option. Error in the journal is: “file cannot be opened”. This still happened when using ticksuite as well.

    2/ I am trying to accurately backtest an EA that uses a ‘pip-hunting’ strategy – do you have any suggestions on how to get more accurate data for this type of strategy or if there is any way that latency can be simulated. Also from your experience is there any brokers that you would recommend for this type of trading strategy?

    3/ you have mentioned the ‘walk forward’ website. After looking briefly at this software it seems that ‘walk forward’ software merely uses the results created by the MT4 optimiser rather than processing the data in any more accurate method? Is this correct?

    Thanks for your valued input.

    • #148 written by birt February 12, 2014 (2 years ago)

      1. You will need to provide more info. There’s a complete mess now with the new MT4 builds so please send me an email with the TDS version used, the MT4 version used, the CSV2FXT version used and the relevant excerpt of the backtesting journal.

      2. You typically can’t backtest these strategies accurately with MT4. The Tick Data Suite lets you configure slippage, but simulating execution delay is not possible. Also, even with the slippage simulation the results for EAs like Million Dollar Pips can be misleading.

      3. The Walk Forward Analyzer doesn’t do any optimization of its own, it uses the MT4 optimization engine indeed. It simply helps you find optimized settings while avoiding curve fitting.

  • #149 written by steve February 15, 2014 (2 years ago)

    mt4 build 509, TDS v1.3.0B,, CSV2FXT v0.44.
    Error: Journal: TestGenerator: internal error because the file not opened

    • #150 written by birt February 15, 2014 (2 years ago)

      As described in large script on the download page, CSV2FXT 0.44 and upwards are only compatible with build 545+ and produce files that are only compatible with these builds. You need to use CSV2FXT v0.43. Also, the error in your journal suggests that you were running MT4 without TDS, make sure the title bar says “with Tick Data Suite v1.3.0”.

  • #151 written by pippolo February 15, 2014 (2 years ago)

    I can not do more to backtest on mt4 build 600
    Use csv2fxt 0.46 FXT file created
    launch backtest but does not work

    • #152 written by birt February 15, 2014 (2 years ago)

      Please email support from the email address associated with your Tick Data Suite support plan and include the following info:
      – Tick Data Suite version used
      – Relevant lines from the backtest journal
      – The location you installed CSV2FXT 0.46 to
      – Whether you are using the /portable switch or not

  • #153 written by Jon February 21, 2014 (2 years ago)

    I just learned some interesting things about ram disks and ram cache. I was wondering if anyone is running their backtests in a ram disk? I have about 8gb free on avg, but mt4 doesn’t take up too much memory. The backtests can take several hours with my EA on 3-4 years of data (and that’s with NO visual mode on an SSD sata II drive). I have 4 cores (intel, 3rd generation laptop), but only run up to 3 simultaneously.

    I’m wondering if ram disk can speed up the writes. I understand it is great for speeding up things like video/photo rendering, browser caches, etc. I can copy the entire mt4 folder to the ram disk with the fxt files needed for a backtest (about 2-3.5 gb for 4 year backtest depending on the pair; you can make the test file shorter if you needed to) I do also want to test and see how long it would take to generate the fxt files from csv.

    Was curious to see birt or other’s experience using ram disks with backtesting or even live testing.

    Programs under consideration: Ramdisk:

    RamCache: . Both are free for the time being.

    • #154 written by birt February 21, 2014 (2 years ago)

      The bottleneck is the CPU, not the disk speed. You might get a decent improvement when converting CSV files to FXT, but I’d wager the improvement when backtesting is going to be minor.

      The same idea occurred to me a while ago but I eventually gave up because it’s pretty hard to get such a software to run on a VPS or on a Windows Server OS.

      • #155 written by Jon February 21, 2014 (2 years ago)

        The RamDisk/RamCache software can be used on win2003/2008/2012. But for a ramdisk, to run an entire installation + files on tick fxt, you would probably need a minimum of 700MB for a 6 month backtest. Ram on a vps is usually more expensive compared to buying it for a local machine.

        • #156 written by birt February 21, 2014 (2 years ago)

          Back then, I had a SWVPS instance with 12 GB RAM. None of the software I tried worked on it, including the two you mentioned and some 3-4 others, some of them fully featured trials of paid products. I suspect there was something wrong with the VPS setup, though.

          In any case, like I said before, disk speed is not the bottleneck. Just think about it – depending on the EA, a backtest can sometimes last hours when using tick data. That’s more than enough time for any disk to read a file of only several GB. Not to mention that the MT4 FXT reading is buffered with a significant read-ahead (10000 ticks iirc).

          Sure, if you have a file of 4 GB and its backtesting takes less than 2 minutes, then it might be that you have a disk bottleneck and you can think of improving that area.

          Finally, it’s probably much easier and just as efficient to use a SSD drive.

          • #157 written by Jon February 23, 2014 (2 years ago)

            I can confirm that it appears to bethe processor that is the main bottleneck. RamDisk might be ok if you have a ton of ram and wanted to keep your system on and run it that way…..but the performance was very similar to what I had on SSD drive.

            I do have SSD….but another way especially for HDD users would be to use SuperCache or PrimoCache that allows you to use extra ram as L1/L2 cache (mainly L1 cache and delay-write is what will speed things up).

            I’ll continue with the Cache program as that will speed up other things going on in the computer.

            I also used a program called PRIO that allows administrators to assign custom priorities to different windows processes and save the priority for future launches of the same program. That was useful and it seemed to allow for a faster processing when set to very high priority.

            • #158 written by Jon February 24, 2014 (2 years ago)

              PrimoCache (L1 cache, with delayed write) seems to be helping with multiple runs of the backtest. Previously the backtest on strict settings was taking several hours. But it seems if I do the first pass on lighter settings (requires less processing), I can go through 2 years in about 20-25 min. Then each subsequent pass (same pair) is a little quicker, but particularly on settings that were more strict, and was taking up to 12 hours or longer in some cases.

              I will test a few more pairs, but mt4 terminal.exe is showing massive read I/O activity. So that may be where primocache can help.

              And I’m running chkdsk.exe in the background trying to save a hard disk that failed a repartitioning :(. that’s hardly using any cpu, but the reads/write I/O is very large.

              • #159 written by jivetrader March 7, 2014 (2 years ago)

                i’ve read that if you are using SSD hard drive then ramdisk doesn’t give any benefit. makes sense…

                • #160 written by Jon March 7, 2014 (2 years ago)

                  Actually, I’ve found that the RamDisk is not worth the trouble to copy over the install and data files each time.

                  But the Ram CACHE does appear to be fantastic at speeding up the tick data testing. What used to take several hours to a day to test 4-7 years of backtest data only takes around 2 hours. And I’m using an SSD drive. In fact, the settings with the most calculations I would typically use is only taking about 90 min. And looser settings I can 1/2 that.

                  I use a backtest setting that is quick to do the first backtest run on a particular pair. Then each subsequent run on the same pair is noticeably faster.

                  The key is to make sure you set the ramCache size to be at least slightly larger than the fxt file. So if the fxt file is 4GB, the ramcache should be 4.2-4.5. Make sure nothing else is running, unless you can make the ramcache big enough to accomodate.

                  7 year GBPAUD is about 4.9 Gb. I had a RamCache set at 6gb, and I have 6gb ram free. the way to test if your ram is being used is to watch the ‘total read meter’ and the ‘total cached read’ meter. Primarily running mt4 backtests I’ve grown to 459 GB/ 429 GB total/cached reads.

                  Try not to run too much other programs while testing. I use PrimoCache which is still free. You might have to restart your computer if you need to adjust the ramCache size.

                  • #161 written by jivetrader March 7, 2014 (2 years ago)

                    jon, thank you for the tip and the details ! looking forward to using the ramcache. assume you are using it in ‘read’ mode, as ‘write’ seems unnecessary for our purposes

                    adding more physical RAM to the pc (currently at 8GB) now starts to make sense too. cheers

                  • #162 written by jivetrader April 17, 2014 (2 years ago)

                    jon, if you see this post, could you share your exact settings for PrimoCache? i am getting a cache hit rate of <4% during optimizations and that sounds like it isn't doing much of anything.

                    i'm on Win7-64 16GB ram. C drive is SSD. tick data HD is a (slow) WD Red drive.


  • #163 written by jivetrader March 7, 2014 (2 years ago)

    i have converted my TrueFX data using CSV2FXT and i’m getting started with TDS. i have made a new install of MT4 and ran the TDS Configurator on it. i notice my broker has forced the platform to update to v610.

    1. i don’t want to connect my testing version of MT4 to the internet. do i copy my HST files to \history\default?

    birt, i think you addressed this a couple of days ago but i am still confused. i think you said: “for the \history\ files, MT4 will use the folder of the broker that it was last connected to.”

    what if it has never connected and there is no broker server subfolder? where do i put the files?

    2. is there a concise guide to dealing with v610?

    • #164 written by jivetrader March 7, 2014 (2 years ago)

      ok since i intended to use MT4 v509 and i cannot help it from updating to v610 does this mean i need to use the other CSV2FXT and re-run the script all over again to generate new FXTs and HSTs for all pairs?

      • #165 written by birt March 7, 2014 (2 years ago)

        1. I’ve no idea what folder you should put them into if you don’t connect. I suggest connecting once and then deleting the account, that will make MT4 use the broker folder that you connected to.

        2. There’s no build 600+ guide yet. The only differences are the file locations.

        If you want to use build 509, you need to use CSV2FXT v0.43. If you want to use build 600+, you need to use CSV2FXT v0.44. The FXT and HST files are NOT compatible between 509 and the newer versions so you will have to recreate them if you change from one version to another.

        An easy way to prevent autoupdate is to rename the WebInstall folder in ProgramData\MetaQuotes.

        • #166 written by jivetrader March 7, 2014 (2 years ago)

          thank you for the gracious reply Birt. apologize for burdening you with extra questions. although having these answers so concisely stated is helpful and will save time.

          since the world has gone to v600 i shall check my indicators for compatibility and catch up. if there are other reasons to stay with 509 i would love to know them. thanks again.

  • #167 written by don April 16, 2014 (2 years ago)

    Hi Birt.

    I just noticed something whilst tick backtesting.

    The ‘Ticks modelled’ number is NOT the same as the number of ticks that are in the FXT.

    After running the CSV2FXT script with ‘Remove duplicate ticks’ set to ‘true’, the experts log reports:

    16:31:41 CSV2FXT EURUSD,M1: 107034447 ticks added.

    but when I do a backtest the ‘Ticks modelled’ number is only 76695831.

    This is a difference of 30,338,616.

    Why is MT4 not processing all the ticks in the file?

    The same thing is occurring on builds 625 AND 509 (except the difference is different).
    I have tried 2 different computers.
    I am testing the entire date range.

    • #168 written by Jon April 16, 2014 (2 years ago)

      1) Are you sure you are using the entire range of price data, not just a fixed date range?

      2) does your EA skip over certain periods? (although I don’t think this would affect modeling as the EA still must scan over these periods anyway).

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

        It might be #1.

        Re: #2, you are correct, even if the EA disregards certain periods the number of ticks modelled is not affected.

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

      Please don’t post here and send me an email with the same issue – either of them is enough and I only have to provide a single answer instead of two 🙂

      Anyway, I answered your email but there’s something that I forgot to ask: is your modelling quality 99%?

      • #171 written by don April 16, 2014 (2 years ago)

        1) I am using the entire range
        2) EA does not skip

        …….both of the above are also verified by the fact that when i look at the trade history, there are trades from the very 1st day of testing until the very last day

        – the modelling quality is 99%

        I have found 2 posts out there (on the web) that refer to the EXACT same number of ticks modelled – what are the odds?? Perhaps there is some new hard limit in build 625??

        I will do the tests you suggest in the email and also more tests of my own. i will report back as soon as finished.

        In the meantime, when you did you test, how many ticks were added by the CSV2FXT script?

        • #172 written by don April 16, 2014 (2 years ago)

          OK, I have just done some more testing and I believe I have found the problem.

          The original test was using a 7GB CSV file > a 5.8GB FXT file. Using this 107034447 were added, but only 76695831 were modelled.

          I just ran the test again using a smaller CSV file.

          3GB CSV file > 3.2GB FXT…. in the first test, CSV was bigger than FXT, but in this test, FXT is bigger than CSV

          Using this new, smaller FXT, 59312325 were added AND 59312325 were modelled! Perfect!

          So this problem appears to be related to the size of the FXT, perhaps the problems are occurring when the FXT is over 4GB?

          • #173 written by don April 16, 2014 (2 years ago)

            Perhaps this problem has existed all along, but it was never discovered because….

            a) very few people use an FXT over 4GB

            and b) those that did have never noticed the difference……I have tested with an FXT file this big for the last 8 months and I haven’t noticed until just NOW!!

            So maybe this is a problem that has been occurring for a long time but has only just been noticed?

            Another question:

            ….even though MT4 is reporting a lower ticks modelled number than are in the FXT, is it actually using all of the ticks in the FXT? Maybe this is simply a reporting error and all the ticks are actually being used, even though it says they are not?

            I will do another test, but change the EA so that it writes each tick to a file, then we will see how many ticks are really processed in the backtest.

            • #174 written by don April 16, 2014 (2 years ago)

              aha! Success!

              The EA successfully logged ALL of the 107034447 ticks!

              So, this means the problem is simply MT4 not reporting correctly!

              However, this exercise has brought to light a new problem….

              when I was logging the ticks to a CSV file, I also recorded the tick Volume reading. I recorded “Volume[0],iVolume(NULL,60,0),iVolume(NULL,1440,0)”.

              The 60 min and Daily volume came out fine, however “Volume[0]” did not. Volume[0] gave ridiculously large numbers such as 296352743425, 38654705666, 38654705667.

              Why? This means that if testing an EA that makes decisions based on Volume[0], that it would not be correct.

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

                MT4 cannot read files over 4GB. The Tick Data Suite implements a workaround for this limitation, but the internal MT4 counter is still a 32 bit variable, meaning it’s limited to the 32 bit data range (up to 4GB). The number you mentioned (76695831) is exactly the number of ticks that fit in 4GB plus the file header (each tick is 56 bytes if I recall correctly). As your investigation concluded, it’s simply a visual issue in the report and the ticks are correctly fed to the EA.

                Regarding the volume, it is being used for storing the spread when Use Real Spread is enabled, that’s probably the cause. In MT4, the volume is actually the number of ticks in the current bar and over 99% of the EAs do not use this information. If your EA uses the volume, you will have to disable real spread.

  • #176 written by don April 16, 2014 (2 years ago)

    New problem.

    I am comparing the same EA backtest from build 509 and 625.

    The results are VERY similar. Except on some of the trades, the opening price is 0.1 pips different.

    I looked at the original tick data in my tick database. I discovered that on some of these trades where the opening price is different, build 625 has opened the trades at a price that ISN’T in the ticks! For example, 509 opened the buy trade at 1.28324 (which is a valid tick in the database), but 625 opened this same trade at 1.28323. 1.28323 is NOT a tick in the database!!!! What on earth is going on?

    • #177 written by don April 16, 2014 (2 years ago)

      I have done some more research on this issue and have isolated something. The discrepancies all occur on BUY trades ONLY. All of the sell trades are perfectly the same.

      I do not know for sure how CSV2FXT, TDS and MT4 strategy tester work, but I’m thinking this has something to do with the way it constructs the Ask price. My guess is that it is taking the raw Bid price and using this as the Bid (hence the same every time), but then for the Ask price, instead of actually reading the exact ask price from the file, it is instead taking the Bid price and ADDING the spread in order to get the Ask price.

      – Bid = Bid in file
      – Ask = Bid + Spread

      If this is true about how it constructs the ask, then the problem lies somewhere in the spread and adding to the ask.


      a) CSV2FXT is calculating spread wrong

      b) somewhere in the process there is rounding, and the rounding in build 625 is either more accurate or less accurate then in 509

      Birt, do you think you can find out exactly what is going on? Build 625 may just be more accurate on the rounding, in which case hurray for build 625! But if 625 is actually rounding wrong, then need to know so can take into consideration.

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

        Your guess about the bid/ask calculation is correct. The spread is stored in the volume field hence the weird volume figures you’re getting.

        it sounds like the issue is indeed related to rounding, I will look into it during the weekend.

        • #179 written by don April 16, 2014 (2 years ago)

          I think I have found out more…..

          I ran the backtest in 625 and 509. In each test I recorded “MarketInfo(NULL,MODE_TIME),Bid,Ask,Close[0],Volume[0],iVolume(NULL,60,0),iVolume(NULL,1440,0))” each time a trade entered.

          The problem is the Volume[0] column – the column which stores the spread. It is totally jacked up in the 625 file.

          This is the 509 file….
          Time Bid Ask Close Volume1 Volume60 Volume1440
          0 1.28343 1.28353 1.28343 0.0001 1 1
          0 1.28335 1.2835 1.28335 0.00015 1 1
          0 1.28327 1.28337 1.28327 0.0001 3 3
          0 1.28307 1.28331 1.28307 0.00024 6 6

          This is the 625 file
          Time Bid Ask Close Volume1 Volume60 Volume1440
          1115098992 1.28343 1.28352 1.28343 38654705665 362 2813
          1115100482 1.28335 1.2835 1.28335 64424509441 57 3006
          1115100607 1.28327 1.28337 1.28327 42949672961 78 21
          1115100793 1.28307 1.28331 1.28307 1.03079E+11 99 42
          1115101142 1.28321 1.28335 1.28321 60129542145 143 86

          Now that I have isoloted it, will it still take you to the weekend to fix it?

          • #180 written by don April 16, 2014 (2 years ago)

            Surely the problem is a small change in the CSV2FXT, right?

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

              That is not the problem. The FXT format is very different from build 509 to the newer builds and the TDS had to be about 50% rewritten. It’s normal for the volume in builds 600+ to look as it does when real spread is enabled.

              In all likelihood, the problem has nothing to do with CSV2FXT and it’s a very subtle rounding issue. I’m not sure if you’re familiar with the issues related to the precision of floating point numbers, but that’s probably what’s causing it. If that’s the case, it’s most likely not easy to fix and it’ll require releasing a new TDS version.

              • #182 written by don April 16, 2014 (2 years ago)

                Damn. That’s a real bummer. I’m in the middle of a huge backtesting/optimization. Thanks Birt, hopefully you’ll find the problem soon.

  • #183 written by don April 16, 2014 (2 years ago)

    Birt, I have been thinking….I don’t understand why there is any rounding involved.

    Spread = Ask – Bid
    Ask = Bid + Spread

    ….where is the rounding? This is a simple calculation, how can it been made wrong?

    • #184 written by don April 17, 2014 (2 years ago)

      I have done some research and understand a little more. So the FXT file is binary, and in binary certain numbers cannot be stored precisely. So when MT4 reads from the FXT and adds the spread to the bid, it is reading the binary number which is not exact.

      Question: why was this not a problem in the older MT4 builds?

      The numbers here are a of maximum 6 digits (mostly 5 digits max after the decimal point) so if the numbers are always Normalized, then surely the problem will go away?

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

        That is precisely why this is not a straightforward fix – this should not happen so finding the reason will not be a 1 minute thing. Since it only appears somewhat randomly, the only reason I can think of is a precision issue but I’m not sure where it occurs.

  • #186 written by don April 20, 2014 (2 years ago)

    Any luck yet birt?

    (BTW, i didn’t realize you are Romanian. I am from the UK and when I was 16 years old my school offered a trip to Romania and I chose to go. I loved it so much, that when we got back to the UK, i quit school and went back to Romania with the intention to live there. Anyway, things changed and I eventually came back to the UK after 6 weeks and took an opportunity in the US. I was mainly in Arad.)

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

      Didn’t even get to start looking into it yet, I’m afraid. Easter weekend and all that… I hope I’ll have a chance to take a look tomorrow.

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

      Thanks for submitting your solution via email! I will release a fixed CSV2FXT shortly.

      On another matter, regarding volume, you should be able to use it if you do volume &= 0xFFFFFFFF;

  • #189 written by jivetrader April 25, 2014 (2 years ago)

    Birt, do you recommend any programs other than MT4 for faster backtesting & optmizing? or do you recommend keeping with MT4 for testing reliability? e.g. should one consider Amibroker or something else ?

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

      I’m not making any recommendations in that regard.

  • #191 written by don May 7, 2014 (2 years ago)

    Hi Birt.

    I just realised that the script can create weekly and monthly FXT files. However, I was under the impression that it was not possible to test on any time frame higher than Daily in MT4. Am I missing something? Is there a way to run a test on a weekly time frame?

    • #192 written by birt May 7, 2014 (2 years ago)

      Nope, it’s not possible. Thanks for pointing that out, the 2 options will be removed from the next version.

  • #193 written by jivetrader May 7, 2014 (2 years ago)

    i created all of my v600+ history & tester files in the same way yet i am not able to test M5 timeframe in the Tester (other TFs work fine).
    2014.05.07 12:38:24.448 MR_VC Extreme: no data for testing
    2014.05.07 12:38:24.448 TestGenerator: invalid file for ‘EURUSD5’
    2014.05.07 12:38:24.446 TestGenerator: actual tick file “F:\IBFX MT4 US OFFLINE\tester\history\EURUSD5_1.fxt” found

    my files were created using csv2fxt v.46
    should i download .48 and just recreate the M5 files?

    • #194 written by birt May 7, 2014 (2 years ago)

      Sounds like a file system issue. I’d run a chkdsk if I were you.

      In any case, updating to 0.48 is a good idea and you will have to recreate the file anyway.

  • #195 written by jivetrader May 12, 2014 (2 years ago)

    as i feared when i first obtained TDS, my offline MT4 installation has somehow gone online (probably after installing an addon) and my .hst files are being overwritten with broker data (for charts & timeframes that were open). please advise.

    • #196 written by jivetrader May 12, 2014 (2 years ago)

      i am now blocking this instance of terminal.exe in my firewall. but this is not preferable. also i am still having the issue where terminal, when launched, opens the new account wizard every time. this gets in the way of other apps like the WFA that need access to terminal.

      these are seemingly simple things but if TDS and tick data requires offline mode then please explain exactly how to keep terminal 1. offline and 2. bypass the wizard asking for new account. thanks

      • #197 written by birt May 12, 2014 (2 years ago)

        The Tick Data Suite does not require you to be offline. If you are backtesting recent periods of time and want to prevent MT4 appending & overwriting recent data, simply set the relevant HST files read-only. Note that it’s not advisable to trade that currency pair with that MT4 client after you did that.

        You can bypass the wizard by simply having an account configured (e.g. by logging in once).

  • #198 written by don May 13, 2014 (2 years ago)


    I just created FXT’s with MT4 build 646 and they don’t work!

    The message in the strategy tester journal is:

    2014.05.12 19:58:05.260 TestGenerator: actual tick file “D:\MT4\FXPro 646 1_1\tester\history\EURUSD1_0.fxt” found


    2014.05.12 19:58:05.260 TestGenerator: invalid file for ‘EURUSD1’

    • #199 written by don May 13, 2014 (2 years ago)

      Just confirmed, these same FXT files that DO NOT work on build 646 DO work on build 625. So must be a format change in build 646.

      • #200 written by birt May 13, 2014 (2 years ago)

        Thanks for bringing that up and for doing the 625 test. I’ll look into it tomorrow. In the meantime, I recommend staying put with build 625, there’s not much reason to update anyway.

        • #201 written by don May 13, 2014 (2 years ago)

          disregard this problem, it seems to be something weird happening on my computer. working now.

          • #202 written by birt May 13, 2014 (2 years ago)

            Thanks for the update, saved me some time.

            I’d suggest running a chkdsk for good measure.

    • #203 written by jo July 21, 2014 (2 years ago)

      Hi, I confirm the bug of MT4 (v4,670) when using it with Tickstory FXT-file over 4GB: I have a 8GB EURUSD file from 20070101-20140719. The backtest was broken at 20110429. I started again from 20110401 TO 20110429. The result was the same: broke down at 20110429. I started from 20110428-20110429 also with same result. There have been no error messages, but the last open positions have been closed by the message “close at stop”.
      Then I exported ticksotry data to MT4 from 20110101 to 20140719 and it worked well. Hence definitely the error is in the data, not EA. And the error is in the FXT-file, or MT4 or Tickstory, but definitely not in win 7/8/8.1 because they use NTFS with a file limit of 25 TerraByte! Please try to informe/aske for debugging this problem (Metaquotes or ticksory)!! As more user are asking as soon we will have a solution. The above discribed solution is shit, because if you test in two or thre parts, it can be, that the settings of the EA for first part of test are working well but for the seconed or third time-area your EA can lose 100% ^^

      • #204 written by birt July 21, 2014 (2 years ago)

        The Tick Data Suite increases the 4GB limitation to over 100 GB. Perhaps you should download the TDS trial and repeat the experiment with it.

        • #205 written by Jo July 22, 2014 (2 years ago)

          Thank you for the interesting suggestion, but on their site they offer only DL of tickstory lite.

          • #206 written by birt July 22, 2014 (2 years ago)

            And why are you posting here then? This site deals mostly with the Tick Data Suite.

  • #207 written by Jo July 22, 2014 (2 years ago)

    Hi, sorry. It was a misunderstanding. Thanks for hint. I have found now the link to the TDS and will try backtesting with it.

    • #208 written by birt July 22, 2014 (2 years ago)

      No problem at all. Don’t hesitate to contact me if you need any assistance with the Tick Data Suite.

  • #209 written by Cyril December 1, 2014 (1 year ago)

    about the commition when i prepare csv2fxt i’m with alpari ecn pro
    I pay 4 euros per lot , did i write 4.0 or 0.4 on the setting of the script ?
    Thank’s in advance

    • #210 written by birt December 1, 2014 (1 year ago)

      You specify 4 in the cash commission field. Make sure you select EUR as the backtest currency or otherwise it’ll charge USD.

      • #211 written by Cyril December 1, 2014 (1 year ago)

        Thank’s a lot Birt !

  • #212 written by Birdi January 27, 2015 (1 year ago)

    Hi the walk forward analyzer from easy forex isn’t available any more. Why? Does anyone know a competitot?

  • #213 written by sam January 27, 2015 (1 year ago)

    I am doing backtesting on 3 computers and 5 servers,
    On each i have 4 mt4
    So i have 32 mt4 terminals.

    Do i need to buy tds for each server
    And for each computer?

    • #214 written by birt January 27, 2015 (1 year ago)

      If you wish to run tick data backtests on each of them, you need a license for each of them. There’s a promotional package that you can purchase – 5 licenses for the price of 4, with a single monthly subscription. Note that you will need a 2nd monthly subscription if you need 3 other licenses. Please don’t hesitate to send me an email if you find anything unclear.

  • #215 written by Sel May 11, 2015 (1 year ago)

    Hi Birt,

    I compared TickStory and your TDS together and TickStory gives me a much better result over 1 month. Why is this so? They both get their tick data from Dukascopy.


    • #216 written by birt May 11, 2015 (1 year ago)

      It depends on the settings. If you used real spread in TDS, the results will normally be worse than with TickStory which cannot use real spread.

  • #217 written by Sel May 11, 2015 (1 year ago)

    Real Spread was turned off by default in your converter script.

    • #218 written by birt May 12, 2015 (1 year ago)

      In that case I suggest checking trade by trade and comparing the differences. I’m not familiar with the way TickStory handles stuff but it could be that your EA didn’t have history for a particular timeframe if it’s using multiple timeframes or simply did not have enough history. There can be a number of reasons but without inspecting the differences one by one it will be impossible to pinpoint one.

      • #219 written by Sel May 12, 2015 (1 year ago)

        I have found the issue. I was using an FBS platform as the base for my TickStory tests and a Pepperstone one for TDS’s. Once I made the TickStory one a pepperstone, it came in within a few dollars of each other.

        Also, MT4 has a history file size limit of 4GB. Approximately how many years of Tick Data is this?

        • #220 written by birt May 12, 2015 (1 year ago)

          I assume you’re talking about FXT files and the answer is: it depends. If you’re using Integral tick data it can be as low as two years. The Tick Data Suite removes that limitation anyway.

  • #221 written by Jon June 28, 2015 (1 year ago)

    I tried to run a backtest as normal for mt4 b693. the broker (IC Markets) is now reporting ‘old version’. But this is not the only problem. When I run a backtest, I get an OrderSend error 4112, trading by experts is prohibited.

    So now we cannot even run a backtest on old versions of metatrader? This is odd. I can understand not using it for live trading….but why would i not be able to use it for backtesting? Even if the broker prohibited ea trading on live testing, a backtest should have nothing to do with server.

    I still wish to be able to run backtests as normal on my server.

    • #222 written by birt June 28, 2015 (1 year ago)

      I don’t have any idea what may be causing that error and I do not provide MT4 support. In addition, your support subscription has expired.

  • #223 written by Jason Smith July 12, 2015 (1 year ago)

    I’ve been using to TickStory to import my FXT files into MT4. It has a setting to set the currency spread during export. When You use the tickstory launcher, backtests will use that spread. The Spread setting in Strategy Tester has no effect.
    My question is if I use TickStory to import data, but use TDS to launch, will the spread in my data be used? The Spread setting in Strategy tester DOES have an effect. I am concerned that I am applying the spread twice, or possibly not applying a spread at all.
    (I believe TickStory uses the volume field to store the exported spread value)

    • #224 written by Jason Smith July 12, 2015 (1 year ago)

      Never Mind… I will just reconfigure all my data using CSV2FXT.

    • #225 written by birt July 12, 2015 (1 year ago)

      Since builds 8xx, the fixed spread configured in CSV2FXT or in Tickstory has no effect anymore and is superseded by the Spread field in the MT4 backtesting pane. Note that if you use real spread it will work just like before.

      As a side note, Tickstory doesn’t use the volume field to export the spread, CSV2FXT does that and only if you use real spread.

  • #226 written by Desmond December 11, 2015 (10 months ago)


    Is it normal for a backtest on 1 minute tick data for a period of 6 months to take 5+ hours?


    • #227 written by birt December 11, 2015 (10 months ago)

      It depends entirely on the EA but it’s definitely quite slow. Just test the MACD EA to see if there’s a difference. You might want to look into optimizing your EA if there is.

  • #228 written by Jensen March 28, 2016 (7 months ago)

    Hi Birt,

    I am amazed by the capability of CSV2FXT which enable real (variable) spread.
    I convert from CSV to FXT with real spread enabled.
    I have 1 question, what should be the value to enter in backtest UI spread box?
    I backtested few times by using different spread value, it gives me different result.
    Is the value entered into Backtest UI add as a additional spread to FXT?

    Thanks in advance!


    • #229 written by birt March 28, 2016 (7 months ago)

      If you enabled “Use real spread” and you’re using TDS, that field has no influence at all and you should be getting exactly the same result no matter what you put in there.

      I took the liberty of sending you an EA to the email address you used to post the comment here – you can use that EA to check if your FXT is actually using real spread.

      If you need to increase or decrease the spread when using real spread, you can use the Spread Padding parameter in CSV2FXT.

      • #230 written by Eric April 27, 2016 (6 months ago)

        Hi Birt, can you send me same ea to test?

        Thanx in advance.


        • #231 written by birt April 27, 2016 (6 months ago)


      • #232 written by Igor September 5, 2016 (1 month ago)

        Hi Birt,

        Installed everything and prepared data as per your guides. Terminal v. 4 Build 1010 and TDS 1.4.6. Real variable spread from FXT does not work. When I change value in Spread box of MT4 UI, the results of the test change.

        I wonder what could be wrong and how to fix it.


        • #233 written by Igor September 5, 2016 (1 month ago)

          Journal entry…
          2016.09.05 13:43:59.765 TDS: Using configured spread 99999.

          Spread: 0.0
          Use real (variable) spread: true

          • #234 written by birt September 5, 2016 (1 month ago)

            I’d send you the EA I sent to Eric but unfortunately I am on vacation for a couple more days and don’t have access to it. You could make a small EA that prints the difference between ask and bid on the chart by means of the Comment() function and backtest it on your data in visual mode – if the difference varies, it’s using real spread; if not, check that you are indeed backtesting the symbol and timeframe that you created the FXT for and that the FXT is the one you created (should be read-only).

            • #235 written by Igor September 5, 2016 (1 month ago)

              Yes, you’re right. I wrote a simple EA that prints the spread and it takes it from the FXT.

              It looks like the EA I was going to test, implicitly uses the spread value from the UI in backtesting. It is not my code and I wonder how to rewrite it so it uses spread from FXT.

              They use
              gSpread = MarketInfo (Symbol(),MODE_SPREAD);

              • #236 written by birt September 5, 2016 (1 month ago)

                You could simply change that to
                gSpread = Ask – Bid;

                Alternatively you could wait for TDS2 which will enter public beta this week and which also addresses this particular problem.

                • #237 written by Igor September 5, 2016 (1 month ago)

                  Cool. Will wait for TDS2. Keep me posted. Thanks!

  • #238 written by Anthony July 24, 2016 (3 months ago)

    Hi Birt, when I run a back test optimization with multiple MT4’s and the same parameter set can TDS maintain a local cache of which parameters are currently being run? At the moment it seems I have multiple MT4’s running the same optimization test (same input parameters). Is this functionatlity something you could look into adding?

    • #239 written by birt July 24, 2016 (3 months ago)

      New MT4 builds appear to reload the parameters from the saved ini file. Not much I can do about that. Try to save a .set file with the parameters for each instance and load them right before clicking start in each of them.

  • #240 written by Jon August 19, 2016 (2 months ago)

    I noticed that with b988, when using TDS to load multiple terminals, that the tester log does not have multiple log files. Before you would have a log file like 20160819.log and then 20160819z.log or something like that to distinguish between multiple terminals. but now it seems like each terminal shares one log file.

    Can you and other users confirm this?

    • #241 written by birt August 19, 2016 (2 months ago)

      I added a ticket for this and will look into it when I have a chance but right now I have my hands more than full with releasing the new beta so I’m afraid it will probably be a while until I get to sort it out.

  • #242 written by Jon August 20, 2016 (2 months ago)

    Having been involved in developing trading systems, I fully understand being tied up with programming.

    The bug simply means that there is only 1 tester experts log. I have not run live across TDS terminals. But I would rarely do it that way anyway. I run multiple terminals of the same installation folder so that I can run several tests on the same data simultaneously.

    Any idea when the beta will be completed?

    • #243 written by birt August 20, 2016 (2 months ago)

      It will be released in 1 to 3 days.

  • #244 written by SuperFan September 4, 2016 (1 month ago)


    Last year, we had talk about press pending order for slippage.
    At that time, we decided to don’t fill at pending price of order,don’t fill at a price from approximate range.
    fill at the next tick price, use next ask or bid price for stop/limit order.
    Now, did you add this feature?
    if not, I want to remind you.
    If you can not achieve near days, could be considered to force the output to a separate log, such as on the \test \ sliappage \[name of EA]_[EURUSD]_[Time].log
    Each pending transaction record, fill time, sell/buy, lots, pending price, ask and bid.
    With the first word mark, in order to filter.
    use TAB ; , or something to delimited, in order to put into excel.

    Therefore, it is possible to calculate in excel in every slippage value of transactions, the total number lots of all traded orders, and not only know the times from report of MT.

    This is a very exciting features, I would like to see as soon as possible.

    • #245 written by birt September 5, 2016 (1 month ago)

      I already replied to this post on a different page. To have a short answer here, delay-based slippage is a planned feature that will probably be implemented in TDS2 later this year, after its release.

  • #246 written by SuperFan September 4, 2016 (1 month ago)

    One more thing, for reference future form hst data files in EA running,
    Do you have any good way to detect? TDS can make direct reports.

    • #247 written by birt September 5, 2016 (1 month ago)

      It might be possible but definitely not easy. It would help if you could link an example. In any case this feature isn’t a priority and I’m not making any promises regarding its implementation.

  • 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