>百科大全> 列表
wr指标下穿50线选股公式源码
时间:2025-04-09 09:43:58
答案

WR指标是一种技术指标,用于评估市场的超买超卖状态。其计算公式为:$WR_n=\\frac{\\sum_{i=n}^{0}(\\max(H_i-C_{i-1},0))}{\\sum_{i=n}^{0}(\\max(C_{i-1}-L_i,0))}\\times100$,其中 $n$ 表示 WR 的周期,一般为 14 天。

下穿 50 线可以理解为 WR 值从上升趋势转为下降趋势,即 $WR_{t-1} > 50$ 且 $WR_t \\leq 50$。可以使用以下 Python 代码实现选股:

pythonCopy code

import akshare as ak

import pandas as pd

# 获取股票代码和名称

stock_zh_a_spot = ak.stock_zh_a_spot()

code_name_map = stock_zh_a_spot[['代码', '名称']].set_index('代码').to_dict()['名称']

# 获取股票历史行情数据

stock_zh_a_daily_hfq = ak.stock_zh_a_daily_hfq('sh600000')

df = stock_zh_a_daily_hfq[['日期', '开盘', '最高', '最低', '收盘']]

# 计算 WR 指标

n = 14

df['highest_close'] = df['最高'].shift(1).rolling(window=n).max()

df['lowest_close'] = df['最低'].shift(1).rolling(window=n).min()

df['highest_high'] = df['最高']

df['lowest_low'] = df['最低']

df['wr'] = 100 * ((df['highest_high'] - df['lowest_close']) / (df['highest_high'] - df['lowest_low']))

df['wr_signal'] = df['wr'].rolling(window=2).apply(lambda x: (x[0] > 50) and (x[1] <= 50))

# 筛选出 WR 下穿 50 线的股票

df_filtered = df[df['wr_signal'] == True]

df_filtered['名称'] = df_filtered.index.map(code_name_map.get)

print(df_filtered[['日期', '名称', 'wr']])

以上代码中以上海浦东发展银行(代码:sh600000)为例,计算出其 WR 值并筛选出 WR 下穿 50 线的日期。可以根据需要修改股票代码和 WR 计算周期 $n$,以及修改输出的股票数据字段。

推荐
Copyright © 2025 好久知识网 |  琼ICP备2022020623号 |  网站地图