您当前的位置:python 正文

上古卷轴5龙裔dlc-用Python快速分析可视化和预测股票价格

来源:红线 编辑:红线 时间:2021-10-12

某天,我的一个朋友告诉我说,实现经济自由的关键是上古卷轴5龙裔dlc投资。虽然这是市场繁荣时期的真理,但如今业余交易上古卷轴5龙裔dlc仍然是一个有吸引力的选择。由于在线交易平台的便利性,涌现了许多自主价值投资者或家庭主妇交易员。甚至还有一些成功的故事和广告吹嘘有“快速致富计划”学习如何投资回报率高达40%甚至更高的上古卷轴5龙裔dlc。投资已成为当今职场人士的福音。

现在的问题是:哪些上古卷轴5龙裔dlc?如何上古卷轴5龙裔dlc上古卷轴5龙裔dlc?与其他上古卷轴5龙裔dlc相比,所选上古卷轴5龙裔dlc的回报和风险是什么?

本文的目标是让你了解使用快速简单的Python代码上古卷轴5龙裔dlc上古卷轴5龙裔dlc的一种方法。只需花12分钟阅读这篇文章——最好自己完成一下。然后你就可以快速浏览到你的第一份金融上古卷轴5龙裔dlc报告。

为了开始学习和上古卷轴5龙裔dlc上古卷轴5龙裔dlc,我们将从快速查看历史上古卷轴5龙裔dlc价格开始。这将通过从Pandas网络数据阅读器和雅虎财经中提取最新的上古卷轴5龙裔dlc数据来实现。然后,我们将尝试通过探索性上古卷轴5龙裔dlc,如相关性热图、Matplotlib可视化以及使用线性上古卷轴5龙裔dlc和k最近邻(KNearestNeighbor,KNN)的预测上古卷轴5龙裔dlc来查看数据。

Pandas网络数据阅读器 (Pandaswebdatareader)是Pandas库的一个扩展,用于与大多数最新的金融数据进行通信,包括雅虎财经、谷歌财经、Enigma等资源。

importpandasaspdimportdatetimeimportpandas_datareader.dataaswebfrompandasimportSeries,DataFramestart=datetime.datetime(2010,1,1)end=datetime.datetime(2017,1,11)df=web.DataReader("AAPL",'yahoo',start,end)df.tail()

这段代码将提取从2010年1月到2017年1月的7年的数据。你可以根据需要调整开始和结束日期。接下来的上古卷轴5龙裔dlc过程,我们将使用收盘价格,即上古卷轴5龙裔dlc在一天交易结束时的最终价格。

在这个上古卷轴5龙裔dlc中,我们使用两个关键的测量指标来上古卷轴5龙裔dlc上古卷轴5龙裔dlc:移动平均值和回报率。

滚动平均/移动平均(MA)通过不断更新平均价格来平滑价格数据,有助于降低价格表中的“噪音”。此外,该移动平均线可能充当“阻力”,代表着上古卷轴5龙裔dlc的下跌和上升趋势,你可以从中预期它的未来趋势,不太可能偏离阻力点。

close_px=df['AdjClose']mavg=close_px.rolling(window=100).mean()

这将计算上古卷轴5龙裔dlc收盘价最后100个滑窗(100天)的移动平均值,并取每个滑窗的移动平均值。正如你所看到的,移动平均线在滑窗上稳步上升,并不遵循上古卷轴5龙裔dlc价格曲线的锯齿线。为了更好地理解,让我们用Matplotlib来绘制它。我们将用移动平均线来绘制上古卷轴5龙裔dlc价格表。

%matplotlibinlineimportmatplotlib.pyplotaspltfrommatplotlibimportstyle#Adjustingthesizeofmatplotlibimportmatplotlibasmplmpl.rc('figure',figsize=(8,7))mpl.__version__#

在这张图表中,移动平均线显示了上古卷轴5龙裔dlc价格上升或下降的趋势。从逻辑上讲,你应该在股市低迷时买进,在股市上涨时卖出。

预期收益衡量投资收益概率分布的平均值或预期值。投资组合的预期回报是通过将每项资产的权重乘以其预期回报,再加上每项投资的价值来计算的。(摘自投资百科,investopedia)

rets=close_px/close_px.shift(1)-1rets.plot(label='return')

从逻辑上讲,我们理想的上古卷轴5龙裔dlc收益应该尽可能高且稳定。如果你是风险规避者(像我一样),你可能希望避开这种上古卷轴5龙裔dlc,因为你看到2013年下跌了10%。这个决定很大程度上取决于你对上古卷轴5龙裔dlc的总体看法和对其他竞争对手上古卷轴5龙裔dlc的上古卷轴5龙裔dlc。

