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

本文介绍了使用Python进行量化交易分析,通过绘制5日和20日均线,展示如何利用《深入浅出Python量化交易实战》中的方法来设计交易策略。作者展示了从Yahoo Finance获取股票数据,计算均线并绘制图表的代码,为读者提供了一个实践示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是菜鸟哥。

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

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

 下面是我练习的代码:

import pandas as pd
import numpy as np
from pandas_datareader import data
import datetime
import matplotlib.pyplot as plt

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

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日均线

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

数据中就可以看到了:

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

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()

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

8a334096bb873ccce75693845514efc4.png

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

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

wén
文

mò
末

zèng
赠

shu
书

【内容简介】

本书没有从Python基础语法讲起,对于传统交易策略也只是一带而过,直接将读者带入机器学习的世界。本书适合对Python语言有一定了解且对量化交易感兴趣的读者阅读。

bf2ba1a3e6529064e5f18feaa12d6131.png

【赠书规则】

最后还是老规矩,包邮送《深入浅出Python量化交易实战》5本。书籍3本会在留言的同学中送出,留言靠谱的,经常来捧场混脸熟的几率更大。剩下的2本会在我们的星球福利送出,
分享
收藏
点赞
在看
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值