获取 Wind 数据并进行简单的择时分析

使用Python获取Wind数据并进行简单的择时分析时,需要按照以下步骤操作。

1)登录Wind官网,在“金融解决方案”的下拉列表里选择“金融终端”选项,如下图3.2所示。

2)根据自己计算机的实际情况单击“WindowsMac版”或“移动版”按钮,如下图所示。

也可以申请试用。

3)下载并安装完毕后,打开Wind金融终端,输入用户名和密码,就能登录了。然后选择“开

>插件修复>修复Python接口”选项,如下图所示。

4)修复完成后,如下图所示。

注意:修复完成后,可通过“配置详情”查看具体修复了哪些 Python 设置。若列表中没有

需要使用的Python,可通过“添加路径”修复指定的Python,添加路径格式可参考具体的提示。

5)接下来,可以调用WindPy进行简单的择时分析,代码如下。

from pylab import *
import matplotlib.pyplot as plt
import datetime
from WindPy import w
from matplotlib.pyplot import MultipleLocator #这个类用于设置刻度间隔
#支持中文
mpl.rcParams['font.sans-serif'] = ['SimHei']
#获取股票数据
def get_stock_data(ticker, fields, start_date, end_date, options):
stock_data = w.wsd(ticker, fields, start_date, end_date,options,
usedf=True)
return stock_data[1]['CLOSE']
#计算移动平均线
def calculate_moving_average(data, window):
avg = data.rolling(window=window).mean()
return avg
#转换日期
def changedate(stock_data):
alldates = []
riqi = stock_data.index
for i in range(len(riqi)):
alldates.append(riqi[i].strftime('%Y-%m-%d'))
return alldates
#绘制股票价格走势图
def plot_stock_price(stock_data,alldates):
#绘制股票价格和移动平均线图
plt.figure(figsize=(12, 6))
plt.plot(alldates, stock_data['ma5'], label='5-day MA')
plt.plot(alldates, stock_data['ma10'], label='10-day MA')
plt.xlabel('Date')
plt.ylabel('Price')
#把 x轴的刻度间隔设置为 20,并存在变量里
x_major_locator = MultipleLocator(len(alldates)/20)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
#设置 x轴的旋转角度为 45度
ax.tick_params(axis='x', rotation=45)
plt.legend()
plt.show()
if __name__ == '__main__':
w.start() #启动 API接口
result = w.isconnected() #判断 WindPy是否已经登录成功
if result == True:
ticker = '000001.SH' #股票代码
start_date = "2023-04-01" #开始日期
end_date = datetime.datetime.now() #结束日期
window = 20 #移动平均线的窗口大小
fields = "open,high,low,close"
options = "returnType=1;PriceAdj=CP"
stock_data = get_stock_data(ticker, fields, start_date, end_date,
options)
alldates = changedate(stock_data)
#计算 5日和 10日移动平均线
stock_data['ma5'] = calculate_moving_average(stock_data, 5)
stock_data2 = get_stock_data(ticker, fields, start_date, end_date,
options)
stock_data['ma10'] = calculate_moving_average(stock_data2, 10)
plot_stock_price(stock_data,alldates)
else:
print('未连接! ')

这个程序首先启动Wind接口,然后获取股票代码为000001.SH的股票数据。接着计算了5日、

10日的移动平均线,并根据这些移动平均线的交点生成了择时信号。最后,将结果绘制出来,如

下图所示。

赠书活动:

本次的赠书活动的书籍是我的新书《Python金融大数据分析快速入门与案例详解》。

赠书活动规则
🤝关注我:和我一起揭开编程世界的神秘面纱。相遇是一种缘分,关注更是一种信任!
📲 添加博主wx:添加我的微信 jessica_ying_cat,遇到问题也可直接咨询。
💬 评论区留言:在评论区留言,即可参与。留言内容越走心、越有启发性,越有机会获得点赞!
👋活动时间:2024 年 11 月4 日到 2024 年 11 月 11 日。
🎁 公布结果:活动结束后,我将抽取幸运读者,免费获取此书,并在评论区或wx朋友圈公布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈工程师Linda

感恩您的鼓励,我会继续创作作品

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值