SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Strategies & Market Trends : Systems, Strategies and Resources for Trading Futures

 Public ReplyPrvt ReplyMark as Last ReadFilePrevious 10Next 10PreviousNext  
To: Chip McVickar who wrote (25733)6/22/1999 1:24:00 PM
From: Stoctrash  Read Replies (2) of 44573
 
Anyone ever here of the Abrahm Trend Indicator...??
New from listserver...

EnsignList - ensignsoftware.com

Here is a rendition of the Abraham Trend Indicator coded for Ensign Windows.

It looks like the two parameters (ATRLen and atrMult) are tunable (via the
User dialog), but I left them hardcoded per the TS code.

Also note that I've used the ExpAverage instead of a weighted average. It
doesn't appear that weightedAverage is a core routine in ESPL, and I didn't
want to take the time to code it up myself. Also note that the results
using the ExpAverage look similar to what the weighted avg might look like!

I use PaintShopPro for my gifs. This one is 12.3Kb.

Dick XXXXx

***************************************************************************

procedure AbrahamTrend;
var
i,j,period, atrMult, atrLen: word;
HClose, LClose, value1, value2: real;

begin
atrLen := 21;
/* atrLen := GetUser(eParm1); length of atr avg to be taken, from
user */
atrMult := 3; /* tunable multiplier */
LClose := 99999.0; /* initialize H/LClose values */
HClose := -99999.0;

for i:=BarBegin to BarEnd do begin
if i<=atrLen then
Value2 := HClose-Value1;

if i > atrLen then begin /* don't process bars earlier than period of
avg */
if ( Last(i) > HClose ) then
HClose := Last(i);
if ( Last(i) < LClose ) then
LClose := Last(i);

Value1 := AtrMult * ExpAverage(eTrueRange, i, AtrLen);

if Last(i) < Value2 then begin
Value2 := LClose+Value1;
HClose := Last(i);
end;
if Last(i) > Value2 then begin
Value2 := HClose-Value1;
LClose := Last(i);
end;

end;

SetUser(1,Value2,i);
end;
end;

Report TOU ViolationShare This Post
 Public ReplyPrvt ReplyMark as Last ReadFilePrevious 10Next 10PreviousNext