Главная | Опросы | Регистрация |  | Поиск | Стата | 1.0 | Сайт
Радио Бингуру
🔊
Выбрать
Готово
Техническое BINGURU FORUM / Техническое /  
 

Медианы, децили, процентили

 
Автор | Дата:   
привет ребята!
сколько бы я не изучала материалы по ТА и индикаторам, авторы то и дело носятся вокруг священной коровы средних.
А вот медианы, хотя бы, даже не обдумывают.
Поскольку медианы сравнивают со средними, приведу ликбез (спасибо дипсику за быстрый пример):

Представьте, что мы с вами и ещё три наших друга сидим в кафе и считаем, сколько денег у каждого в кошельке.

У нас получилось:

  • Вы: 500 рублей
  • Я: 600 рублей
  • Друг 1: 700 рублей
  • Друг 2: 800 рублей
  • Друг 3: 100 000 рублей (вдруг он только что получил зарплату и ещё не положил её в банк)

Теперь посчитаем два этих значения.

Среднее арифметическое (Средняя)
Что это? Это то, что все обычно называют «средним». Просто складываем все значения и делим на их количество.

Как считаем?
(500 + 600 + 700 + 800 + 100 000) / 5 = 102 600 / 5 = 20 520 рублей

Что получилось? Средняя сумма на человека — 20 520 рублей.

Проблема: Это неправда! Четверо из нас имеют меньше 1000 рублей, а один — очень много. Среднее арифметическое сильно «задрало» вверх из-за одной огромной суммы. Оно говорит нам не совсем то, что происходит на самом деле. Оно искажено аномальным значением (выбросом).

Медиана
Что это? Это число, которое стоит ровно посередине упорядоченного списка всех значений.

Как считаем?

Сначала строим все числа по порядку (от меньшего к большему):
500, 600, 700, 800, 100 000

Ищем число, которое стоит точно в центре этого ряда. Слева от него два числа, справа — два числа. Это и есть медиана.

Что получилось? Медиана = 700 рублей

Почему это лучше? Медиана показала нам более реалистичную картину. Она игнорирует аномально высокие (или низкие) значения и показывает, сколько денег у типичного человека в нашей компании. Она не испугалась зарплаты друга №3.

В жизни это нужно, чтобы:
  • Понимать реальное положение дел. Например, средняя зарплата в стране может быть высокой из-за нескольких миллиардеров, а медианная зарплата покажет, сколько получает большинство людей.
  • Принимать правильные решения. Если вы открываете кафе, вам важнее знать медианные траты людей в районе (на что способен типичный клиент), а не средние, которые может исказить один богатый посетитель.

Так что, когда в следующий раз услышите «средняя температура по больнице», помните — это среднее арифметическое, которое может быть искажено. А медиана даст более честный ответ.

медиана, конечно, это всего лишь 5-й дециль или 50-й процентиль. Другие тоже полезно использовать))
главное, что эта ниша недооценена в трейдинге и на ее основе можно было бы сварганить полезные индикаторы, а то и чем черт не шутит советники. главное найти грамотную идею!

Автор | Дата:   
Kristina:
можно было бы сварганить полезные индикаторы
Оригинал
Почему бы и нет, для начала можно сделать SMA только не со средним значением, а с медианным.

Автор | Дата:   
В ТВ можно найти такие индикаторы.
Самый простой:

study(title=«median», shorttitle=«median», overlay=true, precision=0)
length1 = input(20, minval=1, title=«Period»)
median = percentile_nearest_rank (close, length1, 50) //this returns the 50th percentile value
plot(median, color=lime, transp=0, linewidth=2)



Автор | Дата:   
Zack:
Почему бы и нет
Оригинал
В принципе, все уже давно сварганили до нас)

Автор | Дата:   
Risky:
уже давно сварганили до нас
Оригинал
Уф.. и хорошо! Я запланировал на после обеда, но так лениво было его делать

Автор | Дата:   
TV не пользуюсь, я чисто на мт4 и мт5. Делать индикаторы я как раз умею. Перспектив в скользящей медианной цене я лично не вижу
А вот если, скажем, взять актив условный евробакс, минутную историю по нему, взять индикатор стандартного отклонения и посчитать, какие у него процентили, медиана и прочее...
Например, stdDev до 20-го процентиля это тип флет на рынке

Автор | Дата:   
Kristina:
взять индикатор стандартного отклонения и посчитать, какие у него процентили, медиана
Оригинал
Получится что-то подобное тому, что на рисунке ниже. Красным — медианное значение отклонения, синим — 20-ый процентиль:



Автор | Дата:   
нет, ничего подобного. Я говорила о сборе статистики за все время и использовании её в дальнейших исследованиях.

навайбкодила через GPT-5 скрипт:

//+------------------------------------------------------------------+
//| Скрипт: StdDev Percentiles.mq5 |
//| Собирает историю iStdDev(20, SMA, Close) и считает процентили |
//| 10,20,30,40,50,60,70,80,90,100 |
//+------------------------------------------------------------------+
#property strict

// Возвращает p-й процентиль по уже отсортированному массиву (возрастание)
double PercentileOfSorted(const double &arr[], int size, double p)
{
if(size <= 0) return 0.0;
if(p < 0.0) p = 0.0;
if(p > 100.) p = 100.0;

double pos = (p / 100.0) * (size — 1);
int idx = (int)pos;
double frac = pos — idx;

if(idx + 1 < size)
return arr[idx] + frac * (arr[idx + 1] — arr[idx]);
return arr[idx];
}

