ADE and Vista 64 bit.

Questions about MultiCharts and user contributed studies.
Rick Webber
Posts: 47
Joined: 04 Jan 2008
Has thanked: 19 times
Been thanked: 3 times

ADE and Vista 64 bit.

Postby Rick Webber » 25 Nov 2008

Unable to use ADE as I get error message:" Can't find dll "elcollections.dll". I have placed this Dll in the MultiCharts program folder but it is Vista 64 bit and the program folder TSSupport is located in is called Program Files(x86). Thinking this might be the problem. Has anyone else encountered this problem. :roll:


Postby Guest » 25 Nov 2008

Hi Rick

I don't use ADE and I don't know what is it for.

But I have windows Vista 64 with multicharts 4, and I am using a Dll

I put it inside the folder of multichart:
C:\Program Files (x86)\TS Support\MultiCharts

and it work without any problem

The only condition is that you have to start Multichart as Administrator

Otherwise multichart can not access this dll.

Wha t is ADE ?? :oops:


Rick Webber
Posts: 47
Joined: 04 Jan 2008
Has thanked: 19 times
Been thanked: 3 times

ADE and Vista 64 bit. Used in TS.

Postby Rick Webber » 26 Nov 2008

Hope this help's Emmanuel .

The "All-Data-Everywhere" library (or ADE for short) is a set of EasyLanguage functions and indicators that allow you to store any kind of data for any symbol and bar interval. You can then access that data from any study or strategy, regardless of the symbol or bar interval.

One powerful use for ADE is to store higher timeframe data for a symbol and then access that data from a lower timeframe. For example, you can calculate and store ADX and RSI for a 30 minute chart, and then you can access that data from a 5 minute chart.

Another powerful use for ADE is to look at data for other symbols. You can use ADE to store data (OHLC, volume, indicators, etc) for an entire portfolio of symbols, and then you can access the data for any symbol from any other symbol. This makes it possible to perform analyses that depend on the relationships between different symbols in your portfolio.

ADE includes the ability to save data to text files and load it back. This means that you can pre-calculate and store data for any symbols and timeframes you want, and you can retrieve that data whenever you want. For example, you can store five years of data for a 30 minute MSFT chart. If you open a 30 minute MSFT chart with only one month of data, your study or strategy can load the five years of historical data and append only the new data. It is not necessary to recalculate the entire five years every time.

ADE uses the ELCollections library, so you must install ELCollections before you install ADE. Also, taking the time to learn how ELCollections works will allow you to make the most of ADE.

The "TypeZero Sync" framework (TZS) allows you to synchronize data between tick or volume charts with the same symbol and bar type but a different bar interval. For example, you can synchronize a 100 tick chart and a 300 tick chart, or you can synchronize a 1000 share chart and a 5000 share chart. It's even possible to syncrhonize charts where one bar interval is not a direct multiple of the other. Currently the framework only supports a chart with a lower interval retrieving data for a higher interval. This seems to be the typical setup that people want to use.

The TZS framework uses my All-Data-Everywhere library, version 1.07 or later. You must install ELCollections 1.03 and ADE 1.07 before you install TypeZero Sync.

Note that if you want to work with ADE and TypeZero bars (tick and volume bars), you almost certainly need to install the TypeZero Sync library as well, since it will allow you to correctly synchronize data between different charts.

Here are the instructions for using the TZS framework. Please read and follow them carefully, since you must set things up correctly in order for the framework to work properly.

1. Set up each chart that you want to synchronize so that the first bar on the chart is at the start of a session. This just means that the range should be set with Days/Months/Years Back or with First Date, rather than with Bars Back. Don't ever use the Bars Back range setting with the TypeZero Sync framework!!!

2. Apply the "! TZS Setup Sync" indicator to each chart involved in synchronization (both sender and receiver). Check the "Prompt for Format" box and make sure that the Interval input is set correctly -- e.g. it should be ADE.TickBarV(BarInterval) for tick bars using trade volume, and ADE.VolBarV(BarInterval) for volume bars using trade volume. The indicator is named with a ! at the start to ensure that it comes first in the indicator list. Indicators that use TypeZero Sync should always be named so that they come after the "! TZS Setup Sync" indicator.

3. Apply the indicator that saves data to the higher-interval chart. To save OHLCV data, use the "TZU Save OHLCV" indicator. Again, make sure the Interval input contains the appropriate TypeZero interval function for the chart.

4. Apply the indicator that consumes the higher-interval data to the lower-interval chart. Check the "Prompt for Format" box and enter the appropriate function calls for ThisInterval and ThatInterval. ThisInterval refers to the interval for the current chart, and ThatInterval refers to the higher interval. You can always pass BarInterval to the function used for ThisInterval (e.g. ADE.VolBarV(BarInterval)), but you will need to specify the correct interval for the higher interval (e.g. ADE.VolBarV(5000)).

That's it!

When you write an indicator that uses the TypeZero Sync framework, you should call the TZS.SyncBarID function to get the correct BarID for the higher interval. Pass the function the ThisInterval and ThatInterval inputs that have been specified for the indicator. See the "TZU Bollinger Bands" indicator for an example of how to use this function.

