TA-Lib est une bibliothèque de calcul d'indicateurs typiques dans l'analyse technique lors de la collecte et de l'analyse de données financières avec Python. Comme je l'ai écrit dans Précédent, lors de l'analyse des données boursières quotidiennes (= prix d'ouverture quotidien, prix élevé, etc.) avec des pandas, divers types Il est plus pratique et sûr d'utiliser une bibliothèque que de tout mettre en œuvre par vous-même pour calculer divers indicateurs.
TA-Lib http://ta-lib.org/
Pour utiliser ce TA-Lib avec Python, des liaisons pour Python sont fournies.
Comment installer http://mrjbq7.github.io/ta-lib/install.html
C'est facile à installer, téléchargez simplement l'archive tar source et effectuez l'installation. Dans le lien ci-dessus, --prefix = / usr est utilisé, mais en considérant FHS, --prefix = / usr / local est meilleur.
VERSION=0.4.0
FILENAME=ta-lib-$VERSION-src.tar.gz
curl -L http://prdownloads.sourceforge.net/ta-lib/$FILENAME -O
tar xzvf $FILENAME
cd ta-lib
./configure --prefix=/usr/local
make
sudo make install
Les liaisons Python peuvent être incluses avec easy_install au moment de la rédaction.
easy_install TA-Lib
Si eazy_install réussit, importez depuis IPython et assurez-vous que vous pouvez utiliser les fonctions commençant par ta.
Vous pouvez voir la liste des fonctions et comment les utiliser sur le site GitHub ci-dessus, mais pour expliquer brièvement
import talib as ta
ta.get_function_groups
Ensuite, vous pouvez voir chaque fonction et le groupe pour chaque fonction.
Comme je l'ai écrit dans Précédent, si vous récupérez les données sur les cours des actions de Yahoo! Finance, vous pouvez calculer librement à l'aide de TA-Lib. Cependant, cela peut être un problème si vous essayez de traiter trop de données au-delà du grattage. Il y a des frais, mais vous pouvez également télécharger des données chronologiques à partir du Yahoo! Finance VIP Club, afin de pouvoir télécharger les données selon vos besoins. Vous pouvez également l'acheter.
Après avoir préparé les données, gérons-les en utilisant IPython.
filename = 'stock_N225.csv' #Données du cours moyen de l'action Nikkei
df = pd.read_csv(filename,
index_col=0, parse_dates=True)
closed = df.asfreq('B')['Adj Close'].dropna() #Extraire le cours de clôture ajusté
prices = np.array(stock, dtype='f8') #Conservez-le dans un tableau NumPy avec des nombres à virgule flottante
#Trouvez la moyenne mobile simple sur 5 jours
sma5 = ta.SMA(prices, timeperiod=5)
# RSI (14e)Cherchant
rsi14 = ta.RSI(prices, timeperiod=14)
# MACD (Moyenne mobile sur 12 jours, moyenne mobile sur 26 jours en retard, ligne de signal sur 9 jours)Cherchant
macd, macdsignal, macdhist = ta.MACD(prices,
fastperiod=12, slowperiod=26, signalperiod=9)
Eh bien, vous pouvez calculer tous les indicateurs techniques implémentés dans TA-Lib comme celui-ci.
Il est difficile d'imaginer s'il ne s'agit que de valeurs numériques, alors essayons un peu de traçage. Avec la combinaison familière de pandas + matplotlib et talib, vous pouvez tracer des graphiques de la même manière que ce que l'on appelle un logiciel de stock.
Tout d'abord, traçons le graphique journalier, l'EWMA (moyenne mobile pondérée par l'indice) et la bande de Bollinger à partir du cours moyen de l'action Nikkei des 180 derniers jours.
Comme vous pouvez le voir, l'écart par rapport à la moyenne mobile sur 25 jours est un certain soutien, et l'écart type + ligne 2σ est le prix supérieur.
Ensuite, jetons un coup d'œil à DeNA, qui est devenue un sujet brûlant pendant deux jours consécutifs en raison du partenariat avec Nintendo. Cette fois, c'est un complot des 90 derniers jours.
En regardant l'indice de l'oscillateur, vous pouvez voir que le marché est étonnamment haussier.
De plus, quand il s'agit de graphiques comme celui-ci, divers experts boursiers sortent et c'est difficile, mais l'auteur n'est pas un expert boursier, mais des données du point de vue de l'analyse des données par l'informatique et des statistiques / apprentissage automatique. Je le regarde.
Si vous adoptez une approche d'un point de vue statistique, on peut dire qu'il est légitime d'adopter une approche telle que la quantification des changements dans les données et la prédiction de la façon dont ils changeront par rapport aux données passées.
Il y a une distorsion dans la cognition humaine. Je l'achète parce que je pense qu'il va augmenter, et je le vends parce que je pense qu'il va baisser, alors j'ai tendance à prendre des décisions biaisées.
L'analyse technique n'est pas universelle, bien sûr, mais elle peut aider à éliminer ces biais et à prendre des décisions mécaniques.
Maintenant, lorsque certaines actions augmentent, vous pouvez rechercher et acheter d'autres actions avec des prix de marché similaires à partir de toutes les actions du TSE en fonction de ces indicateurs techniques. La recherche du prochain titre à la hausse tout en recherchant des objectifs d'investissement dans d'autres secteurs dans un marché aussi en hausse s'appelle couleur circulaire. .. En d'autres termes, les actions qui ont assuré des bénéfices sont déjà suffisamment élevées, nous recherchons donc la prochaine cible, pensant qu'une autre action pourrait augmenter cette fois.
Lorsque vous souhaitez vendre l'action que vous détenez actuellement et investir de l'argent neuf dans d'autres actions importantes comme celle-ci, il faudrait énormément de temps et de travail pour étudier le marché un par un. On peut seulement dire que c'est une personne de loisir de faire une telle chose à chaque fois. Par conséquent, étant donné que les ordinateurs ont été développés et que n'importe qui peut facilement utiliser pleinement l'informatique et les mathématiques, j'essaierai la couleur de circulation par apprentissage automatique.
Premièrement, en tant que données sur les enseignants, nous allons sélectionner plusieurs actions dans des industries qui ont déjà réalisé des bénéfices et générer une base de données. Cela dépend du type de point de vue que vous souhaitez créer ici, mais cette fois, je vais simplement prendre l'élan des données de la série chronologique à titre d'exemple.
import os
import pandas as pd
import numpy as np
from sklearn import svm
def read_from_csv(stock, filename):
if os.path.exists(filename):
return pd.read_csv(filename,
index_col=0, parse_dates=True)
def read_txt(filename):
stocks = pd.read_csv(filename, header=None)
data = pd.DataFrame([])
for s in stocks.values:
stock = str(s[0])
csvfile = "".join(['ti_', stock, '.csv'])
df = read_from_csv(stock, csvfile).asfreq('B')[-30:]
data[stock] = df.ix[:,'mom25']
print(data.T.tail(10))
return data.T
data = read_txt('stocks.txt')
Cela créera une base de données avec le code boursier et l'élan quotidien. Convertissons cela en une liste multiple avec un élan de série chronologique pour chaque code de problème à l'avance. C'est boueux, je vais donc l'omettre.
En ce qui concerne l’histoire de l’apprentissage automatique, un exemple de classement des notes des élèves en groupes et de classement des élèves pour toute l’année en fonction de cela J'ai écrit. En appliquant cela, le classificateur de machine à vecteur de support qui a appris les données des enseignants ci-dessus classe les données passées de tous les stocks cotés à la première section de la Bourse de Tokyo.
from sklearn.cluster import KMeans
from sklearn import svm
kmeans_model = KMeans(n_clusters=100, random_state=100).fit(train_X)
labels = kmeans_model.labels_
clf = svm.SVC(kernel='rbf', C=1) #Support par le noyau RBF Utiliser la machine vectorielle comme classificateur
clf.fit(train_X, labels) #Apprentissage
results = clf.predict(test_X) #Classification
Il est maintenant possible d'extraire mécaniquement des stocks avec une dynamique similaire.
Quiconque utilise pleinement l'informatique et les mathématiques sera en mesure d'analyser des données financières telles que Quants et d'investir réellement pour réaliser un profit. L'analyse des données n'a pas de sens et est futile sans but, mais je pense que le calcul serait gratifiant si, par exemple, il avait un but clair pour aider à l'investissement. Veuillez noter que cet article n'encourage pas les lecteurs à investir.
C'est la fin de l'analyse des données boursières, et j'aimerais en savoir plus sur l'apprentissage automatique qui est apparu dans la seconde moitié de cette période à partir de la prochaine fois.
Recommended Posts