void OnStart()
{
const int period = 20;
const int applied_price = PRICE_CLOSE;
const int ma_method = MODE_SMA;

//--- создаём хэндл индикатора StdDev
int handle = iStdDev(_Symbol, _Period, period, 0, MODE_SMA, PRICE_CLOSE);
if(handle == INVALID_HANDLE)
{
Print("Ошибка создания индикатора StdDev: ", GetLastError());
return;
}

//--- количество баров и копирование буфера
int bars = Bars(_Symbol, _Period);
if(bars <= 0)
{
Print("Нет баров на графике");
return;
}

double buf[];
ArraySetAsSeries(buf, true);
int copied = CopyBuffer(handle, 0, 0, bars, buf);
if(copied <= 0)
{
Print("Ошибка CopyBuffer: ", GetLastError());
return;
}

//--- соберём только валидные значения (отбрасываем EMPTY_VALUE/NaN)
double data[];
for(int i = 0; i < copied; ++i)
{
double v = buf[i];
if(v != EMPTY_VALUE && MathIsValidNumber(v))
{
int n = ArraySize(data);
ArrayResize(data, n + 1);
data[n] = v;
}
}

int n = ArraySize(data);
if(n == 0)
{
Print("Нет валидных значений StdDev для расчёта процентилей");
return;
}

//--- сортируем по возрастанию (один параметр!)
ArraySort(data);

//--- процентили 10..100
for(int p = 10; p <= 100; p += 10)
{
double perc = PercentileOfSorted(data, n, (double)p);
PrintFormat("%d-й перцентиль StdDev = %.6f", p, perc);
}
}


на М1 он за всю историю... ну как всю историю, у меня в терминале MT5 это несколько месяцев, вот это собрал для EURUSD:

2025.08.21 21:22:56.836 stdd_stat1 (EURUSD,M1) 10-й перцентиль StdDev = 0.000081
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 20-й перцентиль StdDev = 0.000106
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 30-й перцентиль StdDev = 0.000128
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 40-й перцентиль StdDev = 0.000151
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 50-й перцентиль StdDev = 0.000176
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 60-й перцентиль StdDev = 0.000204
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 70-й перцентиль StdDev = 0.000240
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 80-й перцентиль StdDev = 0.000291
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 90-й перцентиль StdDev = 0.000385
2025.08.21 21:22:56.837 stdd_stat1 (EURUSD,M1) 100-й перцентиль StdDev = 0.005525

но по-хорошему надо рассчитывать для каждого часа в сутках отдельно, например, процентили для свечек в 09:00-09:59 в разные дни и пр.

Автор | Дата:   
Kristina:
нет, ничего подобного
Оригинал
А что вообще хочешь сделать? Можно поконкретнее?

Автор | Дата:   
Можно как пример взять вот это:

[тут не могу прикрепить ссылку на стратегию RSI 4 60 секунд с бингуру 1.0, у меня пока 10 постов нету]

что может быть проще?
всё, что требовалось бы по-хорошему, это сместить винрейт с 51/49 до 60/40 фильтруя ложные сигналы. а где они, ложные сигналы эти, конечно же в трендах!
Микеланджело брал глыбу (все сигналы) и отсекал всё лишнее (в основном ложные сигналы), так и рождаются шедевры.
бесконечно перебирать какие-то комбинации индикаторов не основываясь ни на чём, или всё-таки собирать статистику и исследовать её?

Автор | Дата:   
Kristina:
всё, что требовалось бы по-хорошему, это сместить винрейт с 51/49 до 60/40 фильтруя ложные сигналы. а где они, ложные сигналы эти, конечно же в трендах!
Оригинал
И как это связано с медианами и процентилями? Якобы это поможет лучше видеть тренды? Так тренды и так видны всегда.

Автор | Дата:   
а не очевидно, что я говорю о механической торговле?
и не говори мне, что это путь в никуда, я и сама торгую дискреционно. Ведь таковы реалии, я не вчера в трейдинг пришла
Гипотезу с фильтром по процентилю (с разбивкой по получасам 09:00-09:29, 09:30-09:59, 10:00-10:29 и т.п.) для стратегии RSI 4 я вчера протестила, никакого сюрприза, да.
Но если и когда кто-то нащупает где-то какую-то неэффективность, он сделает это примерно такими методами, работой со статистикой

Автор | Дата:   
Kristina:
а не очевидно, что я говорю о механической торговле?
Оригинал




Kristina:
и не говори мне, что это путь в никуда, я и сама торгую дискреционно
Оригинал
Да я ничего и не говорю

Автор | Дата:   
Kristina:
Но если и когда кто-то нащупает где-то какую-то неэффективность, он сделает это примерно такими методами, работой со статистикой
Оригинал
Согласен полностью

Автор | Дата:   
Zack:
Согласен полностью
Оригинал
Но это больше для алготрейдеров. У ручников иначе все. Ты кто сам: ручник или алгос?)

Техническое BINGURU FORUM / Техническое /
 Медианы, децили, процентили

Ваш ответ Нажмите эту иконку для возврата на цитируемое сообщение

 

  ?
Только зарегистрированные пользователи могут отправлять сообщения. Авторизуйтесь для отправки сообщений, или зарегистрируйтесь сейчас.

 

Майоры: У терминала - 6
Трейдят - 3 [ promoprivate, GraficoAcu, panda28 ]
В окопе: 137 []
У терминала - 133 / Трейдят - 4
© 2026 Binguru Forum Engine. All rights reserved.
 


  ⇑