Do not call the ADE.OnNextBar function when using the TypeZero Sync framework. Instead, save the previous BarID into PrevBarID before calling TZS.SyncBarID. After the call, check whether the BarID has changed (BarID <> PrevBarID) and only perform your higher interval logic if it has. Again, the "TZU Bollinger Bands" indicator provides an example of this.

I've provided a couple example workspaces that show the framework in action. The "TZU Plot OHLCV Demo" workspace provides a visual demo of bar synchronization. The "TZU Bollinger Bands Demo" workspace shows how to plot Bollinger Bands from a higher bar interval. Note that the "! TZS Setup Sync" and "TZU Save OHLCV" indicators in these workspaces could be hidden to reduce clutter, but I've left them visible so you can easily see how the charts are set up.

In my testing I've found that the framework works best in real time if the sending and receiving charts are in different workspaces (with the senders first). In fact, it *must* be done this way if the receiver is a strategy, since strategies will calculate before indicators in the same workspace. Thus, I recommend using different workspaces for senders and receivers. I've included senders and receivers in the same workspace for the demos because it makes it easier to compare the two charts.

You may wonder why you need to apply the "! TZS Setup Sync" indicator rather than just calling a function in your own indicator. There's actually a very important reason for this. In order for the sync setup to work correctly, the MaxBarsBack *must* be zero, so that it picks up session activity (volume or ticks) from the very first bar of the session. The only way to guarantee this is to specify a MaxBarsBack of zero for the indicator. Since many if not most indicators and strategies will employ a lookback, using a separate indicator for the sync setup seemed like the best solution. (Even if your indicator doesn't employ a lookback, if you let TS determine MaxBarsBack automatically, it will skip the first bar on the chart. Did you know that? You have to manually specify zero for MaxBarsBack if you want to get the first bar on the chart.) Because the sync setup is performed by a separate indicator, you can employ a lookback in your own indicators and strategies if you need to.
These users thanked the author Rick Webber for the post (total 2):


Postby Guest » 26 Nov 2008

Hi Rick,

OAW !! :D :D What an answer !!!!

Thank you ,, Now I understand

I found the version 1.07 :)

By chance do you have some example ?

Thank you very much.



MA Paint Bar

Postby Guest » 26 Nov 2008

Hi Rick

I modified a paintbar this afternoon..:)

I filter it with a MACD ... to avoid sideway mouvement

You have to adjust it depending on the stock

I attach it

(4.33 KiB) Downloaded 80 times

Rick Webber
Posts: 47
Joined: 04 Jan 2008
Has thanked: 19 times
Been thanked: 3 times

Postby Rick Webber » 26 Nov 2008

Thanks for paintbar, I'll check it out. You obviously have TS so you can find many examples at their Forum by searching for "Bamboo" the author of ADE. There's a vast amount of info on it.
I'll try the Administrator trick and if that doesn't work I'll put together a sample to see if you run into the same problem.


Postby Guest » 28 Nov 2008

Hi Rick :shock:

I tried on my side, I was unable to make it work on TS I am too new at this Dll yet.

BUT I found something:

1/ Dll must be in C:\ADE\)
2/ You may give the compleate path in the file in the function of multicharts :

In ADE.OpenMap:
external method: "C:\ADE\ELCollections.dll", int, "_DateAndTimeToBar", double, double, double;
external method: "C:\ADE\ELCollections.dll", int, "_DateTimeCountToBar", double, double, double, double;

in ADE.SaveMap:
external method: "C:\ADE\ELCollections.dll", int, "_BarToDateAndTime", double, double, double;
external method: "C:\ADE\ELCollections.dll", int, "_BarToDateTimeCount", double, double, double, double;

In ADE.FileExist
external: "C:\ADE\ELCollections.dll", BOOL, "ELC_PathExists", LPSTR;

in ADE.RaiseError
external method: "C:\ADE\ELCollections.dll", int, "ELC_RaiseError", LPSTR, LPSTR;

Like that multichart may be able to find the dll

It may be important to check the ADE.Directory function
and making sure it is writen

ADE.Directory = "C:\ADE";

I hope this will help :D


User avatar
Posts: 6523
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 957 times
Been thanked: 1883 times

Postby TJ » 28 Nov 2008

i hope you got this part of the instruction...

ADE uses the ELCollections library, so you must install ELCollections before you install ADE.
Last edited by TJ on 28 Nov 2008, edited 1 time in total.

Rick Webber
Posts: 47
Joined: 04 Jan 2008
Has thanked: 19 times
Been thanked: 3 times

!TSZ Sync Setup

Postby Rick Webber » 28 Nov 2008

Thank's Emmanuel and tj for the suggestions. I have implimented both. I was missing some ELCollection so imported the whole eld. and also changed the path in the function's you suggested plus many more as I dug down deeper, but unfortunately the problem still exsists. It is easy to duplicate. Create a tick chart and insert !TSZ Setup Sync. You will get the error "the dll cannot be found " and your chart will freeze and turn grey requiring you to close the program. Attached is !TSZ Setup Sync.Regards all.

Well, I just tried to attaching as a .pla file but wouldn't allow that so I have changed it to a .doc file which you will have to rename back once you have it. Hope this works.
TZU Setup Sync.doc
Rename to .pla
(102.41 KiB) Downloaded 165 times

Return to “MultiCharts”