Most Recent Occurrence (MRO)

<< Click to Display Table of Contents >>

Navigation:  NinjaScript > Language Reference > Common > Analytical >

Most Recent Occurrence (MRO)

Previous page Return to chapter overview Next page


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.


Note: 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.



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.





A true/false expression


The occurrence to check for (1 is the most recent, 2 is the 2nd most recent, etc...)


The 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.



Tip:  The syntax for the "condition" parameter uses lambda expression syntax





protected override void OnBarUpdate()
  // 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)
  int barsAgo = MRO(() => Close[0] > Open[0], 1, 9);
  if (barsAgo > -1)
      Print("The bar high was " + High[barsAgo]);  


See Also
Least Recent Occurrence(LRO)