偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

量化分析預(yù)測(cè)股市?試試這個(gè) Python 庫(kù)

開(kāi)發(fā) 后端
本文將展示如何使用 Python 的第三方庫(kù) Stocker 來(lái)進(jìn)行股票分析和預(yù)測(cè)。

[[431124]]

   Python中文社區(qū)(ID:python-china)

本文將展示如何使用 Python 的第三方庫(kù) Stocker 來(lái)進(jìn)行股票分析和預(yù)測(cè)。

安裝第三方庫(kù)

安裝所需的庫(kù)后,我們要做的第一件事就是將 Stocker 類(lèi)導(dǎo)入到我們的 Python 代碼中。我們可以通過(guò)在腳本目錄中啟動(dòng)的 Jupyter Notebook 執(zhí)行此操作。 

  1. !pip install quandl  
  2. !pip install fbprophet  
  3. !pip install plotly  
  1. from stocker importStocker 

現(xiàn)在在 Python 代碼中有 Stocker 類(lèi),我們可以使用它來(lái)創(chuàng)建該類(lèi)的實(shí)例。在 Python 中,類(lèi)的實(shí)例稱(chēng)為對(duì)象,創(chuàng)建對(duì)象的行為有時(shí)稱(chēng)為實(shí)例化或構(gòu)造。為了創(chuàng)建 Stocker 對(duì)象,我們需要傳入有效股票代碼的名稱(chēng)。 

  1. # MSFT Stocker Initialized. Data covers 1986-03-13 to 2018-01-16.  
  2. microsoft = Stocker('MSFT')  
  1. MSFT StockerInitialized. Data covers 1986-03-1300:00:00 to 2018-03-2700:00:00. 

現(xiàn)在,我們有一個(gè)包含 Stocker 類(lèi)所有屬性的 microsoft 對(duì)象。Stocker 建立在 quandl WIKI 數(shù)據(jù)庫(kù)上,該數(shù)據(jù)庫(kù)使我們可以訪問(wèn) 3000 多只美國(guó)股票以及多年的每日價(jià)格數(shù)據(jù)(完整列表)。對(duì)于此示例,我們將堅(jiān)持使用 Microsoft 數(shù)據(jù)。因?yàn)槲④浾趽肀ч_(kāi)源社區(qū)(包括 Python)。

Python 中的類(lèi)由兩個(gè)主要部分組成:屬性和方法。無(wú)需贅述,屬性是與整個(gè)類(lèi)或與類(lèi)的特定實(shí)例(對(duì)象)相關(guān)聯(lián)的值或數(shù)據(jù)。方法是包含在類(lèi)中的可以作用于該數(shù)據(jù)的函數(shù)。Stocker 對(duì)象的一個(gè)屬性是特定公司的股票數(shù)據(jù),當(dāng)我們構(gòu)造對(duì)象時(shí),該屬性與該對(duì)象相關(guān)聯(lián)。我們可以訪問(wèn)該屬性并將其分配給另一個(gè)變量進(jìn)行檢查: 

  1. # Stock is an attribute of the microsoft object  
  2. stock_history = microsoft.stock  
  3. stock_history.head() 

Python 類(lèi)的好處是方法(或函數(shù))和它們作用的數(shù)據(jù)與同一個(gè)對(duì)象相關(guān)聯(lián)。我們可以使用 Stocker 對(duì)象的一個(gè)方法來(lái)繪制股票的整個(gè)歷史數(shù)據(jù)。 

  1. # A method (function) requires parentheses  
  2. microsoft.plot_stock()  
  1. MaximumAdj. Close96.77 on 2018-03-1200:00:00.  
  2. MinimumAdj. Close0.06 on 1986-03-2400:00:00.  
  3. CurrentAdj. Close89.47 on 2018-03-2700:00:00. 

繪制的默認(rèn)值是調(diào)整后的收盤(pán)價(jià),它考慮了股票的分割(當(dāng)一只股票被分割成多只股票時(shí),比如 2 只,每只新股票價(jià)值是原始價(jià)格的 1/2)。

