This indicator plots five different time frames as a stacked chart. The circles or dots at the bottom represent the difference between the closing price of each time frame and its associated pivot price [(high + low + close)/3]. The value plotted at 4, in this case, represents the 5 minute time frame. The 10-minute time frame is represented by the plot at 3 and so on. The value plotted at 7 represents the composite of all the time frames. It is only turned on if all times are either red or green. If there is a disagreement then nothing is plotted.
This indicator is relatively simple even though the plot looks complicated. You have to make sure the indicator is plotted in a separate pane. The y – axis has 0 and 8 as its boundaries. All you have to do is keep track of the highest highs/lowest lows for each time frame. I use a multiplier of the base time frame to create different time frames. TimeFrame1Mult = 2 represents 10 minutes and TimeFrame2Mult = 3 and that represents 15 minutes. The indicator shows how strong the current swing is across five different time frames. When you start getting a mix of green and red dots this could indicate a short term trend change. You can use the EasyLanguage to plug in any indicator over the different time frames. Here’s the code. Just email me with questions or if you see a mistake in the coding.
{EasyLanguage MultiTime Frame Indicator) written by George Pruitt - copyright 2019 by George Pruitt }
If condition10 then setPlotColor(1,Green) else SetPlotColor(1,Red); If condition11 then setPlotColor(2,Green) else SetPlotColor(2,Red); If condition12 then setPlotColor(3,Green) else SetPlotColor(3,Red); If condition13 then setPlotColor(4,Green) else SetPlotColor(4,Red); If condition14 then setPlotColor(5,Green) else SetPlotColor(5,Red);
condition6 = condition10 and condition11 and condition12 and condition13 and condition14; Condition7 = not(condition10) and not(condition11) and not(condition12) and not(condition13) and not(condition14);
If condition6 then setPlotColor(7,Green); If condition7 then setPlotColor(7,Red);
If condition6 or condition7 then plot7(7,"trend");
Subscribe to get the latest posts sent to your email.
10 thoughts on “Programming a Multi-Time Frame Indicator in EasyLanguage”
Hi George, a very interesting approach to build data for several different timeframes from only data1. Should reduce workarounds due to limitations in Tradestation when several data streams are used.
I can´t see that the variable mtf1o(0), mtf2o(0) …. is used. Is that to be able to use open data for different timeframes in coming versions?
How would best practice to store open data for each timeframe be coded?
And thanks for your valuable efforts to educate through your books and this webpage.
Thanks for your post and question. I didn’t need the open for this analysis but I am sure others will in the future. Add this code and it should do it. You want to store the open tick for each time frame and carry it over for the entire time period before changing it again. I use the modulus function to determine the first time stamp of each time frame. Hope this helps.
And thanks for your prompt reply. I will try both this version and also the discrete time frame version and compare the results. Always interesting to understand more about different logic and what result they give. MTF logic can really be tricky to code, but be the filter that gives the edge for a really good trading system.
Many thanks for your answer and we out here, are eager to follow your work.
Sorry for the delay. Noting yet for the PINE editor. I have played around with it, but haven’t drilled down deep enough to translate this indicator. If I do I will post. Best.
This is the one I have been looking for a long time to code a MTF indicator. it is very simple but more powerful than using multiple data stream and PSP. I really love your powerful code Mr. George. It is so wonderful that I can\’t sleep until now almost 3 AM. Thank you so muchhhhhhhh for your sharing. May God always bless you.
Just wondering if this can work with charts plotted in Mean Renko format, or what changes might be required? When I plot the code using Multicharts on my Renko charts, each indicator line is identical, and only reflects the actual base timeframe.
Sorry for the late reply. I don’t know much about non time based charts such as Renko. Initially thinking about it I don’t think it would work. Let me do some research. Shoot me an email at george.p.pruitt@gmail.com in a week or two and I will let you know what I found out.
Backtesting with [Trade Station,Python,AmiBroker, Excel]. Intended for informational and educational purposes only!
Get All Four Books in the Easing Into EasyLanguage Series - The Day Trade Edition is now Available!
Announcement – A Day Trade Edition will be added to my Easing Into EasyLanguage Series this year! This edition will be the fourth installment and will utilize concepts discussed in the Hi-Res and Advanced Topics editions. I will show how to develop and program algorithms that will enter after the open of the day and get out before the market closes. Hence, no overnight exposure. Most examples will be carried out on the mini Dow, Nasdaq, S&P500 and Russel. The programming skills that you will learn can be carried to any market that provides enough bang for the buck to day trade. Look for this edition later this year. But get geared up for it by reading the first three editions in the series now. Get your favorite QUANT the books they need!
Hello to All! The Easing Into EasyLanguage Series is now complete with the publication of the Advanced Topics Edition. This series includes three educational editions. Start out with the Foundation Edition. It is designed for the new user of EasyLanguage or for those you would like to have a refresher course. There are 13 tutorials ranging from creating Strategies to PaintBars. Learn how to create your own functions or apply stops and profit objectives. Ever wanted to know how to find an inside day that is also a Narrow Range 7 (NR7?) Now you can, and the best part is you get over 4 HOURS OF VIDEO INSTRUCTION – one for each tutorial. All source code is available too, and if you have TradeStation, so are the workspaces. Plus you can always email George for any questions. george.p.pruitt@gmail.com.
This book is for those that have read the Foundation Edition or have some experience working with EasyLanguage and the various functions that help make a trading decision. This book’s audience will be those programmers that want to take an idea, that requires an observation of intraday market movements to make a trading decision, and program it accurately. If you have programmed daily bar systems, and you want to drill down and add some components that require additional market information (like what came first – the high or the low), then you have come to the right place. If you want to buy and sell short in the same day and use trade management principles such as profit targets and stop losses then The Hi-Res Edition is the book you need. There are two paradigms that EasyLanguage covers: daily and intraday bar programming. It’s the same language, but the move from daily to intraday programming can be quite difficult. Learn all the essentials and shortcuts with this edition. 5 HOURS OF VIDEO INSTRUCTION in this Hi-Res edition – one for each tutorial. All source code is available too, and if you have TradeStation, so are the workspaces. Plus you can always email George for any questions. george.p.pruitt@gmail.com.
Advanced Topics (AT) could cover a vast amount of ideas and concepts and be the length of “War and Peace” on steroids. Since this book is part of the series, I wanted to cover a handful of concepts that included the follow programming constructs. Arrays and their manipulation. Buffers (fixed length arrays) and the tools to maintain buffer elements with formulas for extraction and sorting. Finite State Machines using the switch-case construct and range based case values. Using original text graphic objects and retrieving and analyzing their properties to determine X and Y coordinate values of text location. Seasonality: The Ruggiero/Barna Universal Seasonal and the Sheldon Knight Seasonal methods. In AT, you will also find an introduction to EasyLanguage’s Project Concept and the steps to create one by adding/deleting component files. TradeStation now provides access to fundamental data such as Commitment of Traders – learn how to convert the Net Change indicator into a strategy utilizing the FundValue functionality. If you wanted to find out how to merge multiple time frames into a single indicator, you are in luck! Create a MTF indicator for yourself.
Day Trading (DT) – This is a surprise installment in my Easing into EasyLanguage Series, as I had only intended on three books. However, I think it will fit well with the other books. Daytrading is a very popular approach as overnight risk is eliminated. Don’t worry there is plenty of risk during the day too! However, it can be very difficult to accurately program a trading idea on higher resolution data such as five- or one-minute bars. Like my other books, there is no “Holy Grail” included. And if you are looking for a book that gets in and out of a trade in a few seconds, this is not the one for you. I discourage trading more than a handful of trades per day – this is best left up to the professionals. But, if you want to learn about volatility-based break outs, pyramiding, scaling out, zone-based trading, accurate trade accounting and having a peek at algorithms that once ruled the systematic daytrading industry, then this is the book for you. A beginner might have a little difficulty in following along with the tutorials. If you have read the first two books (Foundation and Hi-Res) in this series, you are good to go. Or if you have some experience working with EasyLanguage and minute data, you will be OK as well.
Pick up your copies today – e-Book or paperback format – at Amazon.com
Hi George, a very interesting approach to build data for several different timeframes from only data1. Should reduce workarounds due to limitations in Tradestation when several data streams are used.
I can´t see that the variable mtf1o(0), mtf2o(0) …. is used. Is that to be able to use open data for different timeframes in coming versions?
How would best practice to store open data for each timeframe be coded?
And thanks for your valuable efforts to educate through your books and this webpage.
Hi Goran,
Thanks for your post and question. I didn’t need the open for this analysis but I am sure others will in the future. Add this code and it should do it. You want to store the open tick for each time frame and carry it over for the entire time period before changing it again. I use the modulus function to determine the first time stamp of each time frame. Hope this helps.
Hi George,
And thanks for your prompt reply. I will try both this version and also the discrete time frame version and compare the results. Always interesting to understand more about different logic and what result they give. MTF logic can really be tricky to code, but be the filter that gives the edge for a really good trading system.
Many thanks for your answer and we out here, are eager to follow your work.
Best regards
Goran
Hi George,
Do you have the corresponding Pine script for this MTF indicator ?
Sorry for the delay. Noting yet for the PINE editor. I have played around with it, but haven’t drilled down deep enough to translate this indicator. If I do I will post. Best.
Rahul
in Pine you can just use security() function to access MTF data. its a lot easier.
Hi Rahul,
Thanks for the information. Do you have a PINE script that replicates this? I would love to see it.
Best,
George
This is the one I have been looking for a long time to code a MTF indicator. it is very simple but more powerful than using multiple data stream and PSP. I really love your powerful code Mr. George. It is so wonderful that I can\’t sleep until now almost 3 AM. Thank you so muchhhhhhhh for your sharing. May God always bless you.
Hi George,
Just wondering if this can work with charts plotted in Mean Renko format, or what changes might be required? When I plot the code using Multicharts on my Renko charts, each indicator line is identical, and only reflects the actual base timeframe.
HI Adrian,
Sorry for the late reply. I don’t know much about non time based charts such as Renko. Initially thinking about it I don’t think it would work. Let me do some research. Shoot me an email at george.p.pruitt@gmail.com in a week or two and I will let you know what I found out.
Thanks,
George