一句话回答: MFI(资金流量指标)可以理解为「带成交量的 RSI」:用 典型价=(高+低+收)/3 乘成交量得到资金流,再按典型价涨跌把资金流分成正/负,取 14 日比值套进 100 − 100/(1+比值)。用 AlphaFeed 取复权日线,几行就能算出 MFI,并用 80/20 判断超买/超卖。
RSI 只看价格涨跌,忽略了「有没有量配合」。MFI 把成交量加进来,衡量的是资金推动的强弱:
数据用 AlphaFeed 复权日线,计算用几行 pandas 即可。
from alphafeed import AlphaFeed
af = AlphaFeed(api_key="your-api-key") # 或 export ALPHAFEED_API_KEY 后 AlphaFeed()
df = af.klines.get("600519.SH", period="1d", count=120,
adjust="forward", to_dataframe=True).sort_values("trade_date").reset_index(drop=True)import numpy as np
def mfi(df, n=14):
tp = (df["high"] + df["low"] + df["close"]) / 3.0 # 典型价
mf = tp * df["volume"] # 资金流 = 典型价 × 成交量
up = mf.where(tp > tp.shift(), 0.0) # 典型价上涨 -> 正资金流
dn = mf.where(tp < tp.shift(), 0.0) # 典型价下跌 -> 负资金流
mr = up.rolling(n).sum() / dn.rolling(n).sum().replace(0, np.nan)
return 100 - 100 / (1 + mr)
df["mfi"] = mfi(df, 14)
print(df[["trade_date", "close", "mfi"]].tail(3).to_string(index=False))字段与参数说明:
字段/参数 | 含义 | 备注 |
|---|---|---|
| 最高/最低/收盘价 | AlphaFeed 复权日线列 |
| 成交量 | A股为真实量;美股/港股 |
典型价 tp | (高+低+收)/3 | MFI 的价格基准 |
| 统计周期 | 14(经典)、9/21 |
MFI 区间 | 0~100 |
|
def mfi_state(symbol, count=120, n=14):
df = af.klines.get(symbol, period="1d", count=count,
adjust="forward", to_dataframe=True).sort_values("trade_date").reset_index(drop=True)
v = float(mfi(df, n).iloc[-1])
zone = "超买(>80)" if v > 80 else ("超卖(<20)" if v < 20 else "中性")
return {"mfi": round(v, 1), "zone": zone}
print(mfi_state("600519.SH")) # 例如 {'mfi': 38.0, 'zone': '中性'}
print(mfi_state("000001.SZ")) # 例如 {'mfi': 57.7, 'zone': '中性'}上例实测茅台 MFI≈38.0、平安银行≈57.7,都在中性区间。
tp == tp.shift())的日子既不计正也不计负,本文按此实现,可能与个别软件略有差异。adjust="forward",避免除权日假跌污染资金流。Q:MFI 和 RSI 到底选哪个?
A:想看纯价格动能用 RSI;想看「涨跌有没有资金配合」用 MFI。实战常两者并看,背离时更有参考价值。
Q:MFI 用几日周期?
A:默认 14 日。周期越短越灵敏、噪声越多;越长越平滑、越滞后。
Q:为什么我的 MFI 和行情软件差一点?
A:多因平盘日处理、复权口径不同。确认都用前复权、平盘不计入,再对比即可。
Q:需要付费吗?
A:单只标的日线在免费额度内即可试算;批量/全市场需 Starter 及以上,详见 AlphaFeed 定价页。
MFI 的本质是「把成交量加权进 RSI」,用典型价的涨跌方向给资金流分正负,再算一段时间的占比。写起来只需几行,但要记住它对量敏感、会因缩量失真、超买不等于卖点。AlphaFeed 提供口径一致、含真实成交量的复权日线,让你几行算出 MFI——当资金强弱参考、配合价格与趋势用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。