這是我們可以從 Google 搜索中找到的一個(gè)非?;镜膱D,但是我們自己用幾行 Python 來(lái)完成它是令人滿意的! plot_stock 函數(shù)有許多可選參數(shù)。默認(rèn)情況下,此方法繪制整個(gè)日期范圍的調(diào)整后收盤(pán)價(jià),但我們可以選擇范圍、要繪制的統(tǒng)計(jì)數(shù)據(jù)以及繪圖類(lèi)型。例如,如果我們想將價(jià)格的每日變化與調(diào)整后的交易量(股票數(shù)量)進(jìn)行比較,我們可以在函數(shù)調(diào)用中指定這些。 

  1. microsoft.plot_stock(start_date = '2000-01-03',  end_date = '2018-01-16',  stats = ['Daily Change', 'Adj. Volume'],  plot_type='pct' 
  1. MaximumDailyChange2.08 on 2008-10-1300:00:00.  
  2. MinimumDailyChange= -3.34 on 2017-12-0400:00:00.  
  3. CurrentDailyChange= -5.47 on 2018-03-2700:00:00.  
  4. MaximumAdj. Volume591052200.00 on 2006-04-2800:00:00.  
  5. MinimumAdj. Volume7425503.00 on 2017-11-2400:00:00.  
  6. CurrentAdj. Volume53704562.00 on 2018-03-2700:00:00. 

注意,y 軸是相對(duì)于統(tǒng)計(jì)平均值的百分比變化。這個(gè)單位是必要的,因?yàn)槊刻斓慕灰琢勘緛?lái)就是股票,范圍在數(shù)億,而每天的價(jià)格變化通常是幾美元!通過(guò)轉(zhuǎn)換為百分比變化,我們可以以相似的比例查看兩個(gè)數(shù)據(jù)集。該圖顯示交易的股票數(shù)量與價(jià)格的每日變化之間沒(méi)有相關(guān)性。這是令人驚訝的,因?yàn)槲覀兛赡芷谕趦r(jià)格變化較大的日子里交易更多股票,因?yàn)槿藗兗庇诶貌▌?dòng)。然而,唯一真正的趨勢(shì)似乎是交易量隨著時(shí)間的推移而減少。2017 年 12 月 4 日的價(jià)格也大幅下降,我們可以嘗試將其與有關(guān) Microsoft 的新聞報(bào)道聯(lián)系起來(lái)。

使用 plot_stock,我們可以調(diào)查任何日期范圍內(nèi)數(shù)據(jù)中的任何數(shù)量,并尋找與現(xiàn)實(shí)世界事件的相關(guān)性?,F(xiàn)在,我們將繼續(xù)討論 Stocker 中更有趣的部分之一:賺假錢(qián)!

讓我們暫時(shí)假設(shè)我們有信心在公司的首次公開(kāi)募股 (IPO) 上投資 100 股微軟股票。我們現(xiàn)在有多富有? 

  1. microsoft.buy_and_hold(start_date='1986-03-13'end_date='2018-01-16'nshares=100 
  1. MSFT Total buy and hold profit from1986-03-13 to 2018-01-16for100 shares = $8829.11 

使用這些結(jié)果將使我們能夠及時(shí)調(diào)整我們的計(jì)劃,以最大限度地提高利潤(rùn)。

加法模型

加法模型是分析和預(yù)測(cè)時(shí)間序列的強(qiáng)大工具,時(shí)間序列是最常見(jiàn)的現(xiàn)實(shí)世界數(shù)據(jù)類(lèi)型之一。這個(gè)概念很簡(jiǎn)單:將時(shí)間序列表示為不同時(shí)間尺度上的模式和整體趨勢(shì)的組合。我們知道微軟股票的長(zhǎng)期趨勢(shì)是穩(wěn)步上漲,但也可能有每年或每天的模式,例如每周二上漲,這在經(jīng)濟(jì)上是有益的。由 Facebook 開(kāi)發(fā)的 Prophet 是一個(gè)用于通過(guò)日常觀察(例如股票)分析時(shí)間序列的第三方庫(kù)。Stocker 在底層使用 Prophet 為我們完成所有建模工作,因此我們可以使用簡(jiǎn)單的方法調(diào)用來(lái)創(chuàng)建和檢查模型。 

  1. model, model_data = microsoft.create_prophet_model() 

加法模型消除了數(shù)據(jù)中的噪聲,這就是模型線與觀測(cè)值不完全一致的原因。Prophet 模型還計(jì)算不確定性,這是建模的重要組成部分,因?yàn)樵谔幚聿▌?dòng)的現(xiàn)實(shí)過(guò)程時(shí),我們永遠(yuǎn)無(wú)法確定我們的預(yù)測(cè)結(jié)果。我們也可以使用prophet模型對(duì)未來(lái)進(jìn)行預(yù)測(cè),但現(xiàn)在我們更關(guān)心過(guò)去的數(shù)據(jù)。請(qǐng)注意,此方法調(diào)用返回了兩個(gè)對(duì)象,一個(gè)模型和一些我們分配給變量的數(shù)據(jù)。我們現(xiàn)在使用這些變量來(lái)繪制時(shí)間序列分量。 

  1. model.plot_components(model_data)  
  2. plt.show() 

