Optimization Handling Functions

 

Correct me if I am wrong

I understand that…

  • 1 Frame is the resulting data from 1 optimization pass
  • the Tester event and the TesterPass event both occur after a single optimization pass
  • OnTester() is mainly used for returning custom criterion ( often using TesterStatistics() )
  • OnTesterPass() is mainly used for handling new frames and the data within them
  • FrameFirst() and FrameNext() are to be used in OnTesterDeinit() to re-proccess all of the frames

 

Questions:

What exactly is a testing agent?

Where and how do you use FrameAdd()?

How does OnTesterPass() receive the frame?

Is OnTesterDeinit() the only function to use FrameFirst() and FrameNext()?

Does ParameterSetRange() override the Start, Stop, and Step values set in the main terminal?


Thank you for any clarification...

 
emerson2102:

Correct me if I am wrong

I understand that…

  • 1 Frame is the resulting data from 1 optimization pass
  • the Tester event and the TesterPass event both occur after a single optimization pass
  • OnTester() is mainly used for returning custom criterion ( often using TesterStatistics() )
  • OnTesterPass() is mainly used for handling new frames and the data within them
  • FrameFirst() and FrameNext() are to be used in OnTesterDeinit() to re-proccess all of the frames

Simply imagine your EA is running on agents (a pass), you are using OnTester() which is run at the end of each pass.

Locally, you have a "meta EA" (your EA but using only OnTesterInit(), OnTesterPass() and OnTesterDeinit()) which receive the frames and process them.

Questions:

What exactly is a testing agent?

A local or remote execution thread running your EA.

Where and how do you use FrameAdd()?

In OnTester().

How does OnTesterPass() receive the frame?

Doesn't matter.

Is OnTesterDeinit() the only function to use FrameFirst() and FrameNext()?

No you can also use them on OnTesterPass().

Does ParameterSetRange() override the Start, Stop, and Step values set in the main terminal?

Yes.
 
In OnTester().

Thank you for your response! I have a couple more questions…

Correct me if I am wrong

 

OnTester() is always called after an optimization pass. This function is responsible for "adding" the received frame.

The "adding" of a new frame (not the completion of a pass) results in the call of OnTesterPass().


Questions:

  • What collection is the frame being added to?
  • When is this collection emptied?
  • Do you use History…() to acquire the data array to pass into FrameAdd() ?
  • If OnTester() has access to the data using History…(), why use OnTesterPass() to handle the data?
  • Do you know of any articles that use FrameAdd() in example?
Reason: