Python股票分析系列——系列介紹和獲取股票數據.p1

本系列轉載自youtuber sentdex博主的教程視頻內容python

https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ
手工翻譯,有任何疑問能夠在下方留言,我盡力回答~web

 

該系列視頻已經搬運至bilibili: 點擊查看算法

漢化版視頻:點擊查看數據庫

正確的食用方法:文章大部分爲機翻,修正了一些有明顯不通順的地方,能讀懂大體意思便可,代碼是最重要的,代碼量很少很容易看懂編程

 

學習該系列您須要有:框架

1. Python基礎知識機器學習

2. 安裝 numpy/matplotlib/pandas/pandas-datareader/beatifulsoup4/sklearnide

HI all,歡迎來到Python for Finance系列教程。在本系列中,咱們將介紹使用Pandas框架將金融(股票)數據導入Python的基礎知識。從這裏開始,咱們將操縱數據並試圖想出一些投資公司的系統,應用一些機器學習,甚至是一些深刻的學習,而後學習如何回溯測試策略。我假設你知道Python的基礎知識。若是在任什麼時候候你被困在這個系列中,或者對某個主題或概念感到困惑,請隨時尋求幫助,我會盡我所能提供幫助。學習

我被問到的一個常見問題是我是否經過這些技術獲利投資或交易。我主要是爲了娛樂而練習金融數據,而且練習個人數據分析技巧,但實際上這也影響了我今天的投資決策。在寫這篇文章的時候,我並無用編程進行積極的算法交易,可是我已經有了,並且我實際上已經從中盈利了,可是它的工做量遠遠超出了您對算法交易的指望。最後,關於如何操縱和分析財務數據以及如何測試交易狀態的知識爲我節省了大量的金錢。測試

這裏提出的策略都不會讓你成爲一個超富有的人。若是他們願意,我可能會把它們留給本身!然而,知識自己能夠爲你節省資金,甚至可讓你賺錢。

好吧,讓咱們開始吧。首先,我使用的是Python 3.5,但您應該可以使用更高版本。我會假設你已經安裝了Python。若是你沒有64位的Python,可是有64位的操做系統,能夠得到64位的Python,它稍後會幫助你。若是你使用的是32位操做系統,我爲你的狀況感到抱歉,但不管如何,你應該沒問題。

須要安裝的python模塊:

  • Numpy
  • Matplotlib
  • Pandas
  • Pandas-datareader
  • BeautifulSoup4
  • scikit-learn / sklearn



首先,咱們將進行如下導入:

 

import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web

 

如今進行一些啓動設置:

style.use('ggplot')

start = dt.datetime(2000, 1, 1)
end = dt.datetime(2016, 12, 31)

 

咱們正在設定一種style,因此咱們的圖表看起來並不可怕。在金融領域,即便您虧損,您的圖表也很是重要。接下來,咱們將設置開始和結束日期時間對象,這將是咱們要獲取股票訂價信息的日期範圍。

如今,咱們能夠根據這些數據建立一個數據集dataframe,這裏df就是dataframe的縮寫:

df = web.DataReader('TSLA', "yahoo", start, end)

 (18.3.16注: 當前新版的pandas-datareader在獲取yahoo數據的時候接口有問題,拿不到數據,建議使用python2版本,pandas-datareader==0.5.0 親測有效)

若是您目前不熟悉DataFrame對象,能夠查看關於Pandas的教程,或者只是將其想象爲電子表格或存儲器/ RAM中的數據庫表。這只是一個行和列表,你有一個索引和列名。在咱們的狀況下,咱們的指數多是日期。該索引應該是與全部列相關的內容。

web.DataReader('TSLA','yahoo',start,end)使用pandas_datareader包,尋找股票代碼TSLA(特斯拉),從yahoo獲取信息,以任何開始的起始日期爲結束咱們選擇的最終變量。只要你不知道,股票是公司全部權的一部分,股票是用來引用公司所在股票交易所的「符號」。大部分代碼是1-4個字母。

因此如今咱們有一個包含特斯拉股票訂價信息的Pandas.DataFrame對象。讓咱們看看咱們在這裏:

print(df.head())

 

 

 

 
 
                 Open   High        Low      Close    Volume  Adj Close
Date                                                                   
2010-06-29  19.000000  25.00  17.540001  23.889999  18766300  23.889999
2010-06-30  25.790001  30.42  23.299999  23.830000  17187100  23.830000
2010-07-01  25.000000  25.92  20.270000  21.959999   8218800  21.959999
2010-07-02  23.000000  23.10  18.709999  19.200001   5139800  19.200001
2010-07-06  20.000000  20.00  15.830000  16.110001   6866900  16.110001
 

 

.head()是您能夠對Pandas DataFrames執行的操做,它會輸出前n行​​,其中n是您傳遞的可選參數。若是您未傳遞參數,則默認值爲5。咱們極可能會使用.head()來快速瀏覽咱們的數據,以確保咱們走在正確的軌道上。看起來很棒!

若是您不知道:

Open - 開盤價 股市在早上開盤交易時,一股的價格是多少?High - 最高 在交易日的過程當中,那一天的最高價值是多少?Low - 最低 在交易日的過程當中,那一天的最低價值是多少?Close - 收盤價 當交易日結束時,最終價格是多少?Volume - 那一天,交易了多少股份?adj Close - 復權後價格 這一點稍微複雜一些,但隨着時間的推移,公司可能會決定作一些所謂的股票拆分。例如,蘋果一旦股價超過1000美圓就作了一次。因爲在大多數狀況下,人們沒法購買股票的一小部分,股票價格1,000美圓對投資者來講至關有限。公司能夠進行股票拆分,他們說每股份如今是2股,價格是一半。任何人在蘋果公司以每股1000美圓的價格將股票翻番的狀況下持有1股蘋果股份,他們將擁有2股蘋果公司(AAPL),每股價值500美圓。 Adj Close是有幫助的,由於它能夠解釋將來的股票分割,並給出分割的相對價格。出於這個緣由,調整後的價格是您最有可能處理的價格。

相關文章
相關標籤/搜索