I know next to nothing and I can't even begin to compile something using Delphi - maybe some knowledgeable person can see why this code gives an error and perhaps you would compile it to see if it works. I think an LSMA indicator would be a great addition to Forex Tester, but my ignorance of Delphi prevents me from completing this project.
Thanks in advance for any help rendered
Code: Select all
library LSMA;
uses
graphics, IndicatorInterfaceUnit;
var
// external parameters
period: integer; // ?? period
// index buffer
bufLSMA: TIndexBuffer;
//---------------------------------------------------------------------------
// Initialization procedure
//---------------------------------------------------------------------------
procedure Init; stdcall;
begin
// Define parameters
IndicatorShortName('LSMA');
SetOutputWindow(ow_ChartWindow);
// register external parameters
AddSeparator('Common');
RegOption('Period', ot_Integer, period);
SetOptionRange('Period', 1, MaxInt);
period := 20;
// Create index buffer
IndicatorBuffers(1);
LSMA := CreateIndexBuffer;
SetIndexBuffer(0, LSMA);
SetIndexStyle(0, 0, psSolid, 1, clBlue);
end;
//---------------------------------------------------------------------------
// Deinitialization procedure
//---------------------------------------------------------------------------
procedure Done; stdcall;
begin
// do nothing
end;
//---------------------------------------------------------------------------
// Calculate single bar
//---------------------------------------------------------------------------
procedure Calculate(index: integer); stdcall;
var
i: integer;
sum: double;
begin
sum := 0;
for i := index + period - 1 downto index do
begin
sum := sum + (i - (period + 1) / 3) * Close(period - i);
end;
bufLSMA[index] := sum * 6 / (period * (period + 1));
end;
exports
Init, Done, Calculate;
end.