Maison >développement back-end >Tutoriel Python >Python peut-il être utilisé pour négocier des actions ?

Python peut-il être utilisé pour négocier des actions ?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-06-18 17:53:487908parcourir

Python est un langage largement utilisé dans divers secteurs, notamment l'informatique, la biologie et la finance. On peut dire que python peut tout faire sauf ne pas avoir d'enfants. Cet article utilisera Python pour jouer avec les données boursières et vous permettra de voir la puissance de Python.

Python peut-il être utilisé pour négocier des actions ?

Outils utilisés

python3.6Juypter notebook (IDE interactif, recommandé) numpy, pandas pour l'analyse des données matplotlib, seaborn pour les données visualisation pandas_datareader pour obtenir des données boursières

Acquisition de données

Nous pouvons obtenir des données boursières à partir de pandas_datareader. Vous devez d'abord installer cette bibliothèque

Recommandations associées : "Tutoriel vidéo Python"

pip install pandas
pip install pandas-datareader

Ensuite, vous pouvez accéder aux données

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

Ici, je Enregistrez d'abord les données sous forme de fichier CSV, examinons d'abord les données boursières d'Alibaba des années précédentes.

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

Ensuite, nous vérifions simplement les données boursières d'Alibaba

alibaba.head(n = 5)  #查看前5行数据

Voici les 5 premières lignes de données boursières. Nous pouvons voir le cours d'ouverture, le cours de clôture, la valeur la plus élevée et la valeur la plus basse de chaque jour. . valeur, volume des échanges, etc.

Python peut-il être utilisé pour négocier des actions ?

Regardez ensuite la description des données pour avoir une idée intuitive des données.

alibaba.describe()

Ceci est une analyse des statistiques des données. Vous pouvez voir qu'il y a un total de 789 lignes de données, et les valeurs les plus élevées et les plus basses ne sont pas très différentes.

Python peut-il être utilisé pour négocier des actions ?

Analyse des tendances historiques

Avant l'analyse, nous importons d'abord la bibliothèque de calcul scientifique Python requise.

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

Nous analysons dans un premier temps la tendance globale du cours de clôture du titre.

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

On peut voir que bien qu'il y ait de petites fluctuations au milieu, la tendance générale du cours de clôture est à la hausse, ce qui montre que la valeur marchande d'Alibaba a augmenté.

Python peut-il être utilisé pour négocier des actions ?

Jetons ensuite un coup d'œil au taux de rendement quotidien des actions d'Alibaba. Après tout, gagner de l'argent en bourse repose principalement sur les gains obtenus en achetant à bas prix et en vendant à un prix élevé. .

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')

Le taux de rendement quotidien n'est pas stable, ce qui prouve que le marché boursier est risqué et doit être traité avec prudence.

Python peut-il être utilisé pour négocier des actions ?

Conseil pratique : La fonction pct_change() compare chaque élément à son élément précédent et calcule le pourcentage de variation. Par défaut, pct_change() opère sur les colonnes ; si vous souhaitez l'appliquer sur les lignes, utilisez le paramètre axis = 1.

Utilisons des graphiques de densité et des histogrammes pour vérifier la situation globale des rendements quotidiens.

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])

Nous pouvons voir sur l'image que le taux de rendement global est fondamentalement stable à environ 0 et que le profit ou la perte est symétrique.

Python peut-il être utilisé pour négocier des actions ?

Analyse des risques

Dans l'analyse des risques, nous comparons plusieurs grandes entreprises du secteur Internet pour voir à quoi ressemblent leurs actions Quelle est la différence ? Les cinq entreprises que j'ai choisies ici sont Apple, Google, Amazon, Microsoft et Facebook, et la période s'étend de 2015 à 2017. (Vous pouvez également l'obtenir à partir du lien précédent dans Baidu Netdisk.)

Lisez le fichier top5.csv pour obtenir les données, triez-les par heure et affichez-les.

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)

Les données ici font référence au cours de clôture de l'action, qui sont les 5 premières données.

Python peut-il être utilisé pour négocier des actions ?

Tout d’abord, comparons de manière exhaustive ces 5 entreprises pour voir qui est la plus puissante.

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

Vous pouvez voir que les cours de clôture de Google et d'Amazon sont toujours plus élevés que ceux des trois autres sociétés, et ces deux sociétés semblent être quelque peu liées. Si vous montez, je monterai, et. si tu descends, je descendrai.

Python peut-il être utilisé pour négocier des actions ?

Dans l'image ci-dessus, nous pouvons voir que les trois autres sociétés semblent se développer régulièrement. En fait, en raison de la grande échelle de l'image, elle est relativement plate. . La situation réelle est en fait l'une après l'autre, et il y a aussi de grands changements, consultez-la ci-dessous.

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 peut-il être utilisé pour négocier des actions ?

De ce qui précède, nous avons appris qu'il existe une certaine similitude dans les changements de prix de clôture de Google et d'Amazon. Jetons un coup d'œil aux rendements quotidiens.

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

Les rendements de Google et d'Amazon semblent également positivement corrélés, ce qui peut servir de facteur de référence pour prédire l'évolution de ces deux valeurs.

Python peut-il être utilisé pour négocier des actions ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn