Guest User | Sign In

Knowledge Base

Time Events Example

 //                        
 // Sample script for Market Analyst tool scripting
 // Creates three vertical lines yesterdaym 30 days ago and 60 days ago
 // It also creates a vertical line for every bar that has the Close greater than the Open
 // It also adds a region between 45 days ago and 10 days ago
 //
 
 // This section is where variable are defined that need to be used in both the Init and Process procedures
 var                                               
     Events : TEvents;    
     Event : TEvent;    
     bCreateEvents : Boolean;   
 
 // 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 := 'Time Events';
     Tool.MouseClicks := 1;
     Tool.Hint := '';
     Tool.ToolType := ttDataList;  
 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
    Events := Tool.AddEvents();
    Events.Extend := true; 
    Events.AddRegion(Now()-45, Now()-10, clBlue);    // This creates a region between 45 days ago and 10 days ago
    Events.FillTransparency := 40; 
                          
    Event := Events.AddEvent(Now()-1, clRed);
    Event := Events.AddEvent(Now()-30, clRed);           
    Event := Events.AddEvent(Now()-60, clBlue);
    
    bCreateEvents := True;
 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);
 var
   i : Integer;
 begin
    if bCreateEvents then  // this is so the lines are drawn only the first time
    begin                
       for i := ProcessStart to ProcessEnd do
       begin
          if DataIn.Row[i].Close > DataIn.Row[i].Open then  
          begin                       
             Events.AddEvent(DataIn.Row[i].Date, clRed);
          end;
       end;
    end;
    bCreateEvents := False;
 end;

 Last updated Fri, Jan 29 2016 9:32am

Please Wait!

Please wait... it will take a second!