Python は、コンピューター、生物学、金融など、さまざまな業界で広く使用されている言語です。 Python は子供を持たないこと以外は何でもできると言えます。この記事では、Python を使用して株式データを操作し、Python の威力を確認します。
使用ツール
python3.6Juypter ノートブック (対話型 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 行で、それぞれの始値、終値、最高値、最低値を確認できます。日価、取引量など
#次に、データの説明を見て、データを直感的に理解します。
alibaba.describe()
これはデータの統計の分析です。合計 789 行のデータがあり、最高値と最低値に大きな違いがないことがわかります。
履歴傾向分析
分析の前に、まず必要な 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')
途中で小さな変動はあるものの、終値全体としては上昇傾向にあり、アリババの時価総額が上昇していることがわかります。
それでは、アリババ株の日次収益率を見てみましょう。結局のところ、株式市場での利益は主に安く買って高く売ることによる利益に依存しています。 。
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')
日々の収益率は安定していません。これは株式市場が危険であり、慎重に扱う必要があることを証明しています。
実践的なヒント: 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 付近で安定しており、損益は対称的であることがわかります。
リスク分析
リスク分析では、インターネット業界のいくつかの大企業を比較して、その株式がどのようなものであるかを確認します。ここで選んだ 5 社は Apple、Google、Amazon、Microsoft、Facebook で、時期は 2015 年から 2017 年です。 (Baidu Netdisk の前のリンクから取得することもできます。)
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 つのデータです。
まずは、この5社を総合的に比較して、どこが強いのか見てみましょう。
top_tech_df.plot(kind = 'line') #折线图plt.title('five company adj close picture') plt.xlabel('Date') plt.ylabel('price') plt.legend() #添加图例
GoogleとAmazonの終値は他の3社よりも常に高いことがわかり、この2社もある程度の関連性があるようです。あなたが上がるなら、私も上がります。 、あなたが下がるなら私も下がります。
上の写真では、他の 3 社が着実に発展しているように見えますが、実際には、写真の規模が大きいため、比較的平坦です。 . 実際の状況は実際には次から次へと、大きな違いもあります. 変動、以下を確認してください。
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()
上記のことから、Google と Amazon の終値推移には類似性があることが分かりました。日次返品率を見てみましょう。
sns.jointplot("AMZN",'FB',top_tech_dr,kind='scatter',color = 'red',size=8) plt.title('joint with AMZN and FB')
Google と Amazon の利回りにも正の相関があるようで、これら 2 つの銘柄の動向を予測するための参照要素として使用できます。
以上がPython を株取引に使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。