With the following code:
***********************************************************
var smoothF(int period) { return 2./(period+1); }

var LowPassX(var *Data,int Period)
{
char txt[80];
var* LP = series(*Data,3);
// just to get the "Data" and "LP" values in a file
sprintf(txt, "%.5f, %.5f, %.5f, %.5f, %.5f, %.5f, %.5f%c%c",
Data[0], Data[1], Data[2], Data[3], LP[0], LP[1], LP[2], 0x0D, 0x0A);
file_append("c:/t/output.txt", txt);

var a = smoothF(Period);
var a2 = a*a;

return LP[0] = (a-0.25*a2)*Data[0]
+ 0.5*a2*Data[1]
- (a-0.75*a2)*Data[2]
+ 2*(1.-a)*LP[1]
- (1.-a)*(1.-a)*LP[2];
}

function run(){

BarPeriod = 1440;
StartDate = 20120301;
NumDays = 10;
var Period;

var* pH = series(priceHigh());
Period = 5;
var LP0 = LowPassX(pH,3*Period);

plot("LP0", LP0, 0, BLUE);

}
***********************************************************
I got this data (only de first 10 records are shown):

Data[0] is the price from today, data[1] the price from yesterday, data[2] the price from day before yesterday, etc. “LP” is taken from “data”.
var* LP = series(*Data,3);
LP[0] = Data[0], LP[2] comes from the previous value of LP[1] but the question is respect LP[1], where does the value of LP[1] come from ?. The value 1.33375, resalted in the image, where was it taken from ?

What I’m trying to do is to replace “series(*Data,3)” with another kind of code.

Thanks a lot for your help and your patience.

P.D. I don't know how to put my code in a "code box", sorry.