AI选股重要指标及公式图示详解
由bqw9z8tc创建,最终由bqw9z8tc 被浏览 183 用户
基本概念
AI选股通过人工智能技术对股票市场的数据进行分析和预测,从而筛选出具有较高投资价值的股票。这些指标可以包括多种因素,如技术指标、基本面指标、市场情绪指标等。AI选股通常涉及复杂的机器学习模型,这里将介绍一些基础但重要的金融指标,这些指标常被用于构建更复杂的AI选股模型。
1. 移动平均线(Moving Averages)
移动平均线是分析股价趋势的基本工具,包括简单移动平均(SMA)和指数移动平均(EMA)。
简单移动平均SMA公式
SMA(N)=( ∑(N, i=1), Close i) / N
Close i是第i天的收盘价,N是时间窗口的长度。
指数移动平均EMA公式
EMA(N)=(Close t × 2 / (N+1) ) + EMA yesterday ×(1− 2 / (N+1) )
其中, Close t 是今天的收盘价, N 是时间窗口的长度, EMA yesterday EMA yesterday 是昨天的EMA值。
2. 相对强弱指数(Relative Strength Index, RSI)
RSI是一种动量振荡器,用于评估股价的过度买入或过度卖出条件。
RSI公式: RSI=100−100/(1+RS)
其中, RSI(相对强度)是平均上涨天数与平均下跌天数的比值。
3. 布林带(Bollinger Bands)
布林带由一个中间的SMA和两个标准差范围构成,用于评估价格波动性。
布林带公式:
中线:20日SMA
上线:20日SMA + (20日价格标准差 × 2)
下线:20日SMA - (20日价格标准差 × 2)
下面使用Python来生成这些指标的图表示例。从一个假设的股票价格数据集开始,然后计算并展示上述指标。\n
股价与移动平均线(图1):这里包括了股价本身(蓝线),20日简单移动平均线(SMA,橙线),以及20日指数移动平均线(EMA,绿线)。移动平均线有助于展示股价的趋势。
相对强弱指数(RSI)(图2):14日RSI(蓝线)被用来衡量股票的过度买入或过度卖出状态。RSI值通常在30到70之间波动,超过这个范围可能表示股价处于极端状态。
布林带(图3):股价(蓝线)以及其上下的两条布林带(橙色和绿色线)。布林带之间的灰色区域表示股价的正常波动范围。当股价触及或超过这些带时,可能表示市场的波动性增加。
4. MACD(Moving Average Convergence Divergence)
MACD是一个用于发现资产价格动量变化的趋势跟踪动量指标。
MACD公式:
MACD=EMAshort(12) − EMAlong(26)
信号线Signal line=EMA(MACD,9)
其中,EMA_{short}(12)和EMA_{long}(26)分别是12日和26日的指数移动平均,信号线Signal line是MACD的9日EMA。
5. 均线交叉
均线交叉是一种基于移动平均线的交易策略,当短期均线穿越长期均线时发出买入或卖出信号。
金叉:当短期均线(如5日均线)上穿长期均线(如20日均线)时,被视为买入信号。
死叉:当短期均线下穿长期均线时,被视为卖出信号。
6. 成交量加权平均价格(VWAP, Volume Weighted Average Price)
VWAP是一个交易基准,表示股票的“平均”价格,该价格根据成交量和价格计算。
VWAP公式:VWAP= ∑(Price×Volume) / ∑Volume
7. 波动率(Volatility)
波动率是衡量价格波动幅度的指标,通常通过计算价格的标准差或方差来得到。
历史波动率公式:
用Python来生成这些指标的图表示例,使用之前创建的股票价格数据集。
MACD及其信号线(图1):这里展示了MACD(蓝线)和其信号线(橙线)。MACD是通过计算两个不同周期的EMA之间的差异得到的,而信号线是MACD的EMA。MACD和信号线的交叉点常被用作买入或卖出的信号。
成交量加权平均价格(VWAP)(图2):VWAP(橙线)表示基于成交量加权的平均股价。它提供了一个基准价格,帮助投资者判断实际交易价格是否公平。
波动率(图3):这里显示了20日的价格波动率(蓝线),即价格的标准差。波动率是衡量价格波动幅度的关键指标,对于风险管理和交易策略制定非常重要。
这些指标各自提供了股价行为的不同视角,是构建AI选股模型时常用的数据源。AI选股模型通常会综合这些指标以及其他多种数据源(如财务报表、宏观经济数据等)来生成投资决策。
一些更高级的指标和分析方法,这些方法在构建复杂的AI选股模型时非常有用。以下是一些进阶的概念和技术:
8. 因子分析(Factor Analysis)
- 因子分析在量化投资中非常重要,它涉及识别影响股票收益的多个因素(如市值、市盈率、盈利增长率等),并基于这些因素构建多因子选股模型。
- 应用:在量化投资中,通过识别影响股票收益的因素(如市值、市盈率、盈利增长率等),构建多因子模型。
- 方法:使用统计方法来识别哪些因素与股票收益相关,并根据这些因素对股票进行打分和排序。
9. 事件驱动策略
- 事件驱动策略涉及分析特定事件(如收购、财报发布、政策变化)对股价的影响。AI技术可以用来从大量的新闻和财务报告中提取信息,评估这些事件对市场的潜在影响。
- 应用:分析特定事件(如并购、财报发布、政策变化)对股价的影响。
- 方法:利用自然语言处理(NLP)技术从新闻、财报、公告中提取关键信息,评估其对股价的潜在影响。
10. 情绪分析
- 情绪分析指的是分析市场新闻、社交媒体等来源中的文字信息,以识别和量化市场情绪。这种分析有助于理解市场对某些事件的反应可能如何影响股价。
- 应用:分析市场新闻、社交媒体等来源的文字信息,量化市场情绪。
- 方法:使用NLP技术识别文本中的情绪倾向(如积极、消极、中性),并将这些情绪与市场数据相关联。
11. 机器学习模型
- 机器学习模型,如随机森林、支持向量机、神经网络等,可以被用来预测股价走势或识别投资机会。这些模型通过分析历史数据学习识别股价走势的模式。
- 应用:利用历史数据来预测股价走势或识别投资机会。
- 方法:使用各种机器学习模型(如随机森林、支持向量机、神经网络)来分析数据和识别模式。
12. 高频交易策略
- 高频交易策略利用复杂的算法在极短的时间内进行大量交易,这些策略依赖于极快的数据处理和执行速度,常常是AI技术的应用领域。
- 应用:在极短的时间内执行大量交易,利用市场微观波动获利。
- 方法:使用高速计算和算法执行在毫秒级甚至更短时间内的买卖决策。
这些高级技术和指标的应用通常需要深厚的金融知识、数据科学技能以及对市场的深刻理解。它们在AI选股领域中扮演着至关重要的角色,但同时也要求高度的专业性和技术能力。
附Python代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建一个示例股票价格数据集
np.random.seed(0)
dates = pd.date_range('2023-01-01', periods=100)
prices = pd.Series(np.random.normal(0, 1, size=len(dates)).cumsum() + 100, dates)
# 计算SMA和EMA
sma = prices.rolling(window=20).mean()
ema = prices.ewm(span=20, adjust=False).mean()
# 计算RSI
delta = prices.diff(1)
gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
rs = gain / loss
rsi = 100 - (100 / (1 + rs))
# 计算布林带
std = prices.rolling(window=20).std()
upper_band = sma + (std * 2)
lower_band = sma - (std * 2)
# 绘制图表
plt.figure(figsize=(14, 10))
# 绘制价格及移动平均线
plt.subplot(3, 1, 1)
plt.plot(prices, label='Price')
plt.plot(sma, label='20-day SMA')
plt.plot(ema, label='20-day EMA')
plt.title('Stock Price with SMA and EMA')
plt.legend()
# 绘制RSI
plt.subplot(3, 1, 2)
plt.plot(rsi, label='14-day RSI')
plt.title('Relative Strength Index (RSI)')
plt.legend()
# 绘制布林带
plt.subplot(3, 1, 3)
plt.plot(prices, label='Price')
plt.plot(upper_band, label='Upper Bollinger Band')
plt.plot(lower_band, label='Lower Bollinger Band')
plt.fill_between(dates, lower_band, upper_band, color='grey', alpha=0.3)
plt.title('Bollinger Bands')
plt.legend()
plt.tight_layout()
plt.show()
# 计算MACD及其信号线
macd = ema.ewm(span=12, adjust=False).mean() - ema.ewm(span=26, adjust=False).mean()
signal_line = macd.ewm(span=9, adjust=False).mean()
# 计算VWAP(使用随机生成的成交量)
volumes = pd.Series(np.random.randint(100, 1000, size=len(dates)), dates)
vwap = (prices * volumes).cumsum() / volumes.cumsum()
# 计算波动率
volatility = prices.rolling(window=20).std()
# 绘制图表
plt.figure(figsize=(14, 12))
# 绘制MACD及其信号线
plt.subplot(3, 1, 1)
plt.plot(macd, label='MACD')
plt.plot(signal_line, label='Signal Line')
plt.title('Moving Average Convergence Divergence (MACD)')
plt.legend()
# 绘制VWAP
plt.subplot(3, 1, 2)
plt.plot(prices, label='Price')
plt.plot(vwap, label='VWAP')
plt.title('Volume Weighted Average Price (VWAP)')
plt.legend()
# 绘制波动率
plt.subplot(3, 1, 3)
plt.plot(volatility, label='Volatility (20-day SD)')
plt.title('Volatility')
plt.legend()
plt.tight_layout()
plt.show()
量化资源汇总
开发平台
技术文档
开发资源
量化策略
基础因子
基本常识
https://bigquant.com/wiki/doc/6yep5yyw5lqk5pit5yiw5bqv5piv5oco5lmi6lwa6zkx55qe-b5WJj0v0Jf
https://bigquant.com/wiki/doc/5pwj5oi35aac5l2v5yga6yep5yyw5lqk5pit-Ni7gIFHlnG
https://bigquant.com/wiki/doc/2023-u7IPZL8JHB
https://bigquant.com/wiki/doc/ai-5jImRZR1dA
\