首頁 > 後端開發 > Python教學 > python可以用來炒股嗎

python可以用來炒股嗎

爱喝马黛茶的安东尼
發布: 2019-06-18 17:53:48
原創
7931 人瀏覽過

Python是一門廣泛在各行業應用的語言,包括計算機,生物學,金融。可以說,python除了不會生孩子,其他啥都行。本文將使用python來玩股票數據,讓你見識Python的強大。

python可以用來炒股嗎

所使用的工具

python3.6Juypter notebook(互動式IDE,推薦使用)numpy,pandas用於資料分析matplotlib,seaborn用於資料視覺化pandas_datareader用於取得股票資料

#資料取得

我們可以從pandas_datareader取得股票資料。首先需要安裝這個庫

相關推薦:《python影片教學

pip install pandas
pip install pandas-datareader
登入後複製

然後就可以存取資料了

from pandas_datareader.data import DataReader
datas = DataReader(name='BABA', data_source='yahoo', start='2015-01-01', end='2018-01-01')
登入後複製

在這裡,我首先把數據存為了csv文件,讓我們先來看看阿里巴巴前幾年的股票數據吧。

import pandas as pd 
file = 'BABA.csv'   #csv文件index = 'Date'      #将日期作为索引列alibaba = pd.read_csv(file, index_col=index)    #读取csv文件数据
登入後複製

然後我們簡單的查看一下阿里巴巴的股票數據

alibaba.head(n = 5)  #查看前5行数据
登入後複製

下面是股票數據的前5行,我們可以看到每天的開盤價,收盤價,最高值,最低值,成交量等。

python可以用來炒股嗎

然後再查看這些資料的描述,取得對資料的直覺感受。

alibaba.describe()
登入後複製

這是對數據的統計量的一些分析,可以看到總共有789行數據,最高值和最低值相差不大。

python可以用來炒股嗎

歷史趨勢分析

在分析之前,我們先導入所需的Python科學計算函式庫。

# 数据分析
import numpy as np
import pandas as pd
from pandas import Series, DataFrame# 可视化
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
登入後複製

我們首先分析股票的閉盤價的整體趨勢。

alibaba['Adj Close'].plot(legend = True)
plt.title('Alibaba Adj Close')
plt.ylim([50,200])
plt.xlabel('Date')
plt.ylabel('Price')
登入後複製

可以看到,雖然中間也有小小的波動,閉盤價總體趨勢是上升的,這表明阿里巴巴的市值一直在上升。

python可以用來炒股嗎

然後我們了解每天阿里巴巴股票的日收益率,畢竟,在股市賺錢,主要靠的就是低買高賣得到的收益。

size = (10,8)
alibaba['daily-return'].plot(figsize = size,linestyle = '--',marker = 'o') #折线图,原点表示最大最小点plt.title('Alibaba daily return')
plt.xlabel('Date')
plt.ylabel('daily return rate')
登入後複製

每天的收益率不是穩定的,證明股市有風險,需要謹慎對待。

python可以用來炒股嗎

實用小知識:pct_change()函數將每個元素與其前一個元素進行比較,並計算變化百分比。預設情況下,pct_change()對列進行操作; 如果想應用到行上,那麼可使用axis = 1參數。

我們再使用密度圖和直方圖來看看日收益率的整體狀況。

data = alibaba['daily-return'].dropna() #清除异常值bins = 50 #分为50个区间#在同一张图上画出分布直方图和密度图sns.distplot(data, bins  = bins, color = 'red',hist = True, kde = True)
plt.title('Alibaba daily return distribution')
plt.xlabel('daily-return')
plt.ylabel('probablity')
plt.xlim([-0.05,0.1])
登入後複製

從圖中我們可以看出,整體報酬率基本上穩定在0左右,盈或損是對稱的。

python可以用來炒股嗎

風險分析

在風險分析裡,我們比較幾家網路產業的大公司,看看它們的股票有什麼差異,這裡我選的5家公司是蘋果,Google,亞馬遜,微軟,Facebook,時間是2015年到2017年。 (大家也可以從前面的百度網盤裡面的連結取得哦。)

讀取top5.csv檔案取得數據,按時間進行排序,並進行查看。

file = "top5.csv"index = 'Date'top_tech_df = pd.read_csv(file,index_col = index)  #读取数据
top_tech_df=top_tech_df.sort_index()    #按索引,也就是时间排序
top_tech_df.head(n = 5)
登入後複製

這裡的數據指的是股票的閉盤價,這是前5條數據。

python可以用來炒股嗎

先綜合比對一下這5家公司,看看誰更厲害。

top_tech_df.plot(kind = 'line')      #折线图plt.title('five company adj close picture')
plt.xlabel('Date')
plt.ylabel('price')
plt.legend()     #添加图例
登入後複製

可以看到Google和亞馬遜,閉盤價始終高於其他三家公司,而這兩家也是似乎有點關係,你升我也升,你降我也降。

python可以用來炒股嗎

上面圖中看到其他三家貌似是平穩發展的,其實由於圖的比例太大,導致相對平穩,真實的情況其實是此起彼伏,也有很大波動,下面查看一下。

another_company = ['AAPL','FB','MSFT']
top_tech_df[another_company].plot()
plt.title('another company adj close picture')
plt.xlabel('Date')
plt.ylabel('price')
plt.legend()
登入後複製

python可以用來炒股嗎

從上面了解到Google和亞馬遜的閉盤價變化有著某種相似性,我們再來看看日收益率。

sns.jointplot("AMZN",'FB',top_tech_dr,kind='scatter',color = 'red',size=8)
plt.title('joint with AMZN and FB')
登入後複製

Google和亞馬遜的殖利率也好像是正相關的,這可以作為預測這兩家股票發展的一個參考因素。

python可以用來炒股嗎

以上是python可以用來炒股嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板