log in     sign up for free
 
Whenever you get hit, you are very upset emotionally. Most traders try to make it back immediately; they try to play bigger. Whenever you try to get all your losses back at once, you are most often doomed to fail.
Marty Schwartz
 
 
Home
systems (284)
 
Special offer: buy AmiBroker and EOD+Real-Time Data
 
Formula Library
 
AmiBroker
MetaTrader
MetaStock
TradeStation
Wealth-Lab
NinjaTrader
 
add your formula
System Library
 
 
Account login
Your email:
Password:
 
Log in
New to s4t? Sign up.
If you forgot your password click here.
Search the Web
 
Custom Search

Hull Moving Average

Formula for: TradeStation

indicator


 

 

Views:  2722

Added: June 06, 2008
 
Rate this code:  Rate: 1 Rate: 2 Rate: 3 Rate: 4 Rate: 5
This formula has not been rated yet
 

email this link

 
 
Tags: TradeStation, indicator
 
Your Ad Here
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. The following chart contains a 16-week simple moving average which constantly lags the price activity and has poor smoothness.

 

 



Code:

Type : Function, Name : jtHMA

{jtHMA - Hull Moving Average Function}
{Author: Atavachron}
{May 2005}

Inputs: price(NumericSeries), length(NumericSimple);
Vars: halvedLength(0), sqrRootLength(0);

{
Original equation is:
---------------------
waverage(2*waverage(close,period/2)-waverage(close,period), SquareRoot(Period)
Implementation below is more efficient with lengthy Weighted Moving Averages.
In addition, the length needs to be converted to an integer value after it is halved and
its square root is obtained in order for this to work with Weighted Moving Averaging
}

if ((ceiling(length / 2) - (length / 2)) <= 0.5) then
halvedLength = ceiling(length / 2)
else
halvedLength = floor(length / 2);

if ((ceiling(SquareRoot(length)) - SquareRoot(length)) <= 0.5) then
sqrRootLength = ceiling(SquareRoot(length))
else
sqrRootLength = floor(SquareRoot(length));

Value1 = 2 * WAverage(price, halvedLength);
Value2 = WAverage(price, length);
Value3 = WAverage((Value1 - Value2), sqrRootLength);

jtHMA = Value3;





Type : Indicator, Name : jtHMA

{jtHMA - Hull Moving Average Indicator}
{Author: Atavachron}
{May 2005}

{
Inputs:
-------
price: the time series being smoothed, usually Close, High, etc,
but could be RSI(Close, 25) for example.
length: the length of the MA, pretty meaningless in the normal sense
of moving averages, as this quantity is heavily modified
in the code. You need to experiment, do not just use a setting
of 20 because that is what works for you with Simple Moving Averages.
zeroLine: if you are using this in an indicator pane, you might
want to display a centre line of some sort, ths allows
one to set its value
zeroVisible: boolean variable, determines whether the centre line
(zeroLine) is plotted.
upColour: If you wish to differentiate upward movements by colour coding.
downColour: If you wish to differentiate downward movements by colour coding.
colourDeltaBar: Set this to 1 if you wish the colour change to be effective on
the actual bar where the direction change occurred.
Set this to 0 for default behaviour. All other values
are pretty meaningless.
}

Inputs: price(Close), length(21),
zeroLine(0.0), zeroVisible(false),
upColour(Blue), downColour(Red), colourDeltaBar(1);

Value1 = jtHMA(price, length);

Plot1(Value1, "jtHMA");

If ZeroVisible = true then
Plot2(zeroLine, "Zero");

{ Color criteria }
if (Value1 > Value1[1]) then
SetPlotColor[colourDeltaBar](1, upColour)
else if (Value1 < Value1[1]) then
SetPlotColor[colourDeltaBar](1, downColour);


 





Source: https://www.tradestation.com

 

View similar (indicator for TradeStation):

Pivotal Trading
Trend Detection Index
Standard Error Bands
Stochastics
Keltner Price
Triangle Pattern Indicator
Measure Cycle Period
Moving Average Spread Indicator
StochRSI
MFI Convergence Divergence
...
 
 
all formulas for TradeStation
all formulas

 

 

Email to friend

Top

 

     
However we try to maintain hiqhest possible level of service - most formulas, oscillators, indicators
and systems are submitted by anonymous users.
Therefore S4T™ does not take any responsibility for it's quality.
If you use any of this information, use it at your own risk. You are responsible for your own trading decisions.
Be sure to verify that any information you see on these pages is correct, and is applicable to your particular trade.
In no case will S4T™ be responsible for your trading gains or losses.
 
Privacy note | (c) copyrights systems4trading.com 2006-2012