Multi Timeframe Indicators


Hi all,

I've been wanting to have the ability to plot indicators from different timeframes on my chart, but MT doesn't have this capability built in. (Does anyone know of any charting programs that do this natively?) As an example, if you're following the IWCR system, it'd be nice to be able to plot the Daily RSI on your 5 Min. chart.

When I put together the Daily Volitily Breakout indicator, that sorta did what I wanted in that it allowed you to add it to any timeframe (Daily or less) and see where the daily breakout point would be. The problem was that it was limited to only showing the Daily value.

About 2 weeks ago I came across Igorad's Price Channel Stop indicator and it seemed to do what I wanted (with regard to mulitiple timeframes). I started trying to use the Price Channel indicator as a template, adding code from other indicators and tweaking it to work within the new structure, but they never seemed to work. (I'm still not a very good coder.) Then last night I had a "breakthrough": If I can't figure out how to properly add the code from the other indicators, why not just Reference them, with their iName or iCustom? So, that's what I did. And, it works great.

Here are a few things to keep in mind when using these:

1) TimeFrameis the input you use to specify what timeframe to pull the data from.

2) You must set TimeFrame in minutes (1,5,15,30,60,240,1440,10080,43200)

3) By default, TimeFrame is set to 0, which means that it will use whatever the current timeframe is, i.e it will act as the original indicator.

4) If you set TimeFrame to anything other than 0, it must be >= current timeframe. (In other words, don't use a M15 PSar on an H1 chart. The values won't be correct. An H1 PSar on an M15 chart works properly.)

I've setup 5 Multi-TimeFrame (MTF) indicators to use as examples. You can open them up and use the code as a template so that you can make any existing indicator MTF. Please don't post asking for other indicators to be made, as the thread will soon turn into one big 'please do this for every MT4 indicator'. It's really, really simple to do, and if you don't know how to code, spend a week reading Coder Guru's MT4 programming guide and you'll be able to do it.

If I have time, I'll add more. Hopefully others will add their MTF conversions to the thread.

Multi-TimeFrame set 1 contains:






The attached chart is the following:

M5 Chart with LimeGreen PSar

M15 PSar

M60 SMA(13)




Well, I hope these come in handy for some of you. Thanks Igor, for your fantastic coding skills. I've learned a lot just by studying your code.



Added #MTF Set on 3/4/06 ---- (Bollinger Bands, Juice, Linear Price Bar, Price, Stochastic)


Linear Price Bar

Here's one more MTF indicator. It's based on a custom indicator (you can view the code to make your own).

It's called #MTF_LPB.mq4 (Linear Price Bar) Here's the link to the thread for info on the indicator:

Attached are 2 indicators. You need both in your indicators folder as the MTF version references the original indicator.

Linear Price Bar.mq4




thanks for info very usefull for me :-)



Just wanted to say thanks


maybe this is helpful to you

I wrote one for demarker the other day. I think I scrutinized it but can't remember exactly. Anyhow easy enough to check, just compare it with a real demarker on another chart.

Just change the getDeMarker function to getRSI() or getCustomIndicator() (and use iCustom in that function) or whatever, if you want to base it on another indicator.


Thanx Keris, you put well!!

Ahmed Soliman  



Thank you very much for your great idea and indicator. Good work man!

This is my version of the MTF:

  • You can use iCustom now without writing a line of code, all what you need to fill the paramter you want in the indicator input window.
  • You can set up to 4 indicator names in the input window to be drawn.
  • You can set the line (buffer) of the indicator you want to get using iCustom (EX: 0 means to daw the first line , 1 means the second line etc).
  • You can set drawing shape style (EX: 0 means DRAW_LINE , 2 means DRAW_HISTOGRAM etc).
I hope you like it.