аналог функции Омеги в метатрейдере

 
аналог функции Омеги в метатрейдере
как заменить следующую функцию из Омеги EasyLanguage в MQL?
заранее большое спасибо!

MRO(EXPR,LENGTH,OCCUR)

EXPR occurrence to check for, for example when Close>Open
LENGTH number of trailing bars to check
OCCUR which occurrence, for example, 1 = most recent, 2 = 2nd most recent, and so on
 
ASCTrend Open Source мучаете?
 
да, а это наказуемо? :) (+)
если есть готовое не отказался бы
 
продолжение
Usage:
The first parameter, EXPR, stands for expression. It is the true/false condition you are looking for. For example, if you wanted to find the most recent occurrence of an outside bar, that would be your expression. LENGTH refers to how many bars the MRO function will evaluate at a time. Find the most recent occurrence of an outside bar for every 15 bars would require a LENGTH of 15. OCCUR stands for occurrence and refers to which occurrence you want to find. Usually the most recent occurrence is desired and is obtained by using an OCCUR of 1. If you wanted to find the second most recent occurrence, you would use the number 2.

Returns:
A numeric value containing the number of bars ago that the specified expression was True; -1 if expression was not found to be True within the last LENGTH bars

ИМХО в Metatrader только через цикл.

Может, разработчики подскажут элегантное решение?
 
Думаю, нет :) (+)
Тоже хочу начать. Только силами никак не соберусь. Как гляну на код, как-то тошно становится.
 
там ничего сложного ИМХО
у меня укороченный вариант ASCTrend1 код совсем небольшой, но сигналы дает такие же как OpenSource оригинальный. в MQL я не силен, думаю вот что делать
 
я тоже так думаю,
в логику только въехать надо.
могу предложить сотрудничество: с тебя внятный алгоритм - с меня помощь в кодировании на mql.
можно все сделать поэтапно - 1, 2, 3, sig, etc. - если нужны все индикаторы.
так и у меня стимул будет во всей бурде разобраться.
надумаешь, пиши.
 
Re: продолжение
Кстати, открой в PowerEditor MRO Function, ее код подскажет, что надо написать на mql:

{*******************************************************************
Description: Most Recent Occurrence
Provided By: Omega Research, Inc. (c) Copyright 1999
********************************************************************}

Inputs: Expression(TrueFalseSeries), Length(NumericSimple), Occur(NumericSimple);
Variables: TrueCount(0), Counter(0);

Counter = 0;
TrueCount = 0;

While Counter < Length AND TrueCount < Occur Begin
If Expression[Counter] Then
TrueCount = TrueCount + 1;
Counter = Counter + 1;
End;
If TrueCount >= Occur AND TrueCount > 0 Then
MRO = Counter - 1 + CurrentBar - BarNumber
Else
MRO = -1;