Most Recent Occurrence (MRO)

View as Markdown

Definition

Returns the number of bars ago that the test condition evaluated to true within the specified look back period expressed in bars. The MRO() method starts from the current bar works away (backward) from it.

This method does NOT work on multi-series strategies and indicators.

Method Return Value

An int value representing the number of bars ago. Returns a value of -1 if the specified test condition did not evaluate to true within the look-back period.

Syntax

MRO(Func\<bool\> condition, int instance, int lookBackPeriod)

  1. The “instance” parameter MUST be greater than 0.
  2. The “lookBackPeriod” parameter MUST be greater than 0.
  3. Please check the Log tab for any other exceptions that may be thrown by the condition function parameter.

Parameters

ParameterDescription
conditionA true/false expression
instanceThe occurrence to check for (1 is the most recent, 2 is the 2nd most recent, etc…)
lookBackPeriodThe number of bars to look back to check for the test condition. The test evaluates on the current bar and the bars within the look-back period.

The syntax for the “condition” parameter uses lambda expression syntax.

Examples

1protected override void OnBarUpdate()
2{
3 // Prints the high price of the most recent up bar over the last 10 bars (current bar + look back period's 9 bars before that)
4 int barsAgo = MRO(() => Close[0] > Open[0], 1, 9);
5 if (barsAgo > -1)
6 Print("The bar high was " + High[barsAgo]);
7}

See Also

Least Recent Occurrence(LRO)