Hi Russ,
I took a quick look at the alanhull
website and at first glance did not see anything about your indicator. I
guess I need to register… Anyways the indicator looked interesting
to me and I thought having the indicator above the prices would also be
beneficial, so I created a channel. For lack of a better name, I call it
a Hull channel.
What’s interesting about the Hull
channel is that it shows consolidation vs. trending pretty well. The
consolidation areas are bracketed by flat lines where the trending areas the
channel has a slope. The trending part of the channel is actually very similar
to a Keltner channel. Here’s the Hull channel code if anyone is interested:
//
// Hull
Channel
//
periods = Param("periods", 13,2,100,1);
ATRmult = Param("ATR mult", 2.5,1.0,6.0,.25);
LR = LinearReg(C,periods);
LR_ATRl = LR - (ATR(periods)*ATRmult);
LR_ATRu = LR + (ATR(periods)*ATRmult);
HClower = 0; // Hull Channel upper line
HCupper = 0; // Hull Channel lower line
for (i=periods; i<BarCount;
i++) {
if(LR[i] > HClower[i-1]) {
if(LR_ATRl[i] > HClower[i-1])
HClower[i]
= LR_ATRl[i];
else
HClower[i]
= HClower[i-1];
}
else
HClower[i]
= LR[i];
if(LR[i] < HCupper[i-1]) {
if(LR_ATRu[i] < HCupper[i-1])
HCupper[i]
= LR_ATRu[i];
else
HCupper[i]
= HCupper[i-1];
}
else
HCupper[i]
= LR[i];
}
Plot( HClower, "HC lower", ParamColor("HC color", colorWhite ), ParamStyle("HC
style") );
Plot( HCupper, "HC upper", ParamColor("HC color", colorWhite ), ParamStyle("HC
style") );
Regards,
David
From:
amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of russ_shor
Sent: 03/01/2007 4:04 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: [amibroker] Re: Help re
converting metastock code
Hi David
thanks for the code. Please check out www.alanhull.com.au. His online
tutorial is very interesting.
Kind regards
Russ
--- In amibroker@xxxxxxxxxps.com,
"dbw451" <dbw451@xxx> wrote:
>
> Hi Russ,
>
>
>
> The MetaStock PREV function is a strange function that represents the
> previous value of the function which contains it. I chose to write
a loop
> to calculate the indicator values. Your indicator looks
interesting; what
> is it called and how do you use it?
>
>
>
> The following code was written for readability to help explain the PREV
> function, not minimal code optimization (although the code is fast as
> written):
>
>
>
> // MetaStock Code
>
> // if(LinearReg(C,13)>PREV,if(LinearReg(C,13)-(ATR(13)*2.5)>PREV,
>
> // LinearReg(C,13)-(ATR(13)*2.5),PREV),LinearReg(C,13));
>
>
>
> periods = Param("periods", 13,2,100,1);
>
> LR = LinearReg(C,periods);
>
> LR_ATR = LR - (ATR(periods)*2.5);
>
>
>
> MyInd = 0; // Indicator to calculate, MyInd[i-1] = MetaStock PREV
>
> PREV = 0;
>
>
>
> for (i=periods; i<BarCount; i++) {
>
> PREV[i] = MyInd[i-1];
>
> if(LR[i] > PREV[i]) {
>
> if(LR_ATR[i] > PREV[i])
>
> MyInd[i] = LR_ATR[i];
>
> else
>
> MyInd[i] = PREV[i];
>
> }
>
> else
>
> MyInd[i] = LR[i];
>
> }
>
>
>
> Plot( MyInd, "My Indicator", ParamColor("My Ind
color", colorRed ),
> ParamStyle("My Ind style") );
>
>
>
>
>
> Regards,
>
>
>
> David
>
>
>
> _____
>
> From: amibroker@xxxxxxxxxps.com
[mailto:amibroker@xxxxxxxxxps.com]
On Behalf
> Of russ_shor
> Sent: 02/28/2007 7:40 AM
> To: amibroker@xxxxxxxxxps.com
> Subject: [amibroker] Help re converting metastock code
>
>
>
> Hi re a lower deviation metastock can someone help convert to
> Amibroker. I use version 4.6
>
> Metastock code:
>
If(LinearReg(c,13)>PREV,If(LinearReg(C,13)-(ATR(13)*2.5)>PREV,LinearReg(C,13
> )-(ATR(13)*2.5),PREV,LinearReg(C,13));
>
__._,_.___
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
__,_._,___