gone. i'm no longer sharing my work. this thread can be binned.
QuoteDislikedOne of mt4's many limitations is the inability to view more than one chart when backtesting. I wanted to change this.
I'm sure there are indi's out there that accomplish a similar goal. I've seen some examples of setting-up some funky indi's that manage to step forward an 'offline' chart alongside your currently backtested chart. This seems a bit hokey to me and not to my taste at all.
As with all seemingly simple fixes i chose to roll my own indicator and do it my way. An image of what the indicator looks like when set up correctly is attached.
Instructions
What you want to do first is run this indicator over the dates and period on the "other symbols" that you want to be able to observe alongside your main backtested chart. When you first begin the backtesting of the "other symbol" you need to set the indicator property 'WriteNewFile' to true. Then just let the backtester run through the entire dates that you want to be able to observe. Once you reach the end of the dates you want to observe simply close this initial backtest and in doing this you have now finished preparing a file for this "other symbol" for the dates and period you just ran the backtest over. Do this for each of the other symbols you wish to be able to observe alongside your main chart.
Once this process has been done you don't have to do it again unless you decide you wish to backtest a different time or different period. Once you have prepared the file/s all you need to do is change the Tester symbol to the actual symbol you want to backtest. Start the backtest. Attach the indi to the chart but leaving 'WriteNewFile' as false. Enter into the 'ShowSymbol' property the "other symbol" that you want to be able to observe alongside the main chart in this indicator. If you have more than one "other symbol" that you wish to observe alongside your main chart then simply keep attaching further instances of the indicator and set the "ShowSymbol" value to the other symbols you have prepared.
Example
If you are intending to backtest EURUSD M1 from 1st January 2011 through to the end of January but you also want to be able to simultaneously watch GBPUSD M1 at the same time then you would set the backtester symbol to GBPUSD and the period to M1. Start the backtest and attach this indicator. Set the indicator property "WriteNewFile" to true. Now just let the backtester finish running through January 1st through to February 1st. Once it hits February you would then simply close the backtester. A file for GBPUSD for all of January for the period M1 has now been created and ready for observing alongside other charts.
Now that you have written a file for GBPUSD for the time and period you want to observe you are ready to go. Set the backtester to EURUSD (the symbol you wanted to actually backtest) and the period to M1. Start the backtest. Attach the indicator to the chart and set the "ShowSymbol" property to "GBPUSD" (leaving the "WriteNewFile" property as the default false setting). Now as you run the backtest you will have the GBPUSD data of that same time and period printing in the indicator window alongside the main window data.
Notes
I recommend hitting F11 to expand the chart area.
The indicator has a property value called "SymbolSpreadPoints" which you can set to the average spread value of whatever symbol this indicator is showing (in points, not pips). This will help give perspective when trying to gauge the movement and volatility of the bars.
When you set WriteNewFile a file will be written to the indicators\files\ folder. For example, if you are writing a file for EURUSD for the period of H1 then a file called "nbEURUSD60.dat" will be written. Similarly setting up a file for GBPUSD on the M1 period will write a file called "nbGBPUSD1.dat".
Do not prepare files that will have exorbitant amounts of bar data within them if you have no intention of actually observing those dates of data. For example, do not prepare a EURUSD file for an M1 period for an entire years worth of data if you are only going to run a backtest over a few weeks of data. If you create large files of prepared data then you will simply be waiting extra time while all of the data in the file is loaded by my indicator into memory, even though you have no need for all except a small portion of the data. Just be sensible about it and you should be more than fine.
You don't have to constantly keep recreating the same prepared files for a symbol if you are only altering back and forth between particular periods being backtested. If you prepare symbol x for starting date y to ending date z using period M1, then you set up the same information but for M15, and then for H1, and so on, each of those periods will have it's own file that will remain there and so you can then backtest observing this symbol over the set dates but differing periods you have already prepared files for.
Similarly, if you are backtesting a start and end time that is different but is still within the previously prepared start and end dates of the prepared data then you don't have to do anything. E.g. if you have prepared an M1 period for EURUSD for January through to the end of March, then decide you want to change your backtesting period to only February but still on the M1 period then you don't need to do anything as the data has still been previously prepared by you (for January through to March) and the indicator will display the correct data. You do not need to fret over trying to align the start date of the prepared data with the start date of the backtest. As long as the prepared file includes data for the bars you are currently viewing in the backtest then it will align itself without any intervention and will display correctly.
If you do not have the data prepared for whatever symbol you want to view alongside the chart you are looking at then you won't see anything being displayed by my indicator so you should go back to the instructions and start from the beginning to create the prepared data file required.
You can attach the indicator more than once to show a range of other symbols alongside your main backtesting symbol as long as you have prepared the data files for each of those symbols for this timeframe and period.
The colours I have chosen are designed for a pure black window background on the chart. If you set the background to a different colour you will see how i have used blocking with the histograms to create the visual effect of quasi-candlesticks. You can change the colors of the quasi-candles by going to the 'colors' tab of the indicator properties. There is a histogram for the top wick, then for a bull candle, then for a bear candle, then for the bottom wick, and finally the lower blocking histogram which should be set to the same colour as your chart background.
This is a take it or leave it indicator. If you do not like it then do not use it. I am not responsible for what it does to you, your computer, or your pets. If it deploys ninjas to assassinate you in the night then so be it. If you have any issues let me know and I might address them (or might not).