在这部分中,我们将上古卷轴5龙裔dlc一家公司相对于其竞争对手的表现。假设我们对科技公司感兴趣,并想比较一下这些巨头:苹果(Apple)、通用电气(GE)、谷歌(Google)、IBM和微软(Microsoft)。

dfcomp=web.DataReader(['AAPL','GE','GOOG','IBM','MSFT'],'yahoo',start=start,end=end)['AdjClose']

你将会从雅虎财经的上古卷轴5龙裔dlc价格中得到一张相当整洁平滑的收盘价表。

我们可以通过运行pandas的百分比变化和相关函数来上古卷轴5龙裔dlc竞争关系。百分比变化将定义收益,找出与前一天相比价格变化的程度。了解相关性将有助于我们理解收益是否受其他上古卷轴5龙裔dlc收益的影响。

retscomp=dfcomp.pct_change()corr=retscomp.corr()

plt.scatter(retscomp.AAPL,retscomp.GE)plt.xlabel('ReturnsAAPL')plt.ylabel('ReturnsGE')

我们可以看到,GE的收益和Apple的收益之间存在着微弱的正相关关系。似乎在大多数情况下,Apple的回报率越高,GE的回报率也就越高。

让我们通过绘制散点矩阵进一步改进我们的上古卷轴5龙裔dlc,以可视化竞争上古卷轴5龙裔dlc之间可能的相关性。在对角点,我们将运行核密度估计(KernelDensityEstimate,KDE)。KDE是一个基本的数据平滑问题,它基于有限的数据样本对总体进行推断。它有助于生成对总体分布的估计。

pd.scatter_matrix(retscomp,di**onal='kde',figsize=(10,10))

为了证明正相关关系,我们将使用热图来可视化竞争上古卷轴5龙裔dlc之间的相关程度。注意颜色越浅代表这两只上古卷轴5龙裔dlc的相关性越强。

plt.imshow(corr,cmap='hot',interpolation='none')plt.colorbar()plt.xticks(range(len(corr)),corr.columns)plt.yticks(range(len(corr)),corr.columns)

从散点矩阵和热图中我们可以发现,竞争上古卷轴5龙裔dlc之间有很大的相关性。然而,这可能并不能说明因果关系,只能说明科技行业的趋势而不能说明相互竞争的上古卷轴5龙裔dlc是如何相互影响的。

除了相关性,我们还上古卷轴5龙裔dlc了每支上古卷轴5龙裔dlc的风险和回报。本例中我们提取的是回报的平均值(回报率)和回报的标准差(风险)。

