Метод описывает быстрое определение процентного изменения индикатора с некоторыми ограниченями - значения индикатора должны быть положительными и не сильно меняться (на единицы процентов) за интересующие промежутки времени.
Но нам нужно получить процентное изменение. Это можно сделать такими способами:
Полученное значение не абсолютно точно, но достаточно точно для приближенной оценки. Чем больше изменение, тем больше погрешность.
График показывает зависимость ошибки оценки от разницы в процентах между конечным и начальным значениями.
Цены, индексы и подобные индикаторы редко колеблются больше, чем на 10% за достаточно большой период времени (дни, недели), что дает хорошую погрешность (менее 5%) для быстрой оценки.
На сайте есть пара индикаторов, поддерживающих функцию логарифмирования результата, рассмотрим, как это работает. Для примера выше включим у индикатора Index параметр LogScale.
Получили примерно то же самое, как если бы считали по формулам в описании задачи. С учетом погрешности позиционирования курсора такие значения можно смело округлять до десятых частей.
Для определения процентного изменения кросса можно воспользоваться тем же индикатором Index.
Уточнение.
Приведённые в пример индикаторы Chart и Index, имеющие возможность использовать этот метод, со временем изменились и теперь либо не имеют отдельного параметра для логарифмирования, либо не делают умножения на 100. Однако сам метод вполне рабочий.
Описание задачи
В MetaTrader есть инструмент для определения расстояния - в режиме Перекрестие нажать кнопку мыши в начальной точке и провести до конечной. Так можно узнать разницу между значениями в этих точках.Но нам нужно получить процентное изменение. Это можно сделать такими способами:
- разделить разницу на начальное значение и умножить на 100
- разделить конечное значение на начальное, вычесть 1 и умножить на 100
Решение
Решение проблемы заключается в логарифмировании по основанию e значений индикатора и умножении на 100. После этого в режиме Перекрестие разница будет показываться сразу в процентах. Существует математическое обоснование тому, что нужно применять именно натуральный логарифм, никак не зависящее от того, что мы работаем с рынком, а не с любым другим рядом чисел.Полученное значение не абсолютно точно, но достаточно точно для приближенной оценки. Чем больше изменение, тем больше погрешность.
График показывает зависимость ошибки оценки от разницы в процентах между конечным и начальным значениями.
Цены, индексы и подобные индикаторы редко колеблются больше, чем на 10% за достаточно большой период времени (дни, недели), что дает хорошую погрешность (менее 5%) для быстрой оценки.
На сайте есть пара индикаторов, поддерживающих функцию логарифмирования результата, рассмотрим, как это работает. Для примера выше включим у индикатора Index параметр LogScale.
Получили примерно то же самое, как если бы считали по формулам в описании задачи. С учетом погрешности позиционирования курсора такие значения можно смело округлять до десятых частей.
Для определения процентного изменения кросса можно воспользоваться тем же индикатором Index.
Реализация в коде
Пример кода:// Расчет значения value индикатора для бара bar double value = ...; //TODO: проверить, чтобы value было больше 0 // Логарифмирование if (LogScale) IndicatorBuffer[bar] = MathLog(value) * 100.0; else IndicatorBuffer[bar] = value;