總體趨勢(shì)是在過(guò)去三年中明顯增加。似乎還有一個(gè)明顯的年度模式,價(jià)格在 9 月和 10 月觸底,并在 11 月和 1 月達(dá)到峰值。隨著時(shí)間尺度的減小,數(shù)據(jù)變得更加嘈雜。在一個(gè)典型的月份中,信號(hào)多于噪音!如果我們認(rèn)為可能存在每周模式,我們可以通過(guò)更改 Stocker 對(duì)象的weekly_seasonality 屬性將其添加到先知模型中: 

  1. print(microsoft.weekly_seasonality)  
  2. microsoft.weekly_seasonality = True  
  3. print(microsoft.weekly_seasonality)  
  1. False  
  2. True 

weekly_seasonality 的默認(rèn)值為 False,但我們更改了該值以在我們的模型中包含每周模式。然后我們?cè)俅握{(diào)用 create_prophet_model 并繪制結(jié)果組件。

我們可以忽略周末,因?yàn)閮r(jià)格只會(huì)在一周內(nèi)變化(實(shí)際上在下班后的期間價(jià)格變化很小,但不影響我們的分析)。不幸的是,沒(méi)有一周的趨勢(shì)可供我們使用,在我們繼續(xù)建模之前,我們將關(guān)閉每周季節(jié)性。這種行為是意料之中的:對(duì)于股票數(shù)據(jù),隨著時(shí)間尺度的減小,噪聲開(kāi)始沖刷掉信號(hào)。從日常來(lái)看,股票的走勢(shì)本質(zhì)上是隨機(jī)的,只有縮小到年度范圍,我們才能看到趨勢(shì)。

變化點(diǎn)

變化點(diǎn)發(fā)生在時(shí)間序列從增加到減少或相反時(shí)(在更嚴(yán)格的意義上,它們位于時(shí)間序列速率變化最大的地方)。這些時(shí)間非常重要,因?yàn)榱私夤善焙螘r(shí)會(huì)達(dá)到頂峰或即將起飛可能會(huì)帶來(lái)顯著的經(jīng)濟(jì)效益。確定變化點(diǎn)的原因可能讓我們預(yù)測(cè)股票價(jià)值的未來(lái)波動(dòng)。Stocker 對(duì)象可以自動(dòng)為我們找到 10 個(gè)最大的變化點(diǎn)。 

  1. microsoft.changepoint_date_analysis()  
  1. Changepoints sorted by slope rate of change (2nd derivative):  
  2. DateAdj. Close     delta  
  3. 4102016-09-0855.811396-1.378093  
  4. 3382016-05-2650.1134531.116720  
  5. 2172015-12-0252.572008-0.882359  
  6. 4582016-11-1557.5898190.603127  
  7. 482015-04-0237.6125900.442776 

