股票價格預測有助于確定未來幾天或幾周內股票的走勢,或者至少顯示趨勢,股票價格取決于多種因素,例如:
基本因素:收入,利潤,市場份額,業務的潛在增長前景
外部因素:大流行病,例如新冠,外匯匯率,石油價格,黃金價格,債券收益率,全球股票市場
技術因素:價格走勢,交易量,移動平均線,MACD(移動平均趨同差異),RSI(相對強度指數),MFI(資金流量指數),支點,衍生產品到期日,期權未平倉合約,期貨價格
不管有沒有這些因素,
- 股票價格不是隨機的,它們的確遵循過去的歷史趨勢
- 人為的決定是情感和理性的結合,傾向于查看過去的資料
- 市場永遠是對的,他們只會懲罰錯誤的決定
- 貪婪,盲目打電話,高風險的食欲,謹慎行事可以根據時間獎勵或懲罰投資者,
在本文中,我們將嘗試使用Facebook的Prophet
預測
為了這個分析,我選擇了CDSL(印度中央存托服務有限公司)的股票,資料可以從https://www.nseindia.com/get-quotes/equity?symbol=CDSL下載,并點擊歷史資料,考慮到2020年3月的市場崩盤是一個黑天鵝事件,我取了從2020年4月到2021年4月的一年資料,
import pandas as pd
cdsl = pd.read_csv(‘/Users/ravindraprasad/01-Elicherla/01-DataScience/CDSLApril.csv’
上面的代碼是匯入_pandas _并下載資料,請在代碼中使用適當的檔案夾,
CDSL在下面顯示帶有標題的資料,

列名有一個小問題,以免在列中列出
list(cdsl.columns)
如您所見,在列名的末尾有一個空格

我正在更改列名
df = cdsl.rename(columns = {‘Date ‘: ‘Date’, ‘series ‘: ‘series’, ‘OPEN ‘: ‘Open’ , ‘HIGH ‘: ‘High’, ‘LOW ‘: ‘Low’, ‘PREV. CLOSE ‘: ‘PREV. CLOSE’, ‘ltp ‘: ‘ltp’, ‘close ‘: ‘close’, ‘vwap ‘: ‘vwap’, ‘52W H ‘: ‘52W H’, ‘52W L ‘: ‘52W L’ , ‘VOLUME ‘: ‘VOLUME’, ‘No of trades ‘:’No of trades’ }, inplace = False)
現在,所有列名稱都更改為相同的名稱,但沒有空格
要使用先知,日期是重要的變數,
cdsl ['Date']

看起來確實是正確的日期,但是,當我們進行排序時,就會遇到挑戰,如您在下面看到的,它沒有正確排序,這是因為日期格式不正確,

現在,讓我們更改日期格式,
df[‘Date’] = pd.to_datetime(df.Date,format=’%d-%b-%Y’)
df.sort_values(by=[‘Date’], inplace=True, ascending=True)
df

現在日期已經整理好了,讓我們使用matplotlib繪制資料
from matplotlib import pyplot as plt
import numpy as np
x = df[‘Date’]
y = df[‘ltp’]
plt.plot(x, y)

現在是時候為先知準備資料了,先知只需要兩個變數,我們將使用Date和ltp(這是最后交易價格)
dfdata = https://www.cnblogs.com/qingmiaokeji/p/df[[“Date”,”ltp”]]
dfdata.rename(columns={“Date”:”ds”}, inplace=True)
dfdata.rename(columns={“ltp”:”y”}, inplace=True)
對于先知,我們需要在上面將其重命名為" ds"和" y"兩個變數,在進行預測之前,讓我們快速查看資料

匯入先知并使用資料創建模型,
from fbprophet import Prophet
m = Prophet()
m.fit(dfdata)
讓我們預測接下來的300天,
future = m.make_future_dataframe(periods=300)
future.tail()


forecast = m.predict(future)
dfforecast= forecast[[“ds”, “yhat”, “yhat_lower”, “yhat_upper”]]
pd.set_option(‘display.max_rows’, dfforecast.shape[0]+1)
dfforecast

fig1 = m.plot(forecast)

fig2 = m.plot_components(預測)

讓我們建立互動式圖形,
from fbprophet.plot import plot_plotly
import plotly.offline as py
py.init_notebook_mode()
fig = plot_plotly(m, forecast) # This returns a plotly Figure
py.iplot(fig)

該模型預測CDSL達到Rs,2021在11月1日當周,而盧比的下限較低,859盧比以上,1164.讓我們拭目以待!!!

最后友情提醒:股市有風險,入市需謹慎!
最近準備看一些機器學習、深度學習方面的論文為后面讀研打基礎!在學習程序中搜集了入門器學習、深度學習經典書籍,關注公眾號[程式員石磊],回復“機器學習”即可免費獲得!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/286043.html
標籤:大數據
上一篇:B站資料分析課程學習清單!
