![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Рассчитать медиану цены на заданном интервале с заданным количеством приближений.
Здравствуйте есть массив значений.
Задача написать функцию.
Параметры входа:
- массив содержит номера нужных элементов для расчета медианы - bufInBar[]
- размер массива bufInBar[] - count
- Количество приближений в медиан - fokus
То есть есть класс
bufInBar[i] - используется для загрузки нужного элемента при расчете медианы BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана BP[bufInBar[i]].Period;
На выходе :
Заполняется в порядке возрастания например с 0 до 10.
То есть, если в условии fokus=10, то на интервале i<count десять значений
будут равны от 1 до 10
Например
Непонятно, что за fokus
По идее, медиана - это значение элемента в середине упорядоченного массива. А в Вашем случае это что?
Пример:
Массив 30 значений цены МА, ищем середину упорядоченного массива.
Получаем 15(L0) значение середины массива,далее получаем два массива от L0 вниз и L0 наверх, находим середину этих массивов и так до получения количества fokus(семи значений например)
--------------|-------------- -------|--------------|------ ---|-------|------|-------|-- fokus=7 | - значение цены
Пример:
Массив 30 значений цены МА, ищем середину упорядоченного массива.
Получаем 15(L0) значение середины массива,далее получаем два массива от L0 вниз и L0 наверх, находим середину этих массивов и так до получения количества fokus(семи значений например)
А если в массиве четное число элементов, какой элемент будет медианой или должно быть рассчитано как среднее из двух или еще как-то?
Пример:
Я правильно понимаю, что нужно найти семь перцентилей: 12.5, 25, 37.5, 50, 62.5, 75, 87.5?
Если да, то делим количество элементов упорядоченного массива на 8 (7+1), и умножаем на номер нужного перцентиля. Получаем следующие индексы элементов: 3, 7, 11, 15, 18, 22, 26.
Так, или я не туда пошёл? Если так, то здесь самое важное создать экономный механизм ведения упорядоченного массива.
А если в массиве четное число элементов, какой элемент будет медианой или должно быть рассчитано как среднее из двух или еще как-то?
Думаю легче брать целое четное значение.
если 15 элементов, то медиана 8.
Я правильно понимаю, что нужно найти семь перцентилей: 12.5, 25, 37.5, 50, 62.5, 75, 87.5?
Если да, то делим количество элементов упорядоченного массива на 8 (7+1), и умножаем на номер нужного перцентиля. Получаем следующие индексы элементов: 3, 7, 11, 15, 18, 22, 26.
Так, или я не туда пошёл? Если так, то здесь самое важное создать экономный механизм ведения упорядоченного массива.
По массиву значений MA нужно найти медиану всего массива, далее медианы массивов полученных над/под первой медианой и т.д.
Тогда вроде всё правильно, медиана первой части массива - это четверть общего массива, и это 25 перцентиль. А медиана второй части - 75 перцентиль.
Это:
равнозначно этому: