ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 Python 计算威廉指标 WR(%R)?(超买超卖判断,不用 TA-Lib)

如何用 Python 计算威廉指标 WR(%R)?(超买超卖判断,不用 TA-Lib) 一句话回答威廉指标 WRWilliams %R衡量收盘价在近 N 日最高–最低区间中的相对位置公式是%R (Hn − 收盘) / (Hn − Ln) × (−100)取值−100~0。用 AlphaFeed 取复权日线几行就能算出 WR并用−20/−80判断超买/超卖——不依赖 TA-Lib。为什么会有这个问题 / 传统做法的痛点WR 是经典的超买超卖摆动指标和 KDJ 的 RSV 很像但自己算常困惑正负号经典 WR 是负值区间−100~0很多人算成正值搞混超买超卖方向超买在上还是在下WR 越接近 0 越超买、越接近 −100 越超卖与直觉相反复权不用前复权除权跳空会让最高/最低失真。数据用 AlphaFeed 复权日线公式照经典口径写即可。分步骤解决每步配可运行代码第 1 步取复权日线fromalphafeedimportAlphaFeed afAlphaFeed(api_keyyour-api-key)# 或 export ALPHAFEED_API_KEY 后 AlphaFeed()dfaf.klines.get(600519.SH,period1d,count120,adjustforward,to_dataframeTrue)dfdf.sort_values(trade_date).reset_index(dropTrue)第 2 步计算 Williams %Rdefwilliams_r(df,n14):high_ndf[high].rolling(n).max()low_ndf[low].rolling(n).min()# 经典 %R区间 -100~0越接近 0 越超买越接近 -100 越超卖return(high_n-df[close])/(high_n-low_n)*-100df[wr]williams_r(df,14)print(df[[trade_date,close,wr]].tail(3).to_string(indexFalse))WR 参数与含义项取值 / 公式含义n回看周期14也用 6/10Hn / LnN 日最高 / 最低区间上下沿%R 区间−100 ~ 0负值指标超买线 −20收盘接近区间顶部超卖线 −80收盘接近区间底部第 3 步判断超买超卖defwr_state(symbol,count120,n14):dfaf.klines.get(symbol,period1d,countcount,adjustforward,to_dataframeTrue).sort_values(trade_date).reset_index(dropTrue)vfloat(williams_r(df,n).iloc[-1])zone超买(-20)ifv-20else(超卖(-80)ifv-80else中性)return{wr:round(v,1),zone:zone}print(wr_state(600519.SH))# 例如 {wr: -87.2, zone: 超卖(-80)}print(wr_state(000001.SZ))# 例如 {wr: -43.3, zone: 中性}上例实测茅台 WR≈−87.2 处于超卖区平安银行 WR≈−43.3 属中性。关键坑与注意事项WR 是负值、方向反直觉越接近 0如 −10越超买、越接近 −100如 −90越超卖。别把大小关系搞反。和 KDJ 的 RSV 本质相同%R RSV − 100符号相反WR 相当于未平滑、取负的随机指标因此更灵敏、噪声也更大。震荡钝化强趋势里 WR 会长期贴在 −20 上方超买不跌或 −80 下方超卖不涨别单独用它抄底摸顶。需要平滑可自行加经典 WR 不平滑若嫌太跳可对结果再做小周期移动平均。复权一律adjustforward避免除权跳空污染最高/最低。常见问题FAQQ为什么我算出来是正值 0~100A你少了负号。经典 Williams %R 用(Hn−C)/(Hn−Ln)×(−100)区间是 −100~0有些平台画成 0~100把符号翻过来只要自己口径一致即可但要对照时注意方向。QWR 和 KDJ 用哪个AWR 是 KDJ 里 RSV 的变体更灵敏、更早给信号但噪声更多KDJ 经过两次平滑更稳。想要早信号用 WR想要稳一点用 KDJ或两者互相印证。QWR 超卖能直接买吗A不能。它在下跌趋势会长期超卖。需结合趋势过滤均线、ADX与止损别单指标抄底。Q需要付费吗A单只标的的日线在免费额度内即可试算批量/全市场需 Starter 及以上详见 AlphaFeed 定价页。小结威廉指标 WR 的本质是收盘价在近 N 日高低区间中的相对位置取负与 KDJ 的 RSV 同源但更灵敏。写对的关键是负值区间和方向数据要前复权。AlphaFeed 提供口径一致的复权日线让你几行算出 WR——但记住它灵敏、会钝化需配合趋势与止损别单独当买卖信号。参考AlphaFeed Python SDK 文档https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
返回列表