變化點(diǎn)往往與股價(jià)的高峰和低谷一致。Prophet 只在前 80% 的數(shù)據(jù)中找到變化點(diǎn),但盡管如此,這些結(jié)果還是很有用的,因?yàn)槲覀兛梢試L試將它們與現(xiàn)實(shí)世界的事件相關(guān)聯(lián)。我們可以重復(fù)我們之前所做的并在這些日期前后手動(dòng)搜索 Google 新聞,但我認(rèn)為如果Stocker 為我們這樣做會(huì)更好。您可能已經(jīng)看過(guò) Google 搜索趨勢(shì)工具,該工具可讓您查看任何搜索詞在 Google 搜索中隨時(shí)間的流行程度。Stocker 可以自動(dòng)檢索我們指定的任何搜索詞的數(shù)據(jù),并在原始數(shù)據(jù)上繪制結(jié)果。為了找到并繪制搜索詞的頻率,我們修改了之前的方法調(diào)用。 

  1. microsoft.changepoint_date_analysis(search = 'Microsoft profit' 
  1. TopRelatedQueries:   
  2.                   query  value  
  3. 0  microsoft non profit    100  
  4. 1      microsoft office     60  
  5. 2          apple profit     40  
  6. 3         microsoft 36540  
  7. 4                 apple     35  
  8. RisingRelatedQueries:   
  9.            query  value 
  10. 0    apple stock    170  
  11. 1  microsoft 365130  
  12. 2   apple profit     50 

除了繪制相對(duì)搜索頻率的圖形之外,Stocker 還顯示了圖表日期范圍內(nèi)相關(guān)度最高的查詢(xún)和上升最快的查詢(xún)。在圖中,y 軸通過(guò)將值除以其最大值而在 0 和 1 之間歸一化,使我們能夠比較具有不同尺度的兩個(gè)變量。從圖中可以看出,搜索“Microsoft profit”與微軟股價(jià)之間似乎沒(méi)有相關(guān)性。

如果我們發(fā)現(xiàn)了相關(guān)性,那么仍然會(huì)有因果關(guān)系的問(wèn)題。我們不知道是搜索還是新聞導(dǎo)致了價(jià)格的變化,還是價(jià)格的變化導(dǎo)致了搜索。可能會(huì)找到一些有用的信息,但也有很多機(jī)會(huì)相關(guān)性。隨意嘗試一些不同的搜索詞語(yǔ),看看是否能找到任何有趣的趨勢(shì)! 

  1. microsoft.changepoint_date_analysis(search = 'Microsoft Office' 
  1. TopRelatedQueries:   
  2.                        query  value  
  3. 0  microsoft office download    100  
  4. 1      microsoft office 201090  
  5. 2                office 201085  
  6. 3      microsoft office 201375  
  7. 4                office 201370  
  8. RisingRelatedQueries:   
  9.                             query  value  
  10. 0       microsoft office 2016 key  80300  
  11. 1                     office 201673200  
  12. 2  download microsoft office 201672150  
  13. 3       microsoft office 2016 mac  69350  
  14. 4           microsoft office 201667650 

看起來(lái)對(duì)Microsoft Office 的搜索量下降會(huì)導(dǎo)致股價(jià)上漲。也許有人應(yīng)該讓微軟知道。

預(yù)測(cè)

我們只探索了 Stocker 功能的前半部分。后半部分用于預(yù)測(cè),或預(yù)測(cè)未來(lái)的股票價(jià)格。如下圖所示: 

  1. model, future = microsoft.create_prophet_model(days=180 
  1. PredictedPrice on 2018-07-21= $102.40 

 

責(zé)任編輯:龐桂玉 來(lái)源: Python中文社區(qū)
相關(guān)推薦

2021-05-06 09:57:18

Python 開(kāi)發(fā)編程語(yǔ)言

2023-03-08 08:42:55

MySQLcost量化

2023-12-10 13:58:17

2020-01-31 16:08:00

?機(jī)器學(xué)習(xí)數(shù)據(jù)技術(shù)

2020-08-28 07:00:00

機(jī)器學(xué)習(xí)預(yù)測(cè)股市人工智能

2018-06-26 15:58:06

數(shù)據(jù)庫(kù)MySQL索引優(yōu)化

2017-07-06 15:44:33

2024-07-31 11:48:07

2025-07-03 01:45:00

2010-07-06 14:40:32

RationalJazz

2023-12-30 08:16:34

Django權(quán)限控制庫(kù)

2020-07-29 10:55:07

數(shù)據(jù)庫(kù)工具技術(shù)

2021-08-05 10:46:59

GitHub代碼開(kāi)發(fā)者

2021-08-26 07:29:56

用戶需求層次分析法決策

2021-06-24 16:18:03

Cube.js數(shù)據(jù)分析開(kāi)源

2022-02-09 07:44:30

Go源碼工具

2022-11-26 21:34:08

Python可視化世界杯

2022-01-26 07:18:57

工具GoGo 項(xiàng)目

2010-01-05 13:32:36

.NET Framew

2025-01-16 08:50:33

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)