[026量化交易] python 单一移动平均指标

这段代码演示了如何使用Python的tushare库获取股票数据,并计算10日均线。首先初始化tushare接口,然后获取000006.SZ股票从2019年1月1日至2019年3月1日的数据。接着,计算每日收盘价的10日平均值,当数据超过10天时删除最早的价格,保持列表内始终为10天的数据。最后,将计算出的10日均线绘制到图表上,并展示结果。
摘要由CSDN通过智能技术生成
# http://localhost:8888/lab
# jupyter lab
import tushare as ts
import numpy as np
# 导入画图工具matplotlib
import matplotlib.pyplot as plt
import pandas as pd

# 初始化pro接口
pro = ts.pro_api('')

print("获取股票数据.")
zgpa = pro.daily(ts_code='000006.SZ', start_date='20190101', end_date='20190301')

zgpa_signal = pd.DataFrame(index=zgpa.index)

# 这里使用10日均线
period = 10
# 设置一个空列表,用来存储每10天的价格
avg_10 = []
# 再设置一个空列表,用来存储每10天价格的均值
avg_value = []
# 设置一个循环
for price in zgpa['pre_close']:
    # 把每天的价格传入到avg_10列表
    avg_10.append(price)
    print('++++++++++')
    print(avg_10)
    print(np.mean(avg_10))
    # 当列表中存储的数值多于10个时
    if len(avg_10) > period:
        # 就把前面传入的价格数据删掉,确保列表中只有10天的数据
        del avg_10[0]
    # 将10天数据的均值传入到avg_value列表中
    avg_value.append(np.mean(avg_10))
# 把计算好的10日均价写到股票价格数据表中
zgpa = zgpa.assign(avg_10=pd.Series(avg_value, index=zgpa.index))
# 检查一下是否添加成功
print(zgpa)

# 设置图像尺寸为10*6
plt.figure(figsize=(10, 6))
# 绘制股价的变化
plt.plot(zgpa['pre_close'], lw=2, c='k')
# 绘制10日均线
plt.plot(zgpa['avg_10'], '--', lw=2, c='b')
# 添加图注和网格
plt.legend()
plt.grid()
# 将图像进行显示
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值