什么是乖离率?
乖离率是反映股价(收盘价)与其MA(移动平均线)之间差异的指标,通过计算股价与MA之间的差值占股价的比例来判断股价的偏离程度。在股票投资中,乖离率常用于判断股价的超卖和超买状态,是投资者的重要参考工具。
乖离率选股公式的实现方法
乖离率的计算公式为:(收盘价-收盘价的n日简单移动平均)/收盘价的n日简单移动平均。选股公式中,我们可以按照以下步骤实现:
步骤一:获取数据
首先需要获取股票的收盘价数据,可以从一些数据服务平台(如聚宽、天勤等)获取,也可以通过Python的pandas库实现。例如,我们通过聚宽API获取当下时间上证综指的收盘价数据:(备注:以下代码需要在聚宽环境中运行)
```
import jqdatasdk
from datetime import datetime
jqdatasdk.auth(\"账号\", \"密码\")
today = datetime.today().strftime('%Y-%m-%d')
q = jqdatasdk.query(jqdatasdk.price).filter(jqdatasdk.price.code == '000001.XSHG', jqdatasdk.price.date == today)
df = jqdatasdk.get_price(\"000001.XSHG\", start_date=today, end_date=today, frequency='daily', fields=['close'])
print(\"今日上证指数收盘价为:\", df['close'][0])
```
步骤二:计算移动平均线
乖离率的计算需要先计算移动平均线,这里我们使用pandas库的rolling函数实现。以下代码将计算20天的移动平均线:
``` def get_ma(df: pd.DataFrame, n: int): return df.rolling(window=n).mean() df_ma20 = get_ma(df, 20) print(\"今日20日移动平均线为:\", df_ma20['close'][0]) ```步骤三:计算乖离率
接下来,我们可以使用上面的公式计算乖离率了。以下代码将计算20日乖离率:
``` def get_boll(df: pd.DataFrame, n: int): ma = df.rolling(window=n).mean() std = df.rolling(window=n).std() boll_up = ma + std * 2 boll_down = ma - std * 2 return boll_up, boll_down df_boll_up, df_boll_down = get_boll(df, 20) df_boll_rate = (df['close'] - df_ma20['close']) / df_ma20['close'] print(\"今日20日乖离率为:\", df_boll_rate[0]) ```总结
以上就是乖离率选股公式的实现方法。当股票的乖离率达到一定的范围时,可以考虑进行买入或卖出操作。然而,单独的乖离率指标并不能说明股票是否具有投资价值,还需要结合公司财务状况、行业分析等因素进行分析和判断。