Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
I was wondering if anyone has coded the Trend Thrust Indicator (TTI) bu Buff Pelz Dormeier for NinjaTrader. The indicator is described in his book "Investing with Volume Analysis" and in an article in the August 2011 edition of TAS&C. The code has been provided in easyLanguage (attached) which would be very easy to translate in C# by a good programmer (which I'm not...)
The Easy Language code was indeed provided by Dormeier and can be retrieved from technical.traders.com.
The code for the Trend Thrust Indicator accesses an additional function BD.VWMA, which you did not include with your file. The full code is shown below.
As this is an authorized version of the TTI, it should be easy to translate it to NinjaTrader.
I am a bit annoyed by the Easy Language code that has been published for the TTI.
There are a few points that I do not yet understand.
(1) The calculation of FAST and SLOW is peculiar.
Multiplying by IVFACTOR/VFACTOR should be the same as dividing by VFACTOR/IVFACTOR. The way the code is written does not make sense.
(2) Vavg is calculated as the volume weighted moving average of the DataSeries vfactor, which itself is a ratio of the values of two moving averages. vavg is then used as an input variable for the length of a moving average. This would require an integer, however vavg is a ratio of type double.
The code is not really clean, but shows quite a degree of (voluntary?) negligence.
The Trend Thrust Indicator has been clearly developed for daily data and should not be used with full session intraday data. The reason is its heavy reliance on volume data. Intraday volume data is pretty low during the night session and shows a specific smile during the regular session with higher volume during the the initial and the last hour of trading. The indicator cannot cope with this volume distribution. It might be worth developing a gapless version for use with the regular session.
In such a case it makes sense to replace volume with range. For use with intraday data it is possible to try the following approach:
-> calculate a MACD from a range weighted moving average
-> reinforce dependence on range by using a multiplier
-> compare outcome to traditional MACD
Meanwhile, I have a working version of the original TTI, but it should only be applied to daily data or with some restrictions (holidays need to be eliminated) to regular session data, see charts below.
Of course I will share it, but first I have to review it again. I am not satisfied with the result, as there are a few problems, such as
-> inconsistencies in the code (see post # 4)
-> inconsistencies in the concept (why is the VWMA not compared to a SMA but to an EMA?)
-> problems with application of the indicator to intraday data
I first want to understand the concept and the problems related to the application of the concept, before I release an indicator to the public.
Nobody else has made a comment on the code so far, so I am currently discussing the matter with myself.
Re: "inconsistencies in the code (see post # 4)": I think the formula are mathematically accurate. It is just a bit weird that the author didn't use a consistent way to document them. He should have used:
FAST = FASTAVG/(VFACTOR/IVFACTOR);
SLOW = SLOWAVG/(VFACTOR/IVFACTOR);
Re: "Inconsistencies in the concept": I looked at the code again but sorry, can't find the EMA comparison you're referring to.
Re: "Intraday": I see your point and agree with the potential limitations of using this indicator on intraday data because of the typical patterns (e.g.: low volume over lunch time). I could not find reference in Buff's book about using it for intraday. Having said that, I think that it might still work assuming we use either very long or very short periods as parameters for the Slow/Fast.
If you look at the definition of VFactor and IVFactor
you will note that in both formulae the enumerator is a volume-weighted moving average VWMA, while the denominator is an exponential moving average. As the VWMA is based on a simple moving average, a simple moving average should be used for the denominator as well. Compared to the simple moving average, the exponential moving average gives more weight to the more recent data points, which sort of intermingles with the volume weighting of the VWMA.