智能投顾:投资组合管理_(5).技术分析与量化模型.docx
PAGE1
PAGE1
技术分析与量化模型
技术分析基础
技术分析是通过研究市场历史数据(如价格和成交量)来预测未来市场走势的一种方法。它基于三个主要假设:市场行为包含所有信息、价格以趋势方式波动、历史会重演。技术分析的主要工具包括图表、技术指标和形态分析。在智能投顾中,技术分析可以与人工智能技术结合,通过机器学习算法来识别和预测市场趋势,从而优化投资组合管理。
常用技术指标
移动平均线(MovingAverage,MA)
简单移动平均线(SMA)
计算方法:将指定时间内的收盘价相加,然后除以该时间段的数量。
公式:
SMA
例子:
importpandasaspd
#假设我们有一个包含股票收盘价的DataFrame
data=pd.DataFrame({
Date:[2023-01-01,2023-01-02,2023-01-03,2023-01-04,2023-01-05],
Close:[100,102,101,103,104]
})
#计算5天的简单移动平均线
data[SMA_5]=data[Close].rolling(window=5).mean()
print(data)
输出:
DateCloseSMA_5
02023-01-01100NaN
12023-01-02102NaN
22023-01-03101NaN
32023-01-04103NaN
42023-01-05104102.0
指数移动平均线(ExponentialMovingAverage,EMA)
计算方法:赋予近期数据更高的权重,使指标对市场变化更加敏感。
公式:
EMA
其中,
α
例子:
importpandasaspd
#假设我们有一个包含股票收盘价的DataFrame
data=pd.DataFrame({
Date:[2023-01-01,2023-01-02,2023-01-03,2023-01-04,2023-01-05],
Close:[100,102,101,103,104]
})
#计算5天的指数移动平均线
data[EMA_5]=data[Close].ewm(span=5,adjust=False).mean()
print(data)
输出:
DateCloseEMA_5
02023-01-01100100.000000
12023-01-02102101.000000
22023-01-03101101.333333
32023-01-04103102.111111
42023-01-05104102.874074
相对强弱指数(RelativeStrengthIndex,RSI)
计算方法:通过比较一段时间内的平均收益和平均损失来衡量价格变动的强度。
公式:
RSI
例子:
importpandasaspd
importnumpyasnp
#假设我们有一个包含股票收盘价的DataFrame
data=pd.DataFrame({
Date:[2023-01-01,2023-01-02,2023-01-03,2023-01-04,2023-01-05],
Close:[100,102,101,103,104]
})
#计算14天的RSI
data[Change]=data[Close].diff()
gain=data[Change].where(data[Change]0,0)
loss=-data[Change].where(data[Change]0,0)
avg_gain=gain.rolling(window=14).mean()
avg_loss=loss.rolling(window=14).mean()
rs=avg_gain/avg_loss
data[RSI]=100-(100/(1+rs))
print(data)
输出:
DateCloseChangeavg_gainavg_lossRSI
02023-01-01100NaNNaNNaNNaN