×

Sign up and get MultiCharts free

Use its powerful simulation mode with data included out of the box. Just fill out the form and start honing your trading skills with a few clicks.

Changes - MultiCharts

Changes

Jump to navigation Jump to search

MovAvg Adaptive Fltr

1,918 bytes added, 14:15, 14 October 2013
Created page with "Article/Author: "A Guide to Smarter Trading", Perry Kaufman, S&C Magazine, Traders Tips, 03/1998 '''AMA Function Code''': <syntaxhighlight> INPUTS: PERIOD(NUMERIC); VARS: NO..."
Article/Author: "A Guide to Smarter Trading", Perry Kaufman, S&C Magazine, Traders Tips, 03/1998

'''AMA Function Code''':

<syntaxhighlight>
INPUTS: PERIOD(NUMERIC);
VARS: NOISE(0), SIGNAL(0), DIFF(0), EFRATIO(0), SMOOTH(1), FASTEST(.6667), SLOWEST(.0645), ADAPTMA(0);

DIFF = ABSVALUE(CLOSE - CLOSE[1]);
IF CURRENTBAR <= PERIOD THEN ADAPTMA = CLOSE;
IF CURRENTBAR > PERIOD THEN BEGIN
SIGNAL = ABSVALUE(CLOSE - CLOSE[PERIOD]);
NOISE = SUMMATION(DIFF, PERIOD);
EFRATIO = SIGNAL / NOISE;
SMOOTH = POWER(EFRATIO * (FASTEST - SLOWEST) + SLOWEST, 2);
ADAPTMA = ADAPTMA[1] + SMOOTH * (CLOSE - ADAPTMA[1]);
END;

AMA = ADAPTMA;
</syntaxhighlight>

'''AMAF Function Code''':

<syntaxhighlight>
INPUTS: PERIOD(NUMERIC), PCNT(NUMERIC);

VARS: NOISE(0), SIGNAL(0), DIFF(0), EFRATIO(0), SMOOTH(1), FASTEST(.6667), SLOWEST(.0645), ADAPTMA(0), AMAFLTR(0);


DIFF = ABSVALUE(CLOSE - CLOSE[1]);
IF CURRENTBAR <= PERIOD THEN ADAPTMA = CLOSE;
IF CURRENTBAR > PERIOD THEN BEGIN
SIGNAL = ABSVALUE(CLOSE - CLOSE[PERIOD]);
NOISE = SUMMATION(DIFF, PERIOD);
EFRATIO = SIGNAL / NOISE;
SMOOTH = POWER(EFRATIO * (FASTEST - SLOWEST) + SLOWEST, 2);
ADAPTMA = ADAPTMA[1] + SMOOTH * (CLOSE - ADAPTMA[1]);
AMAFLTR = STDDEV(ADAPTMA-ADAPTMA[1], PERIOD) * PCNT;
END;

AMAF = AMAFLTR;
{COPYRIGHT 1997 TECHNICAL ANALYSIS, INC.}
</syntaxhighlight>

'''MovAvg Adaptive Fltr Signal Code''':

<syntaxhighlight>
INPUTS: PERIOD(10), PCNT(.15);
VARS: AMAVAL(0), AMAFVAL(0), AMALS(0), AMAHS(0);

AMAVAL = AMA(PERIOD);
AMAFVAL = AMAF(PERIOD, PCNT);

IF CURRENTBAR = 1 THEN BEGIN
AMALS = AMAVAL;
AMAHS = AMAVAL;
END ELSE BEGIN

IF AMAVAL < AMAVAL[1] THEN
AMALS = AMAVAL;
IF AMAVAL > AMAVAL[1] THEN
AMAHS = AMAVAL;

IF AMAVAL - AMALS CROSSES ABOVE AMAFVAL THEN
BUY THIS BAR ON CLOSE;
IF AMAHS - AMAVAL CROSSES ABOVE AMAFVAL THEN
SELL THIS BAR ON CLOSE;
END;
{COPYRIGHT 1997 TECHNICAL ANALYSIS, INC.}
</syntaxhighlight>

[[Category:Signals]]

Navigation menu