Python教程 第3节:绘制股票均线

上一节中,我们学习了如何获取完整的历史股价数据。本节将进一步学习如何计算和绘制均线。

准备工作:获取股价数据

首先,我们将获取股票价格的函数单独编写,以便后续调用。

import yfinance as yf

def get_prices(stock_symbol):
    data = yf.download(stock_symbol)
    return data

prices = get_prices("^NDX")

计算均线

接下来,我们计算均线。这里选择了最简单的简单移动平均线(SMA)。我们不必自己计算,可以直接使用现成的函数。

sma_20 = prices['Adj Close'].rolling(window=20).mean()  # 20日均线

绘制图表

现在,我们可以根据上一节的内容绘制价格图表了。

import matplotlib.pyplot as plt

plt.plot(prices['Adj Close'], label='price')
plt.plot(sma_20, label='sma20')
plt.title('Nasdaq 100 price and sma')
plt.xlabel('date')
plt.ylabel('price')
plt.legend()
plt.grid(True)
plt.show()

添加主函数

为了良好的代码结构和避免一些潜在的错误,我们将主要代码放在一个名为main()的函数中。

import yfinance as yf
import matplotlib.pyplot as plt


def get_prices(stock_symbol):
    data = yf.download(stock_symbol)
    return data


def main():
    prices = get_prices("^NDX")
    sma_20 = prices['Adj Close'].rolling(window=20).mean()  # 20日均线
    plt.plot(prices['Adj Close'], label='price')
    plt.plot(sma_20, label='sma20')
    plt.title('Nasdaq 100 price and sma')
    plt.xlabel('date')
    plt.ylabel('price')
    plt.legend()
    plt.grid(True)
    plt.show()


if __name__ == '__main__':
    main()

通过这个简单的步骤,我们就能够绘制出如下图所示的股价和均线图表。

以上就是股票均线的计算和绘制方法,下一节我们就可以尝试建立一个简单的均线交易系统了。

5 1 vote
Article Rating

Leave a Reply

2 Comments
Inline Feedbacks
View all comments
Jax Luo
1 year ago

怎么把sma改成ema呢

error: Content is protected !!
Scroll to Top
error: Content is protected !!
Scroll to Top