[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Re: Hull Moving Average...DLL or LastValue



PureBytes Links

Trading Reference Links

Just wanted to point out that the LastValue Hull Moving average was 
found at http://trader.online.pl/MSZ/e-w-Hull_Moving_Average.html 


Also, Jose had a good point about using LastValue which was,
"The LastValue()-based indicator code above produces hindsight-based 
dynamic outputs. i.e., past values change in retrospect as new data 
is loaded, giving the impression that the indicator produced some 
useful output in the past - when in fact, its actual plot value was 
very different at the time. It's common knowledge that one should 
take care with all hindsight-based functions, as this often results 
in a "fool's gold" type outcome."

So be forwarned about using it. The better option is to use the DLL 
version especially if you are planning to use something other than 
the square root as a multiplying factor.


Preston





--- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@xxx> wrote:
>
> All,
> 
> Seems we never tire of playing with moving averages. The other day 
I 
> discussed the DEMA and TEMA and how they were derived. Now I would 
> like to introduce the idea of using a mechanism/s to futher smooth 
> your moving averages. 
> 
> One of the problems in performing the task is how to overcome the 
> problem of a variable input that metastock will not normally 
except. 
> In the past I've discussed the virtues of using a DLL. The purpose 
> of using a DLL was to overcome metastock's shortcoming of the 
> variable input value. Thus you could use an indicator and its 
> velocity or momentum value for your lookback periods and allow 
them 
> to change with the market. Great idea but I also want to introduce 
> you to one more method that I thought you might enjoy. 
> 
> That method is the use of the LastValue function. Below you will 
> find some information about the Hull Moving average. I thought it 
> explained very well the reason for smoothing moving averages and 
how 
> that is accomplished. At the end of the discussion you will also 
see 
> three indicators. The first comes from the article and shows how 
you 
> write the formula for a manual input of the square root value. The 
> next is a DLL version which I wrote and automatically scales in 
the 
> square root value. The last is a version of the same indicator 
> written by Alan Hull and uses the LastValue function. Notice in 
this 
> version that I have commented in where you could insert another 
> indicator inplace of the square root. 
> 
> Have fun and enjoy,
> 
> 
> Preston
> 
> 
> 
> http://www.justdata.com.au/Journals/AlanHull/hull_ma.htm
> 
> The Hull Moving Average solves the age old dilemma of making a 
> moving average more responsive to current price activity whilst 
> maintaining curve smoothness. In fact the HMA almost eliminates 
lag 
> altogether and manages to improve smoothing at the same time. To 
> understand how it achieves both of these opposing outcomes 
> simultaneously we need to start with an easily understood frame of 
> reference. 
> 
> Firstly, solving the problem of curve smoothing can be done by 
> taking an average of the average, ie. 16 period SMA(16 period SMA
> (Price)). The bad news is that it causes a huge increase in lag.
> 
> Solving the problem of lag is a bit more involved and requires an 
> explanation with numbers rather than charts. Consider a series of 
10 
> numbers from '0' to '9' inclusive and imagine that they are 
> successive price points on a chart with 9 being the most recent 
> price point at the right hand leading edge. If we take the 10 
period 
> simple average of these numbers then, not surprisingly, we will 
> determine the midpoint of 4.5 which significantly lags behind the 
> most recent price point of 9. Here's the clever bit?first let's 
> halve the period of the average to 5 and apply it to the most 
recent 
> numbers of 5,6,7,8, and 9, the result being the midpoint of 7. 
> 
> Finally, to remove the lag we take the midpoint of 7 and add the 
> difference between the two averages which equals 2.5 (7 - 4.5). 
This 
> gives a final answer of 9.5 (7 + 2.5) which is a slight 
> overcompensation. But this overcompensation is very handy because 
it 
> offsets the lagging effect of the nested averaging. Hence the 
result 
> of combining these 2 techniques is a near perfect balance between 
> lag reduction and curve smoothing. 
> 
> The HMA manages to keep up with rapid changes in price activity 
> whilst having superior smoothing over an SMA of the same period. 
The 
> HMA employs weighted moving averages and dampens the smoothing 
> effect (and resulting lag) by using the square root of the period 
> instead of the actual period itself?as seen below. 
> 
> Integer(SquareRoot(Period)) WMA [2 x Integer(Period/2) WMA(Price)
> - Period WMA(Price)]
> 
> Unfortunately the MetaStock version of the indicator requires 
> the 'Integer part of the square root of the period' to be entered 
> manually as an input. For example, if the period is 25 
> then 'sqrtperiod' equals 5 and if the period is 30 
then 'sqrtperiod' 
> also equals 5. ('sqrtperiod' increments up to 6 when period = 36 
and 
> so on.) 
> 
> MetaStock Formula
> period:=Input("Period",1,200,20) ;
> sqrtperiod:=Input("Square Root of Period",1,20,4);
> Mov(2*(Mov(C,period/2,W))
> -Mov(C,period,W),sqrtperiod,W);{end} 
> 
> 
> {Hull MA} 
> {dll version}
> {written by Preston Umrysh}
> {This indicator uses Dll software 
> developed by MetaStock Forum Crew}
> {http://forum.equis.com)}
> period:=Input("Period",1,250,20) ;
> ExtFml( "ForumDLL.VarMOV",2*(Mov(C,period/2,W))
> -Mov(C,period,W),Sqrt(period),W);{end}
> 
> {Hull MA}
> {Lastvalue version}
> period:=Input("Period",1,200,20) ;
> sqrtperiod:= Sqrt(period);{another indicator could be used here} 
> HMA:=Mov(2*Mov(C,period/2,W)
> -Mov(C,period,W),LastValue(sqrtperiod),W);
> HMA;{end}
>




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/equismetastock/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:equismetastock-digest@xxxxxxxxxxxxxxx 
    mailto:equismetastock-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/