MFI: расчёт цены, объёма и скользящего окна
MFI, или Money Flow Index, объединяет типичную цену бара и его объём. Но название индикатора легко подталкивает к лишнему выводу: будто число показывает реальные денежные поступления в актив. В расчёте используется условная классификация баров по изменению цены. Данных о переводах денег или намерениях покупателей в нашей таблице нет.
Разберём MFI с коротким учебным периодом 3. Получим два последовательных результата и увидим необычную на первый взгляд ситуацию: последняя типичная цена выросла, а MFI снизился. Причина будет видна в составе окна, без предположений о скрытых действиях участников рынка.
Что входит в расчёт MFI
Типичная цена TP — среднее трёх значений: максимума High, минимума Low и закрытия Close. Затем вычисляется произведение TP × Volume. Для распределения этого произведения в положительную или отрицательную группу сравнивают текущую TP с предыдущей. Порядок описан в официальной справке TradingView о MFI.
В нашей учебной модели при росте TP произведение попадает в положительную группу, при снижении — в отрицательную. Если TP не изменилась, не включаем произведение ни в одну из групп. Это явно заданное правило упражнения. Его стоит проверить отдельно, если сравниваете свою таблицу с конкретной реализацией индикатора.
Для окна из трёх классифицированных баров обозначим сумму положительных произведений P, отрицательных Q. Когда Q больше нуля, MFI = 100 − 100 / (1 + P / Q). Для ручной проверки при P + Q больше нуля удобно равносильное выражение MFI = 100 × P / (P + Q).
Полные исходные данные для двух окон
Все числа придуманы для упражнения. High, Low и Close согласованы: закрытие находится внутри диапазона бара. Объём измеряется в условных единицах одного источника; он не обозначает рубли или доллары.
| Бар | High | Low | Close | TP | Объём | TP × объём |
|---|---|---|---|---|---|---|
| 1 | 102 | 98 | 100 | 100 | 1 | 100 |
| 2 | 104 | 100 | 102 | 102 | 2 | 204 |
| 3 | 103 | 99 | 101 | 101 | 3 | 303 |
| 4 | 103 | 99 | 101 | 101 | 4 | 404 |
| 5 | 105 | 101 | 103 | 103 | 1 | 103 |
Первый бар нужен для сравнения со вторым. Его произведение 100 не включаем в первое окно: внутри предоставленной истории нет предыдущей TP для определения его направления. На втором баре TP выросла, на третьем снизилась, на четвёртом не изменилась, на пятом снова выросла.
Чтобы получить первое полное окно из трёх классифицированных баров, здесь нужны четыре исходных бара. Не заполняем отсутствующую предыдущую цену нулём: это создало бы выдуманное направление движения.
Первое окно: почему получается 40,24
На четвёртом баре окно состоит из баров 2, 3 и 4. Во втором положительное произведение равно 204. В третьем отрицательное равно 303. Четвёртый бар с неизменной TP не добавляет ничего ни в P, ни в Q по принятому правилу.
Получаем P = 204, Q = 303. Тогда MFI = 100 × 204 / (204 + 303) = 20400 / 507 ≈ 40,2367. На экране можно показать 40,24, но внутри последующих проверок лучше сохранять исходные значения без преждевременного округления.
Объём четвёртого бара равен 4 и больше остальных объёмов в этой таблице. Однако его произведение 404 не участвует в положительной и отрицательной суммах. Следовательно, общий объём окна и знаменатель P + Q — разные величины. Если сложить все произведения без учёта направления, получится другой показатель.
Второе окно: цена выросла, а индекс снизился
На пятом баре окно сдвигается: теперь используются бары 3, 4 и 5. Старое положительное произведение 204 со второго бара вышло из расчёта. Новое положительное произведение равно 103. Отрицательное 303 осталось, а равная TP четвёртого бара по-прежнему ничего не добавляет.
Получаем P = 103 и Q = 303. MFI = 100 × 103 / 406 ≈ 25,3695. Типичная цена последнего бара выросла со 101 до 103, но MFI снизился с 40,2367 до 25,3695.
Противоречия здесь нет. Показатель зависит от всего текущего окна, а не только от последнего изменения цены. Из окна ушло положительное произведение 204, вместо него пришло меньшее 103. Этот пример не доказывает будущего падения цены: он объясняет уже полученный результат расчёта.
Нулевые суммы и ошибки при сравнении
Для нашей таблицы заранее зададим пограничные случаи. Если P больше нуля, а Q равна нулю, используем значение 100. Если P равна нулю, а Q больше нуля — 0. Если обе суммы равны нулю, результат обозначаем как неопределённый: формула 100 × P / (P + Q) требует деления на ноль.
Это условия учебной модели, а не обещание одинакового поведения всех терминалов. При расхождении проверьте обработку равной TP, нулевого объёма и неполной истории. Затем сравните период и точные границы окна. Только после этого имеет смысл искать ошибку в самой арифметике.
Удвоение всех объёмов при тех же ценах удвоит P и Q, но не изменит их отношение и MFI. А увеличение объёма только одного положительного или отрицательного бара изменит соотношение. Это помогает отличить относительную шкалу индекса от абсолютной суммы торгов.
Проверка для дневника и следующего разбора
Сначала самостоятельно восстановите обе суммы и два результата, закрыв расчётные пояснения. Затем измените объём пятого бара с 1 на 3. Его произведение станет равным 309, а MFI второго окна — 100 × 309 / (309 + 303) ≈ 50,4902. Цена не менялась; изменился её вес через объём.
Запишите источник данных, тикер, период графика, последнее закрытие, период MFI, правило равной TP и состав окна. В заметке отделяйте факт расчёта от предположения о будущем: «Окно 3–5 даёт 25,37» можно проверить, а «индикатор предсказал падение» требует отдельного исследования.
Для сравнения с другими показателями откройте энциклопедию технических индикаторов. На обучении трейдингу Student Wyckoff расчёт можно использовать как задание к дневнику: восстановить данные, объяснить движение окна и сформулировать проверяемый вопрос к торговому плану.