Содержание статьи
- Доказательства и область применения
- Иллюстрация
- Процесс
- Не просто переименованный RSI, но и не измерение движения капитала
- Стабильное соотношение и явные граничные случаи
- Пример расчёта и неудачная попытка определить дно
- Отдельные версии для разворота тренда и следования за трендом.
- Сопоставляйте MFI с экстремумами, подтверждёнными без знания будущего
- Выделите вклад объёма
- Частые ошибки
- Практический список проверки
- Частые вопросы
- Источники исследования
Доказательства и область применения
Fidelity объясняет MFI и ограничения экстремальных значений; TradingView документирует реализацию индикатора. Эти источники не дают подтверждённой истории торговли по предлагаемым правилам входа. Исследование качества данных относится к исторической выборке бирж, а не каждому текущему потоку. [1] [2] [3]
Практическая последовательность действий
- Проверка входных данныхТипичная цена и объём относятся к одному инструменту и одному времени отсечения данных.
- Классификация необработанного потокаИспользуйте изменения типичной цены и явное правило для равных цен.
- Рассчитайте соотношениеТребуйте полное окно наблюдений и обработку нулевого суммарного потока.
- Дождитесь подтвержденияЭкстремальное значение или расхождение создает потенциального кандидата, а не гарантирует автоматическую сделку.
- Проверьте вклад объемаСравните идентичных кандидатов с учетом и без учета объемного взвешивания.
Не просто переименованный RSI, но и не измерение движения капитала
Типичная цена — TP=(H+L+C)/3. Исходный поток — это TP, умноженная на объем. Классифицируйте этот поток как положительный, когда типичная цена растет, и как отрицательный, когда она падает. Отрицательный поток хранится как неотрицательная величина для отношения; это не отрицательное число, вычитаемое из знаменателя. В соответствии с используемой здесь системой обозначений, неизменные типичные цены не попадают ни в одну из групп.
Объём входит в вес, поэтому MFI может отличаться от RSI, основанного лишь на изменениях цены закрытия. [1] Один день с большим объёмом может перевесить несколько меньших наблюдений. Но MFI остаётся преобразованием OHLCV: он не определяет агрессивных покупателей, поступления в фонды или институциональные счета.
Термин «денежный поток» может скрывать выбор единиц. Типичная цена, умноженная на количество базового актива, похожа на номинальную стоимость сделок. Умножение типичной цены на оборот, уже выраженный в валюте котировки, добавляет ещё один ценовой вес. Оба варианта вычислимы, но невзаимозаменяемы. Сохраняйте исходное поле и единицы вместе с настройками индикатора.
Стабильное соотношение и явные граничные случаи
Обычная формула — 100−100/(1+P/N), эквивалентная 100P/(P+N), когда сумма положительна. Последняя позволяет избежать прямого деления на N, когда N равно нулю. Если P положительно, а N равно нулю, MFI равно 100; если P равно нулю, а N положительно, то равно нулю. Если оба значения равны нулю, в этой статье будут возвращены недоступные данные.
Для четырнадцати классифицированных баров нужна ещё типичная цена предыдущего бара, чтобы определить направление первого вклада. Поэтому полный начальный набор для расчёта содержит 15 наблюдений OHLC. До суммирования проверьте пропуски и некорректные поля: отсутствующий бар не должен незаметно становиться наблюдением с неизменной ценой.
Платформы могут по-разному обрабатывать одинаковые типичные цены и начальные значения. До сравнения результатов стратегии сверяйте небольшой ручной пример бар за баром. Кажущееся безобидным различие правил может сдвинуть пересечение порога на один бар и существенно изменить внутридневной вход и расстояние до стопа.
Эта версия использует лишь завершённые наблюдения. Предварительное MFI в реальном времени может быть полезно, но требует отдельного определения события: объём, максимум и минимум текущего бара ещё меняются. Нельзя тестировать окончательное значение и приписывать стратегии более ранний вход внутри того же бара.
Для этой версии требуется положительная типичная цена, неотрицательный объем и пятнадцать допустимых наблюдений. Неположительные фьючерсные цены могут создавать отрицательный исходный поток, нарушая интерпретацию неотрицательного потока и диапазон 0–100. В этом случае вместо молчаливого взятия абсолютных значений или изменения веса возвращается unsupported_price_domain.
if not valid_full_window(t,15): return INSUFFICIENT_DATA
for i in t-14..t:
if not finite(H[i],L[i],C[i],V[i]): return INVALID_DATA
if not (L[i] <= C[i] <= H[i]) or V[i] < 0: return INVALID_DATA
TP[i] = (H[i]+L[i]+C[i])/3
if TP[i] <= 0: return UNSUPPORTED_PRICE_DOMAIN
for i in t-13..t:
positive[i] = TP[i]*V[i] if TP[i] > TP[i-1] else 0
negative[i] = TP[i]*V[i] if TP[i] < TP[i-1] else 0
P = sum(positive[t-13:t+1])
N = sum(negative[t-13:t+1])
MFI[t] = NA if P+N == 0 else 100*P/(P+N)
# 14 closed bars plus a previous TP are required.
# No decision uses an unfinished bar.
Пример расчёта и неудачная попытка определить дно
Используйте три бара, чтобы отобразить арифметические вычисления, не изменяя настройки стратегии для периода 14. Типичная цена непосредственно перед окном — 100. Следующие значения — 101, 100 и 102, с объемами 10, 20 и 10. Положительный поток P — 1010+1020=2030, а отрицательный поток N — 2000. MFI — это 100×2030/4030, приблизительно 50.37.
Больший объём бара со снижением типичной цены компенсирует два наблюдения роста. Подсчёт лишь двух повышений и одного снижения упускает этот вес. Результат не сообщает, кто инициировал сделки — покупатели или продавцы: знак определяется изменением типичной цены.
Пример неудачного разворота: MFI снижается с 25 до 18, цена — со 100 до 97. Покупатель, вошедший лишь из-за MFI ниже 20, может понести убыток при дальнейшем падении цены к 92, пока осциллятор остаётся около 10. Экстремум не доказывает истощение. Аналогично, MFI выше 80 может сопровождать устойчивый восходящий тренд; немедленный шорт при каждом пересечении — отдельная гипотеза. [1]
В синтетической иллюстрации снижение намеренно продолжается после первого значения ниже 20. Поэтому создание кандидата и подтверждение входа — разные состояния. Значение осциллятора не является вероятностью: MFI на 80 не означает вероятность 80% какого-либо будущего движения.
Отдельные версии для разворота тренда и следования за трендом.
Предлагаемый разворотный вариант сначала требует MFI ниже 20. Затем он ждёт пересечения обратно выше 20 и закрытия выше максимума предыдущего бара в боковом режиме, определённом по информации до события. Вход — на следующем доступном для исполнения событии, стоп — под областью события. Если подтверждения нет в течение пяти баров, отмените кандидата.
Пороговое значение и время ожидания — это параметры исследования. Определите, перезапускает ли новое, более низкое значение таймер или просто обновляет того же кандидата. Более простой базовый вариант использует одно фиксированное окно событий и не перезапускает его повторно до тех пор, пока не появится выигрышное восстановление. Записывайте просроченные и недействительные кандидаты наряду с подтвержденными.
Трендовый вариант сохраняет ценовую структуру повышающихся минимумов, а откат и восстановление MFI рассматривает как дополнительный признак. Значение ниже 20 не обязательно. Выберите версию до теста, не называйте одно событие трендовой сделкой при успехе и возвратом к среднему, когда так удобнее его описать.
Правила выхода должны быть явными и постоянными. Восстановление индикатора не разрешает отдалять структурный стоп. Фиксированная цель прибыли, скользящий выход и выход по времени — разные эксперименты; отделяйте эффект выбора выхода от эффекта фильтра MFI.
Сопоставляйте MFI с экстремумами, подтверждёнными без знания будущего
Пусть p1 и p2 — подтверждённые ценовые минимумы. Бычья дивергенция требует более низкого второго минимума цены, но более высокого MFI точно на временных отметках этих экстремумов. Событие доступно при подтверждении p2, после чего нужен более поздний ценовой триггер. Поиск минимального MFI рядом с каждым экстремумом — другой вариант, требующий фиксированных радиуса, задержки и правила выбора при равенстве.
Например, low1=100 с MFI1=18 и low2=98 с MFI2=28 удовлетворяют предложенному сравнению дивергенций. Если p2 требует два бара справа, дождитесь обоих. Пробой линии шеи, произошедший до подтверждения, не может быть назначен в качестве ретроспективной точки входа. Если цена пробьет уровень структурной недействительности до подтверждения входа, отмените кандидата.
Время события регистрируется отдельно от времени доступности. На графике эти временные метки могут выглядеть почти одинаково, но при быстром развороте задержка может свести на нет большую часть благоприятного движения. Полезный индикатор должен выявлять эти издержки, а не скрывать их за маркером, нарисованным на предыдущем поворотном пункте.
Выделите вклад объёма
На одних и тех же ценовых кандидатах сравните RSI, MFI и расчёт MFI с постоянным объёмом. Так отделяются возможные эффекты взвешивания объёмом, типичной цены и длины окна. Оптимизация RSI и MFI на разных несвязанных выборках не выделяет эффект добавления объёма.
Разделяйте проверку хронологически; отдельно показывайте трендовые и боковые режимы по меткам, доступным в момент решения. Учитывайте спред, проскальзывание и стоимость заимствования для коротких позиций. Отслеживайте недоступные значения, экстремумы без разворота, отмены, частоту сделок, просадку и чистое математическое ожидание, а не лишь успешные дивергенции.
Перед интерпретацией результата необходимо проверить источник объема. Исторические исследования качества биржевых операций в [3] мотивируют к проверке подозрительной или несогласованной активности; они не предоставляют универсального показателя текущей погрешности. Стратегию, преимущество которой исчезает при более чистом потоке данных, следует описывать как чувствительную к данным, а не как универсальную для всех рынков.
Частые ошибки
Покупка при каждом значении ниже 20
Осциллятор может оставаться на низком уровне, в то время как цена продолжает падать.
Путаница отрицательного потока с отрицательной арифметикой.
Вычитание отрицательного числа со знаком изменяет желаемое соотношение.
Вход на неподтвержденном поворотном пункте
Последующих баров, нужных для подтверждения, ещё не было в момент самого экстремума.
Список проверки перед использованием метода
Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.
Частые вопросы
MFI — это просто RSI с учётом объёма?
По сути, они похожи, но эта формула группирует типичную цену, умноженную на объем, а не изменения цены закрытия. Проверьте различия явно.
Идентифицирует ли MFI денежные средства, поступающие на рынок?
Нет. Он классифицирует данные о соотношении цены и объема и не измеряет напрямую потоки средств на счетах или действия торговых агрессоров.
Источники исследования
Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.
- Money Flow IndexFidelity. Определение MFI, общепринятая интерпретация и пределы крайних показаний. Проверено: .
- Pine functions for popular indicatorsTradingView. Документация по индикатору Pine, не содержащая подтвержденной торговой истории. Проверено: .
- Crypto Wash TradingNBER. Историческое исследование качества криптовалютного объёма; оно не даёт универсальной поправки для текущих данных. Проверено: .
Связанные методы
Примечание о рисках
Материал предназначен для обучения и планирования исследований, а не является финансовой рекомендацией. Backtest моделирует прошлые данные, не гарантирует будущую доходность и не совершает реальные сделки. Методы библиотеки не обязательно реализованы в приложении. См. методологию и учебный центр.
Проверьте правила, прежде чем рисковать реальным капиталом
Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.
Скачать Backtest в App Store