// Текущий код (вероятно ошибка): suml = pricel[j] - suml; // Должно быть симметрично sumh: suml = suml - pricel[j];
Формула для suml выглядит некорректно (ассиметрична относительно sumh ).
// Текущий код (вероятно ошибка): suml = pricel[j] - suml; // Должно быть симметрично sumh: suml = suml - pricel[j];Н
Нет. Просто для сумм вверх нужны положительные значения (чем больше, тем выше вероятность, что достигнут максимум).
А для поиска минимума сумма будет отрицательной (чем меньше, тем выше вероятность того, что достигнут минимум). Чтобы не умножать сущности я просто суммы для минимума беру с противоположным знаком. Тогда, хоть для максимума, хоть для минимума все считается одинаково. то есть - симметрия есть, только со знаком минус.
Нет. Просто для сумм вверх нужны положительные значения (чем больше, тем выше вероятность, что достигнут максимум).
А для поиска минимума сумма будет отрицательной (чем меньше, тем выше вероятность того, что достигнут минимум). Чтобы не умножать сущности я просто суммы для минимума беру с противоположным знаком. Тогда, хоть для максимума, хоть для минимума все считается одинаково. то есть - симметрия есть, только со знаком минус.
С Вашего позволения оптимизировал индикатор:
Ваш вариант прекрасен!
Тут основная засада в том, что полностью алгоритм в виде индикатора реализовать вряд ли удастся.
Как должен работать алгоритм полностью.
Меряем разность price[i]-price[i+1] - сравниваем и запоминаем. Для остальных разностей все делаем то же самое. В результате должно получиться N вероятностей, что цена достигла своего экстремума. Соответственно, если основной сигнал указывает пора открыть buy, этот фильтр говорит - минимум достигнут, то и можно следовать сигналу.
Еще лучше, если статистика будет строится на конечных разностях.
В реалтайме что-то некорректное показывает - на каждом баре рисует верхний и нижний значок.
И периодически, обычно при старте, вот такое выскакивает:
array out of range in 'AIS_Extremum_Enhanced.mq5' (177,20)
А так - весьма симпатично выглядит.
Ваш вариант прекрасен!
Тут основная засада в том, что полностью алгоритм в виде индикатора реализовать вряд ли удастся.
Как должен работать алгоритм полностью.
Меряем разность price[i]-price[i+1] - сравниваем и запоминаем. Для остальных разностей все делаем то же самое. В результате должно получиться N вероятностей, что цена достигла своего экстремума. Соответственно, если основной сигнал указывает пора открыть buy, этот фильтр говорит - минимум достигнут, то и можно следовать сигналу.
Еще лучше, если статистика будет строится на конечных разностях.
Не уверен что правильно Вас понял. Вот что получилось.
Хорошо получилось у вас.
По мне, было бы замечательно, если бы я описывал алгоритм, а кто-нибудь его кодировал)
В данном случае, все просто - собираем статистку типа price[i] - price{i+n], по этой статистике судим о том, что цена достигла локального максимума/минимума. Да, попадаем мы не всегда, но у нас ясное и точное определение что и как. Как бы то ни было, но этот алгоритм можно использовать в качестве фильтра.
Хорошо получилось у вас.
По мне, было бы замечательно, если бы я описывал алгоритм, а кто-нибудь его кодировал)
В данном случае, все просто - собираем статистку типа price[i] - price{i+n], по этой статистике судим о том, что цена достигла локального максимума/минимума. Да, попадаем мы не всегда, но у нас ясное и точное определение что и как. Как бы то ни было, но этот алгоритм можно использовать в качестве фильтра.
Я бы предложил собирать статистику немного по другому. Определять вероятность окончания текущего сегмента BC (например, восходящего), от величины ближайшего сегмента AB (нисходящего). Если в терминах Зигзага.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
AIS Extremum:
Индикатор позволяет оценивать вероятность того, что цена достигла своего максимума или минимума.
Автор: Aleksej Poljakov