plt.scatter(retscomp.mean(),retscomp.std())plt.xlabel('Expectedreturns')plt.ylabel('Risk')forlabel,x,yinzip(retscomp.columns,retscomp.mean(),retscomp.std()):​plt.annotate(label,xy=(x,y),xytext=(20,-20),​textcoords='offsetpoints',ha='right',va='bottom',​bbox=dict(boxstyle='round,pad=0.5',fc='yellow',alpha=0.5),​arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=0'))

现在你可以看到这张关于竞争上古卷轴5龙裔dlc的风险和收益比较的清晰的图表。从逻辑上讲,你想要将风险最小化,并使收益最大化。因此,您需要为您的风险回报容忍度画一条线(红线)。然后,你将创建规则——购买红线以下的上古卷轴5龙裔dlc(微软、通用电气和IBM),卖出红线以上的上古卷轴5龙裔dlc(苹果和谷歌)。这条红线显示了您的期望值阈值和买进/卖出决策的基线。

我们将使用这三个机器学习模型来预测上古卷轴5龙裔dlc:简单线性上古卷轴5龙裔dlc、二次判别上古卷轴5龙裔dlc(QuadraticDiscriminantAnalysis,QDA)和K近邻(KNearestNeighbor,KNN)。但首先我们需要设计一些特征:高-低百分比和百分比变化。

dfreg=df.loc[:,['AdjClose','Volume']]dfreg['HL_PCT']=(df['High']—df['Low'])/df['Close']*100.0dfreg['PCT_change']=(df['Close']—df['Open'])/df['Open']*100.0

在将数据放入预测模型之前,我们将按照以下步骤对数据进行清洗和处理:

4.最后,我们要找到近期X和早期X(用于训练)的数据序列,用于模型生成和评估。

#Dropmissingvaluedfreg.fillna(value=-,inplace=True)#Wewanttoseparate1percentofthedatatoforecastforecast_out=int(math.ceil(0.01*len(dfreg)))#Separatingthelabelhere,wewanttopredicttheAdjCloseforecast_col='AdjClose'dfreg['label']=dfreg[forecast_col].shift(-forecast_out)X=np.array(dfreg.drop(['label'],1))#ScaletheXsothateveryonecanhavethesamedistributionforlinearregressionX=preprocessing.scale(X)#FinallyWewanttofindDataSeriesoflateXandearlyX(train)formodelgenerationandevaluationX_lately=X[-forecast_out:]X=X[:-forecast_out]#Separatelabelandidentifyitasyy=np.array(dfreg['label'])y=y[:-forecast_out]

首先,让我们为我们的SciKit-Learn库的导入添加以下代码:

fromsklearn.linear_modelimportLinearRegressionfromsklearn.neighborsimportKNeighborsRegressorfromsklearn.linear_modelimportRidgefromsklearn.preprocessingimportPolynomialFeaturesfromsklearn.pipelineimportmake_pipeline

简单线性上古卷轴5龙裔dlc给出两个或多个变量之间的线性关系。当我们在两个变量中画关系图时,我们会得到一条直线。二次判别上古卷轴5龙裔dlc类似于简单线性上古卷轴5龙裔dlc,只是模型允许多项式(例如:x平方)的生成并会产生曲线。

线性回归预测因变量(Y)为输出而自变量(X)为输入。在绘制过程中,我们会得到一条直线,如下图所示:

Abeginner’sguidetoLinearRegressioninPythonwithScikit-Learn

我们将导入并使用现有的SciKit库,并通过选择X和Y训练集来训练模型。代码如下。

#Linearregressionclfreg=LinearRegression(n_jobs=-1)clfreg.fit(X_train,y_train)#QuadraticRegression2clfpoly2=make_pipeline(PolynomialFeatures(2),Ridge())clfpoly2.fit(X_train,y_train)#QuadraticRegression3clfpoly3=make_pipeline(PolynomialFeatures(3),Ridge())clfpoly3.fit(X_train,y_train)

KNN利用特征相似性来预测数据点的值。这保证了分配的新点与数据集中的点相似。为了找出相似点,我们提取这些点间的最小距离(例如:欧氏距离)。

在KNN模型可视化中,你将会以k个数量的元素对问题元素进行分组

有关模型的详细资料,请参阅以下链接。这对加深你的理解非常有用。

Introductiontok-NearestNeighbors:Simplified(withimplementationinPython)

#KNNRegressionclfknn=KNeighborsRegressor(n_neighbors=2)clfknn.fit(X_train,y_train)

一种简单、快速、粗略的评估方法是在每个训练过的模型中使用score方法。score可以得到测试数据集的self.predict(X)与y的平均精度。

confidencereg=clfreg.score(X_test,y_test)confidencepoly2=clfpoly2.score(X_test,y_test)confidencepoly3=clfpoly3.score(X_test,y_test)confidenceknn=clfknn.score(X_test,y_test)#results('Thelinearregressionconfidenceis',0.)('Thequadraticregression2confidenceis',0.)('Thequadraticregression3confidenceis',0.)('Theknnregressionconfidenceis',0.)

结果显示大多数模型的精确性评分(>0.95)。然而,这并不意味着我们可以盲目地持有这些上古卷轴5龙裔dlc。仍然有许多问题需要考虑,特别是对于不同的公司来说,随着时间的推移,它们的价格走势也会不同。

forecast_set=clf.predict(X_lately)dfreg['Forecast']=np.nan#result(array([115.,115.,116.,116.,116.,115.,116.,117.,117.,116.,116.,116.,115.,116.,117.,118.,​118.,119.]),0.,18)

根据预测值,我们将用现有的历史数据来可视化绘图。这将有助于我们可视化模型如何预测未来上古卷轴5龙裔dlc价格。

last_date=dfreg.iloc[-1].namelast_unix=last_datenext_unix=last_unix+datetime.timedelta(days=1)foriinforecast_set:next_date=next_unixnext_unix+=datetime.timedelta(days=1)dfreg.loc[next_date]=[np.nanfor_inrange(len(dfreg.columns)-1)]+[i]dfreg['AdjClose'].tail(500).plot()dfreg['Forecast'].tail(500).plot()plt.legend(loc=4)plt.xlabel('Date')plt.ylabel('Price')plt.show()

如图所示,蓝线显示了基于回归的上古卷轴5龙裔dlc价格预测。预测表明,经济衰退不会持续太久,然后就会复苏。因此,我们可以在经济低迷时买进上古卷轴5龙裔dlc,在经济好转时卖出。

为了进一步上古卷轴5龙裔dlc上古卷轴5龙裔dlc,这里有一些你可以实现的想法。这些想法将有助于对上古卷轴5龙裔dlc进行更全面的上古卷轴5龙裔dlc。如果需要更多的说明,请随时通知我。

上古卷轴5龙裔dlc经济定量因素,如某个国家的HPI、公司起源之间的经济不平等

责任编辑:红线
古冶IT教育网
Top