Here's a pic comparing them. Jurik is cyan and Quick is yellow. Also attached is the code is in the zip file.
okay also posting the code.
// with the option to select gapless daily opens.
//
// copyright 2008 John McCormick jmactrader.com
//
// feel free to copy and use this code royalty free
// as long as it retains the above acknowledge
//
inputs:
Price(Close),
Quick_Length(9),
displace(0),
gapless(0); // set gap to a non-zero value to skip over opening daily gaps
Var: Length(maxlist(1,Quick_Length));
// GapLess
Vars: // gapless O,H,L,C where O=C[1]
RelO(0),
RelH(0),
RelL(0),
RelC(0),
gap(0),
Accum(0),
WtMean(0);
if date<>date[1] then begin
gap = O-C[1];
Accum = Accum+gap;
end;
RelO = O-Accum;
RelC = C-Accum;
RelH = H-Accum;
RelL = L-Accum;
// Gapless bars - end
WtMean = (RelH+RelL+RelC)/3;
// End Gapless
if gapless=0
then plot1[displace](FMA_Smooth(price,length),"FMA_Quick")
else plot1[displace](FMA_Smooth(RelC,length)+accum,"FMA_Quick");
Function-------------------------------------------------------
// generates very smooth and responsive moving average
// copyright 2008 John McCormick jmactrader.com
// feel free to copy and use this code royalty free
// as long as you don't remove the above acknowledgement
//
Inputs:
Price(numericseries),
Length(numericsimple);
Vars:
j(0),
workinglen(maxlist(1,absvalue(Length))),
peak(workinglen/3),
tot(0),
divisor(0);
Array:
val[100](0);
if workinglen>100 then workinglen=100; // use larger array to handle lengths over 100
tot=0;
divisor=0;
for j=1 to floor(workinglen+1) begin
if j<=peak then val[j]=j/peak
else val[j]=(workinglen+1-j)/(workinglen+1-peak);
tot=tot+price[j-1]*val[j];
divisor=divisor+val[j];
end;
if divisor<>0 then FMA_smooth=tot/divisor;
Comment