无法在我的Beta计算器中更改Yahoo价格数据的时间间隔

问题描述

我最近创建了一个Beta计算器,可从yahoo提取数据。但是由于某些原因,我无法更改时间间隔。我所说的间隔是指当我从开始时间和结束时间提取数据时,它会提取所有每日值。因此,例如,如果我编码df=pdr.get_data_yahoo(stock,start,Now),它将以每日间隔给我所有股票价格。我希望能够将其更改为每月价格数据或每年价格数据。每次输入间隔命令,都会给我一个错误。我真的不知道如何解决错误

Traceback (most recent call last):
File "C:/Users/Owner/pyproj/project 1/380projects/Beta Calculator.py",line 34,in <module>
slope,intercept,r,p,std_err = stats.linregress(market_pct,stock_pct)
File "C:\Users\Owner\pyproj\project 1\lib\site-packages\scipy\stats\_stats_mstats_common.py",line 116,in linregress
ssxm,ssxym,ssyxm,ssym = np.cov(x,y,bias=1).flat
File "<__array_function__ internals>",line 5,in cov
File "C:\Users\Owner\pyproj\project 1\lib\site-packages\numpy\lib\function_base.py",line 2415,in cov
X = np.concatenate((X,y),axis=0)
File "<__array_function__ internals>",in concatenate
ValueError: all the input array dimensions for the concatenation axis must match exactly,but along dimension 1,the array at index 0 has size 13 and the array at index 1 has size 12
import datetime as dt
import numpy as np
import yfinance as yf
from pandas_datareader import data as pdr
from scipy import stats

yf.pdr_override()

stock = input("Enter a Stock Ticker Symbol: ")
print(stock)

startyear = 2020  
startmonth = 1
startday = 1 

start = dt.datetime(startyear,startmonth,startday)

Now=dt.datetime.Now()

df=pdr.get_data_yahoo(stock,Now,interval = "1mo")

market=input('Enter Market Index to run regression: ')


de=pdr.get_data_yahoo(market,interval = "1mo")


stock_pct = df['Adj Close'].pct_change().values
market_pct = de['Adj Close'].pct_change().values

stock_pct = np.delete(stock_pct,0)
market_pct = np.delete(market_pct,0)

slope,stock_pct)
print('Standard Error = ',std_err)
print('Interecept = ',intercept)
print ('Beta = ',slope)



plt.plot(stock_pct,market_pct,'b. ',alpha = 0.2)
plt.show()

x = np.linspace(np.amin(stock_pct),np.amax(stock_pct))
y = slope * x + intercept

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)