Индикаторы: AIS Extremum

 

AIS Extremum:

Индикатор позволяет оценивать вероятность того, что цена достигла своего максимума или минимума.

AIS Extremum

Автор: Aleksej Poljakov

 
Формула для  suml  выглядит некорректно (ассиметрична относительно  sumh ).

// Текущий код (вероятно ошибка): suml = pricel[j] - suml; // Должно быть симметрично sumh: suml = suml - pricel[j];

 
Andy An #:
Формула для  suml  выглядит некорректно (ассиметрична относительно  sumh ).

// Текущий код (вероятно ошибка): suml = pricel[j] - suml; // Должно быть симметрично sumh: suml = suml - pricel[j];Н

Нет. Просто для сумм вверх нужны положительные значения (чем больше, тем выше вероятность, что достигнут максимум).

А для поиска минимума сумма будет отрицательной (чем меньше, тем выше вероятность того, что достигнут минимум). Чтобы не умножать сущности я просто суммы для минимума беру с противоположным знаком. Тогда, хоть для максимума, хоть для минимума все считается одинаково. то есть - симметрия есть, только со знаком минус.

 
Aleksej Poljakov #:

Нет. Просто для сумм вверх нужны положительные значения (чем больше, тем выше вероятность, что достигнут максимум).

А для поиска минимума сумма будет отрицательной (чем меньше, тем выше вероятность того, что достигнут минимум). Чтобы не умножать сущности я просто суммы для минимума беру с противоположным знаком. Тогда, хоть для максимума, хоть для минимума все считается одинаково. то есть - симметрия есть, только со знаком минус.

С Вашего позволения оптимизировал индикатор:

Файлы:
 
Andy An #:
С Вашего позволения оптимизировал индикатор:

Ваш вариант прекрасен!

Тут основная засада в том, что полностью алгоритм в виде индикатора реализовать вряд ли удастся.

Как должен работать алгоритм полностью.

Меряем разность price[i]-price[i+1] - сравниваем и запоминаем. Для остальных разностей все делаем то же самое. В результате должно получиться N вероятностей, что цена достигла своего экстремума. Соответственно, если основной сигнал указывает пора открыть buy, этот фильтр говорит - минимум достигнут, то и можно следовать сигналу.

Еще лучше, если статистика будет строится на конечных разностях. 

 
Andy An #:

С Вашего позволения оптимизировал индикатор:

В реалтайме что-то некорректное показывает - на каждом баре рисует верхний и нижний значок.

И периодически, обычно при старте, вот такое выскакивает:

array out of range in 'AIS_Extremum_Enhanced.mq5' (177,20)

А так - весьма симпатично выглядит.

 
Aleksej Poljakov #:

Ваш вариант прекрасен!

Тут основная засада в том, что полностью алгоритм в виде индикатора реализовать вряд ли удастся.

Как должен работать алгоритм полностью.

Меряем разность price[i]-price[i+1] - сравниваем и запоминаем. Для остальных разностей все делаем то же самое. В результате должно получиться N вероятностей, что цена достигла своего экстремума. Соответственно, если основной сигнал указывает пора открыть buy, этот фильтр говорит - минимум достигнут, то и можно следовать сигналу.

Еще лучше, если статистика будет строится на конечных разностях. 

Не уверен что правильно Вас понял. Вот что получилось.
Файлы:
 
AndyAnn #:
Не уверен что правильно Вас понял. Вот что получилось.

Хорошо получилось у вас.

По мне, было бы замечательно, если бы я описывал алгоритм, а кто-нибудь его кодировал)

В данном случае, все просто - собираем статистку типа price[i] - price{i+n], по этой статистике судим о том, что цена достигла локального максимума/минимума. Да, попадаем мы не всегда, но у нас ясное и точное определение что и как. Как бы то ни было, но этот алгоритм можно использовать в качестве фильтра.

 
Aleksej Poljakov #:

Хорошо получилось у вас.

По мне, было бы замечательно, если бы я описывал алгоритм, а кто-нибудь его кодировал)

В данном случае, все просто - собираем статистку типа price[i] - price{i+n], по этой статистике судим о том, что цена достигла локального максимума/минимума. Да, попадаем мы не всегда, но у нас ясное и точное определение что и как. Как бы то ни было, но этот алгоритм можно использовать в качестве фильтра.

Я готов кодировать Ваши алгоритмы, пишите...
Я бы предложил собирать статистику немного по другому. Определять вероятность окончания текущего сегмента BC (например, восходящего), от величины  ближайшего сегмента AB (нисходящего). Если в терминах Зигзага.