股票对比

功能:

通过接口实现股票信息的获取,以及股票之间的对比,包括最终对比图表的生成展示

代码:

import pandas as pd
from pandas_datareader import data
import matplotlib.pyplot as plt
import tushare as ts
import yfinance as yf

#由于雅虎中国已失效于2021.11.01,所以需要通过yfinance插件override使代码重新可用
yf.pdr_override()
#定义分析时间
start_date = '2017-01-01'
end_date = '2018-01-01'

# stockNum=int(input(' How many stocks would you compare?'))
stocklist=[]
# for i in range(stockNum):
#     stock = input('Enter Stock Symbol:')
#     stocklist.append(stock)

#1
stocklist.append('GOOG')
stocklist.append('AMZN')

#2
# stocklist.append('FB')
# stocklist.append('AAPL')
# stocklist.append('BABA')
# stocklist.append('0700.hk')

#3

# stocklist.append('FB')
# stocklist.append('AAPL')
# stocklist.append('BABA')

print(stocklist)

#收盘价对比
#6雅虎中国已失效2021.11.01
df = data.get_data_yahoo(stocklist,start_date,end_date)['Close']
# df = data.get_data_yahoo(('AMZN',start_date,end_date)
print(df.head())
print(df)

#收盘价对比图
df[stocklist].plot()
#使用不同的标度
df[stocklist].plot(secondary_y = ['FB','BABA'])
plt.title(stocklist)
plt.grid(True)
plt.show()

#定义涨跌幅函数
def change(name,column):
    buyPrice = column[0]
    curPrice = column[250]
    priceChange = (curPrice - buyPrice) / buyPrice
    if (priceChange > 0):
        print(name,'股票累计上涨幅度 =',priceChange*100,'%')
    elif(priceChange < 0):
        print(name,'股票累计下跌幅度=',priceChange*100,'%')
    else:
        print(name,'股票没有变化=',priceChange)
    return priceChange

# #谷歌
# googleDf=data.get_data_yahoo('GOOG',start_date,end_date)
# googleclose=googleDf['Close']
# googlechange=change('GOOG',googleclose)
#
#
# #亚马逊
# amzDf=data.get_data_yahoo('AMZN',start_date,end_date)
# amzclose=amzDf['Close']
# amzchange=change('AMZN',amzclose)

#FACEBOOK
fbDf=data.get_data_yahoo('FB',start_date,end_date)
fbclose=fbDf['Close']
fbchange=change('FB',fbclose)

执行后效果如图所示:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注