글 목차
근거와 범위
피델리티는 MFI와 극단적인 수치의 한계에 대해 설명합니다. 트레이딩뷰는 해당 지표의 구현 방식을 문서화했습니다. 하지만 제안된 진입 규칙에 대한 검증된 실적은 없으며, 데이터 품질 연구는 모든 현재 데이터 피드가 아닌 과거 거래소 샘플을 대상으로 진행되었습니다. [1] [2] [3]
실전 적용 절차
- 입력값을 검증합니다대표가격과 거래량은 같은 상품과 데이터 마감 시점을 사용한다.
- 원시 흐름 분류대표가격 변화로 분류하고 같은 가격의 처리를 명시한다.
- 비율을 계산하세요전체 데이터 구간을 확보하고 흐름 합계가 영인 경우를 처리한다.
- 확인을 기다리세요극단적인 수치나 편차가 발생하면 자동 거래가 아닌, 거래 후보지가 생성됩니다.
- 거래량 기여 검증같은 후보에 거래량 가중치를 적용한 경우와 적용하지 않은 경우를 비교한다.
RSI와 계산이 다르지만 실제 자금 유입을 관측하지는 않는다
평균 가격은 TP=(H+L+C)/3입니다. 원시 흐름은 평균 가격에 거래량을 곱한 값입니다. 평균 가격이 상승하면 해당 흐름을 양수로, 하락하면 음수로 분류합니다. 음수 흐름은 비율 계산 시 음수가 아닌 값으로 저장되며, 분모에서 음수를 빼는 방식이 아닙니다. 본 규칙에 따르면 평균 가격이 변동 없는 경우에는 어느 그룹에도 포함되지 않습니다.
거래량이 가중치에 포함되므로 MFI는 종가 변화만 사용하는 RSI와 다를 수 있다 [1]. 거래량이 큰 하루가 여러 작은 관측을 압도할 수 있다. 그래도 MFI는 OHLCV의 변환이며 공격적 매수 주문을 낸 쪽, 신규 펀드 납입이나 기관 계좌를 식별할 수 없다.
자금 흐름이라는 말은 단위 선택을 흐릴 수 있다. 대표가격에 기초자산 거래수량을 곱하면 거래대금과 비슷한 값이다. 이미 표시통화 금액인 거래대금에 대표가격을 곱하면 가격 가중치를 한 번 더 적용한다. 둘 다 계산 가능하지만 서로 바꿔 쓸 수 없다. 원본 필드와 단위를 지표 설정에 저장한다.
안정적인 비율과 명시적인 경계 조건
일반적인 공식은 100−100/(1+P/N)이며, 합계가 양수일 경우 100P/(P+N)과 같습니다. 후자는 N이 0일 때 N으로 직접 나누는 것을 피합니다. P가 양수이고 N이 0이면 MFI는 100와 같고, P가 0이고 N이 양수이면 0입니다. 둘 다 0이면 이 문서에서는 사용할 수 없는 데이터를 반환합니다.
열네 개 분류 봉의 첫 기여 방향을 알려면 그 직전 대표가격이 추가로 필요하다. 따라서 이 계산은 총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미만이라는 이유만으로 매수하면 지표가10부근에 머물 때 가격이92로 더 떨어지는 손실을 겪을 수 있다. 극단값은 압력 소진의 증거가 아니다. MFI가80을 넘은 채 상승 추세가 지속될 수도 있으며, 매 교차마다 즉시 공매도하는 것은 별개의 가설이다 [1].
합성 그림은 최초20미만 관측 후에도 의도적으로 더 낮아진다. 후보 생성과 진입 확인은 별개 상태여야 한다. 지표 값은 확률이 아니므로 MFI80은 특정 미래 움직임의 확률80%를 뜻하지 않는다.
반전형과 추세 추종형 버전 분리
제안 반전 버전은 우선 MFI가20미만이어야 한다. 사건 이전 정보로 판정한 횡보 국면에서 MFI가20을 다시 상향 돌파하고 가격 종가가 이전 봉 고가보다 높아지기를 기다린다. 다음 실행 가능 시점에 진입하고 사건 영역 아래에 손절가를 둔다. 다섯 봉 안에 확인되지 않으면 후보를 취소한다.
임계값과 시간 초과는 연구 설정입니다. 새로운 낮은 값이 나타날 때 타이머를 다시 시작할지, 아니면 동일한 후보만 업데이트할지 정의합니다. 더 간단한 기준선은 고정된 이벤트 창을 하나 사용하며, 성공적인 복구가 나타날 때까지 반복적으로 다시 시작하지 않습니다. 만료되거나 무효화된 후보도 확인된 후보와 함께 기록합니다.
추세 추종 버전은 스윙 저점이 차례로 높아지는 가격 구조를 유지하고 MFI 되돌림과 회복을 보조 특징으로 사용한다. MFI20미만을 요구할 필요는 없다. 같은 사건이 이기면 추세 거래, 다른 설명이 편리하면 평균회귀 거래로 사후 분류하지 말고 검증 전에 버전을 고른다.
청산 규칙을 명확하고 안정적으로 유지하십시오. 지표 복구는 구조적 손절매 폭 확대를 허용하지 않습니다. 고정 보상 목표, 트레일링 청산, 시간 정지는 서로 다른 실험이므로, 청산 선택으로 인한 개선과 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. 검증된 거래 기록이 없는 파인 지표 관련 문서입니다. 확인일: .
- Crypto Wash TradingNBER. 암호화폐 거래량 품질에 대한 역사적 연구이며, 현재의 보편적인 조정 사항이 아닙니다. 확인일: .
관련 기법
위험 안내
이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.
실제 자금을 투입하기 전에 규칙을 검증하세요
앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.
App Store에서 Backtest 다운로드