Python介绍财务和技术指标 - 学习如何在 Python 中处理股票价格,了解蜡烛价格格式 (OHLC),使用烛台图表绘制它们,以及学习使用 Python 中的 stockstats 库使用许多技术指标。
很多人已经说过,数据是21世纪的新石油,从数据科学、数据挖掘、数据工程和大数据等诸多领域中涌现并创造了许多领域。
无论是在物理学、医学、生物学还是社交媒体领域,所有这些都在不断地生成数据,这些数据被存储、预处理和分析,目的是为准确的决策提取有价值的结论。
Python如何分析股票价格?金融市场以其供求规律和其他经济因素的动态势头而闻名,也是产生大量数据的地方。分析股票价格,无论你是交易差价合约(差价合约)、期货还是商品,无论你使用的是何种经纪商,都强烈建议你在进行交易时最大化你的收益,甚至是最基本的。
本教程将让你掌握使用 Python 处理股票价格的一般概念,了解蜡烛价格格式 ( OHLC ),并使用烛台图表绘制它们。你还将学习使用stockstats库来使用许多技术指标。
对于本教程,你需要安装:
pip install pandas-datareader yfinance mpl-finance stockstats
从 Yahoo Finance API 导入数据
Python股票价格分析:要导入股票价格数据,我们需要指定市场指数或股票的代码,在本例中,我们将从S&P 500
和导入数据AAPL
。
注意:S&P500是一个市场指数,它是一个指标,用于跟踪包含在该指数中的一组公司的表现。例如,包括美国500强股票的标准普尔,与顶级IT公司相关的纳斯达克,德国30强股票的GER30等。
以下代码负责导入以下股票价格AAPL
:
# import AAPL stock price
df_aapl = pdr.get_data_yahoo("AAPL", start="2019-01-01", end="2019-09-30")
导入 SPY(SPDR S&P 500 Trust ETF):
# import SPY stock price
df_spy = pdr.get_data_yahoo("SPY", start="2019-01-01", end="2019-09-30")
这是它的外观:
df_spy.head()
输出:
在金融市场上的蜡烛代表“格式OHLC下呈现Ø笔^ h igh-大号ow- Ç输”:
- 开盘价:是时间分辨率开始时的股票价格(1m、30m、每小时、每天等)
- 高:是从蜡烛的开始到结束达到的最高价格。
- 低:是从蜡烛的开始到结束达到的最低价格。
- 收盘价:是时间决议结束时股票的价格。
在金融股票市场交易时,我们区分两种类型的交易操作:做多(买入) 和 做空(卖出)。
绘制股票价格
Python介绍财务和技术指标:在本节中,我们将使用matplotlib和mpl_finance库来绘制AAPL
. 首先,我们将分别绘制开盘-高-低-收盘价:
df_aapl[["Open", "High", "Low", "Close"]].plot()
plt.show()
输出:
左图是执行上述代码的结果,右图是右图的放大区域。
Python如何分析股票价格?我们可以在放大的区域中清楚地看到,高价(橙色图)是上限,而低价(绿色图)是下限,这说明了本教程上一节中提到的 OHLC 格式的定义。
但正如你可能已经注意到的那样,由于被充电,该图在某种程度上难以阅读,我们将改为以烛台的形式表示 OHLC:
fig = plt.figure(figsize=(10, 10))
ax = plt.subplot()
plot_data = []
for i in range(150, len(df_aapl)):
row = [
i,
df_aapl.Open.iloc[i],
df_aapl.High.iloc[i],
df_aapl.Low.iloc[i],
df_aapl.Close.iloc[i],
]
plot_data.append(row)
candlestick_ohlc(ax, plot_data)
plt.show()
输出:
以下是烛台的结构:
金融技术指标
Python介绍财务和技术指标:在金融方面,由于我们正在处理数字数据,因此除了检测趋势之外,依靠各种指标还可以更好地了解股票价格的走势,这对于我们打算对特定股票进行长期交易/投资非常重要.
从stockstats库,我们将导入StockDataFrame
,这是接收作为一个属性的熊猫一类DataFrame
排序按时间和包括顺序列开-关-高-低:
from stockstats import StockDataFrame
stocks = StockDataFrame.retype(df_aapl[["Open", "Close", "High", "Low", "Volume"]])
简单移动平均线 (SMA)
简单移动平均线是一个指标,它通过计算一段时间内的价格均值来平滑股票价格图。这将使我们更好地可视化趋势方向(上升或下降)。
SMA的公式如下图所示:
绘制SMA:
plt.plot(stocks["close_10_sma"], color="b", label="SMA")
plt.plot(df_aapl.Close, color="g", label="Close prices")
plt.legend(loc="lower right")
plt.show()
输出:
为了计算 SMA,我们按照以下格式指定属性:
Column_Period_Indicator
在我们的例子中,我们关注 10 周期内的收盘价,指标是 SMA,所以结果是 close_10_sma.
指数移动平均线 (EMA)
Python股票价格分析:不同的是SMA,这给相等的权重,以所有的价格无论是新的或旧的,在美国,指数移动平均线通过赋予最近(最近)的价格更大的权重来强调它们,这使得均线成为一个比均线更快检测趋势的指标。
EMA的公式如下:
绘制 EMA:
plt.plot(stocks["close_10_sma"], color="b", label="SMA") # plotting SMA
plt.plot(stocks["close_10_ema"], color="k", label="EMA")
plt.plot(df_aapl.Close, color="g", label="Close prices") # plotting close prices
plt.legend(loc="lower right")
plt.show()
输出:
左图是绘制收盘价、SMA 和 EMA 的结果,而右图是原始图的一部分的放大图。
在放大图中,我们可以清楚地观察到 EMA 确实对趋势的变化反应更快,并且越来越接近它们。
移动平均收敛/发散 (MACD)
Python如何分析股票价格?移动平均收敛/发散是趋势跟踪动量指标。该指标可以显示价格变动速度的变化,交易者可以使用它来确定趋势的方向。
MACD 的计算方法是从 12 周期 EMA 中减去 26 周期指数移动平均线 (EMA)。MACD 的 9 天 EMA 称为“信号线”,然后与 MACD 一起绘制。
当 MACD 低于信号线时,它是开始做空(卖出)操作的指标。当它越过它时,它是开始做多(买入)操作的指标:
plt.plot(stocks["macd"], color="b", label="MACD")
plt.plot(stocks["macds"], color="g", label="Signal Line")
plt.legend(loc="lower right")
plt.show()
输出:
就是这样!任何人都可以探索stockstats提供的许多指标,可以按照与上述指标相同的方式对其进行绘制。
Python介绍财务和技术指标总结
在本教程中,你:
- 学习了如何使用Pandas DataReader和yfinance库导入财务数据。
- 理解财务符号和定义。
- Python股票价格分析
- 熟悉 OHLC 符号。
- 学习了如何使用mpl_finance库绘制烛台图。
- 了解了财务指标的重要性,并使用stockstats库实现了其中的一些指标。