Example of use in screenshot attached to end of post.
EL as follows :
Function :
[LegacyColorValue = true];
{function JTPOSeries(Series Integer; Len Integer) integer;}
inputs: Series(NumericSeries),Len(NumericSimple);
begin
var: sBar(0);
{ var sName: string;
var Value: float;
sName := 'JTPO(' + GetDescription(Series) + ',' + IntToStr(Len) + ')';
Result := FindNamedSeries(sName); if Result >= 0 then Exit;
Result := CreateNamedSeries(sName);
}
var: f0(0), f8(0), f10(0), f18(0), f20(0), f28(0);
var: f30(0), f38(0), f40(0), f48(0);
var: var6(0), varA(0), varE(0), var12(0), var14(0);
var: var18(0), var1C(0), var20(0), var24(0);
array: arr0[301](0), arr1[301](0), arr2[301](0), arr3[301](0);
{ for sBar = 0 to BarCount() - 1 }
begin var14 = 0; var1C = 0;
if (f38 = 0) then
begin
f38 = 1;
f40 = 0;
if (Len-1 >= 2)
then
f30 = Len-1
else
f30 = 2;
f48 = f30 + 1;
f10 = Series;
arr0[f38] = Series;
f18 = 12 / (f48 * (f48 - 1) * (f48 + 1));
f20 = (f48 + 1) * 0.5;
end
else begin
if (f38 <= f48)
then f38 = f38 + 1
else f38 = f48 + 1;
f8 = f10;
f10 = Series;
if (f38 > f48) then
begin
for var6 = 2 to f48 begin
arr0[var6 - 1] = arr0[var6];end;
arr0[f48] = Series;
end
else arr0[f38] = Series;
if ((f30 >= f38) and (f8 <> f10))
then f40 = 1;
if ((f30 = f38) and (f40 = 0))
then f38 = 0; end;
if (f38 >= f48)
then begin
for varA = 1 to f48
begin
arr2[varA] = varA;
arr3[varA] = varA;
arr1[varA] = arr0[varA];
end;
for varA = 1 to f48-1
begin
var24 = arr1[varA];
var12 = varA;
var6 = varA + 1;
for var6 = varA + 1 to f48 begin
if ( arr1[var6] < var24 )
then begin
var24 = arr1[var6];
var12 = var6;
end; end;
var20 = arr1[varA];
arr1[varA] = arr1[var12];
arr1[var12] = var20;
var20 = arr2[varA];
arr2[varA] = arr2[var12];
arr2[var12] = var20;
end;
varA = 1;
while (f48 > varA)
begin
var6 = varA + 1;
var14 = 1;
var1C = arr3[varA];
while (var14 <> 0)
begin
if (arr1[varA] <> arr1[var6])
then
begin
if (var6 - varA > 1)
then
begin
var1C = var1C / (var6 - varA);
varE = varA;
for varE = varA to var6-1 begin
arr3[varE] = var1C; end;
end;
var14 = 0;
end
else
begin
var1C = var1C + arr3[var6];
var6 = var6 + 1;
end;
end;
varA = var6;
end;
var1C = 0;
for varA = 1 to f48 begin
var1C = var1C + (arr3[varA] - f20) * (arr2[varA] - f20); end;
var18 = f18 * var1C;
end else var18 = 0;
JTPO = var18;
end;end;
Indicator
[LegacyColorValue = true];
inputs:len(13);
PLOT1(JTPO(C,len),"JTPO");
Plot2(0,"Null");
Thanks,
J.
Comment