前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python实现股价的简单移动平均值(SMA)

用Python实现股价的简单移动平均值(SMA)

作者头像
我被狗咬了
发布2022-02-16 10:46:35
2.6K0
发布2022-02-16 10:46:35
举报
文章被收录于专栏:Python乱炖

前不久收到清华大学出版社赠送的《深入浅出Python量化交易实战》一书,也答应了出版社要写一些读书笔记,今天就来交作业了。

根据书中的内容,我自己也做了一点改进的工作——用Python绘制出股价的5日均线和20日均线。众所周知,5日均线是短线交易的生死线,而20日均线是中长线趋势的分水岭。因此,基于这两条均线,可以设计出一些简单的交易策略。

下面是我练习的代码:

代码语言:javascript
复制
import pandas as pd

import numpy as np

from pandas_datareader import data

import datetime

import matplotlib.pyplot as plt

导入库的部分,不解释了,下面拉数据:

代码语言:javascript
复制
end_date = datetime.date.today()

start_date = end_date - datetime.timedelta(days = 100)

price = data.DataReader('601127.ss','yahoo',
                        start_date,
                        end_date)

price.head()

这里我选择从yahoo拉601127这支股票过去100天的行情数据。能够看到最早的数据到2021年的10月8日:

然后我开始添加5日和20日均线

代码语言:javascript
复制
price['ma5'] = price['Adj Close'].rolling(5).mean()

price['ma20'] = price['Adj Close'].rolling(20).mean()

price.tail()

数据中就可以看到了:

为了便于观察,我用代码画了个图:

代码语言:javascript
复制
fig = plt.figure(figsize=(16,9))

ax1 = fig.add_subplot(111, ylabel='Price')

price['Adj Close'].plot(ax=ax1, color='g', lw=2., legend=True)

price.ma5.plot(ax=ax1, color='r', lw=2., legend=True)

price.ma20.plot(ax=ax1, color='b', lw=2., legend=True)

plt.grid()

plt.show()

这样就可以直观看到图像:

这样就可以根据不同周期的均线来设计移动平均策略了。

如果大家对类似的内容感兴趣,不妨也阅读一下这本《深入浅出Python量化交易实战》。我个人感觉跟着代码敲一敲,自己动手改进一下,还是很有乐趣的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python乱炖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档