Trend Line Example

Author: Optuma Team Last updated: Jan 23, 2024 09:00

The following code is an example of create a trend line with the custom tool scripting.

//
 // Sample script for Optuma tool scripting
 //

 // This section is where variable are defined that need to be used in both the Init and Process procedures
 var
     Line1 : TLine;

 // DefineTool is where the settings for the Tool are defined
 // This procedure is called once when the tool is loaded
 // Normally this procedure does not need to be changed
 procedure DefineTool(Tool : TTool);
 begin
     Tool.Name := 'My Trend Line';
     Tool.Key := '210189E5-77AF-4616-B5A1-04829030C11E';
     Tool.MouseClicks := 2;
     Tool.Hint := '';
     Tool.ToolType := ttDrawing;
 end;

 // Init is called to initialise the tool
 // This procedure is called once when the tool is added to a chart
 procedure Init(Tool : TTool);
 begin
     Line1 := Tool.AddLine();
     Line1.Color := clRed;
     Line1.Style := Solid; // Types of TLineStyle=(Solid, DotDot, Dash, DashDot, LongDash, LongDashDot, LongDashDotDot)
     Line1.Width := 1;
 end;

 // Process is called to calculate and drawn the tool on screen
 // This procedure is called when new data is received or loaded and
 // when a selection point is moved by the user
 procedure Process(Tool : TTool; ProcessStart : Integer; ProcessEnd : Integer; DataIn : TDataList);
 begin
     Line1.P1.Date := Tool.MP[0].Date;
     Line1.P1.Price := Tool.MP[0].Price;
     Line1.P2.Date := Tool.MP[1].Date;
     Line1.P2.Price := Tool.MP[1].Price;
 end;

Discussion