python分析股票数据_Python股票分析系列——系列介绍和获取股票数据.p1
本系列轉載自youtuber sentdex博主的教程視頻內容
https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ
手工翻譯,有任何疑問可以在下方留言,我盡力回答~
該系列視頻已經搬運至bilibili: 點擊查看
漢化版視頻:點擊查看
正確的食用方法:文章大部分為機翻,修正了一些有明顯不通順的地方,能讀懂大致意思即可,代碼是最重要的,代碼量不多很容易看懂
學習該系列您需要有:
1. Python基礎知識
2. 安裝 numpy/matplotlib/pandas/pandas-datareader/beatifulsoup4/sklearn
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是有幫助的,因為它可以解釋未來的股票分割,并給出分割的相對價格。出于這個原因,調整后的價格是您最有可能處理的價格。
總結
以上是生活随笔為你收集整理的python分析股票数据_Python股票分析系列——系列介绍和获取股票数据.p1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 位数问题1
- 下一篇: 一名即将退休的架构师告诉Java程序员们