[PYTHON] Prédire les cours des actions par une analyse Big Data à partir des données passées

Aujourd'hui, pour la première fois en 15 ans, la moyenne du Nikkei s'est temporairement rétablie au niveau de 19 000 yens [http://jp.reuters.com/article/topNews/idJPKBN0M80QN20150312), et on s'attend à ce qu'elle atteigne 20 000 yens d'ici la fin juin. Il y a des voix, mais en attendant, c'est une histoire d'analyse des actions par analyse big data (rires).

Hypothèse de marché efficace

Il existe une hypothèse de marché efficace dans le monde financier et il existe une théorie selon laquelle il est impossible de continuer à être plus performant que d'autres en utilisant n'importe quelle information. Je ne pense pas qu'il y ait quelque chose d'aussi mal compris ou interprété de manière commode.

Vous devriez lire cette section autour de Paradoxe d'hypothèse de marché efficace.

Penser normalement, par exemple, pourquoi les courtiers du secteur des valeurs mobilières et les gestionnaires de fonds peuvent garder leur emploi en service actif, pourquoi tout le monde imite Buffett et tout le monde ne devient pas riche, etc. Cela semble compréhensible.

Les avantages et les inconvénients sont [ici](http://wag-study-abroad.com/wordpress/blog/2010/10/23/%E3%80%90%E3%83%95%E3%82%A1%E3 % 82% A4% E3% 83% 8A% E3% 83% B3% E3% 82% B9% E3% 80% 91% E5% 8A% B9% E7% 8E% 87% E7% 9A% 84% E5% B8 % 82% E5% A0% B4% E4% BB% AE% E8% AA% AC% E3% 81% A8% E3% 81% 9D% E3% 81% AE% E5% 8F% 8D% E8% AB% 96 Si vous lisez /) (d'ailleurs, l'auteur est proche de l'idée du professeur Andrew Law), cela ne nie pas l'utilité de l'analyse technique de toute façon, mais c'est plutôt la base et extrêmement importante dans l'analyse du marché commercial. ..

Alors que tout le monde regarde les états financiers et effectue une analyse technique, il est possible de trouver des actions et des titres moins chers que le prix d'origine et de les vendre à un prix plus élevé que le prix d'origine. C'est ça? C'est très difficile car tout le monde est désespéré. Mais cela ne signifie pas que vous n'avez pas à vous pencher sur des indicateurs techniques.

C'est, à l'extrême, une histoire générale qui fonctionne dans les affaires, en essayant de se différencier en ayant quelque chose que les autres entreprises rivales n'ont pas comme force (ouvrir de nouveaux marchés), et progressivement toutes les entreprises feront de même. Il y a quelque chose qui mène à l'histoire que la concurrence est née ou s'intensifie (marchandise), et que la baisse des prix et l'épuisement attendent à la fin de l'intensification de la concurrence (Red Ocean), donc je pense que cela peut être généralisé.

En d'autres termes, la raison de l'analyse des données est de trouver et d'utiliser des matériaux pour faire la différence et gagner contre des rivaux.

Acquisition de données à analyser

Cela fait longtemps que le mot big data n'est pas devenu un mot à la mode, mais maintenant qu'il existe des sites comme Yahoo! Finance, il est facile de collecter des données sur les cours des actions passées. De plus, les performances des ordinateurs se sont améliorées, les langages statistiques gratuits (R, Python, etc.) peuvent être librement utilisés par n'importe qui, et les connaissances telles que les statistiques et l'apprentissage automatique sont également abondantes sur Internet, donc les données passées D'un autre côté, le seuil diminue et n'importe qui peut faire une analyse statistique pour connaître la tendance.

En fait, de plus en plus de gestionnaires de fonds et d'analystes actifs examinent les statistiques des données boursières des 15 dernières années, par exemple, pour savoir quel type de situation est susceptible de se produire dans quelle situation. Ça arrive. Ne pas enquêter sur les données historiques à une telle époque est ce qui nous distingue de nos rivaux.

Cependant, les indicateurs techniques et les statistiques ne sont pas absolus. Les indicateurs techniques ne clarifient la cible que numériquement et les humains n'ont d'autre choix que de réfléchir à la relation causale entre eux. Je pense que cette histoire est commune à l'histoire des statistiques selon laquelle il n'est pas toujours clair dans le monde réel quelle est la cause et quel est le résultat.

Obtenir des données sur les cours des actions au Japon avec Ruby J'ai écrit l'histoire avant, mais comme l'analyse est faite avec Python, Python et Ruby Faisons en sorte que les données soient acquises dans le même format.

L'exemple de code pour obtenir le cours de l'action est disponible sur ici. Si vous exécutez ceci avec le code boursier comme premier argument et la date (01/01/2015, etc.) comme deuxième argument, la trame de données de cours boursier sera enregistrée sous forme de fichier .csv au format suivant.


,Open,High,Low,Close,Volume,Adj Close
2015-03-11,2300.0,2329.0,2289.0,2299.0,106100.0,2299.0

Le plus important d'entre eux est Adj Close ([Cours de clôture ajusté](http://www.yahoo-help.jp/app/answers/detail/p/546/a_id/45316/~/%E8%AA%BF%E6%] 95% B4% E5% BE% 8C% E7% B5% 82% E5% 80% A4% E3% 81% A8% E3% 81% AF)). Étant donné que la continuité des séries chronologiques des cours de clôture est essentielle dans l'analyse des données de séries chronologiques, il s'agit d'un élément de données essentiel et important dans l'analyse des stocks, de sorte qu'il est dit que les outils qui ne produisent pas de prix de clôture ajustés ne peuvent pas être utilisés.

Principaux indicateurs d'analyse technique et de calcul par pandas

Avant de procéder à une analyse boursière, maintenons d'abord les indicateurs techniques de base.

Il existe de nombreux sites qui expliquent cela, mais si vous choisissez subjectivement, le site de Kabu.com Securities est facile à comprendre.

Partie 1 Explication systématique de nombreux indicateurs techniques http://kabu.com/investment/guide/technical/01.html

En gros, il existe des «indicateurs basés sur les tendances» pour saisir les tendances et des «indicateurs basés sur des oscillateurs» pour détecter des comportements différents des comportements habituels. Lequel auquel se référer dépend de la personne, et il sera affiché si vous utilisez les outils dans la rue, mais c'est une bonne idée de savoir quel nombre est dérivé par quelle base (= formule). Il vaut mieux le mettre. Si vous avez des doutes, vous devez être prêt à calculer et à vérifier par vous-même.

Pied de bougie et ligne moyenne mobile

J'ai écrit sur les chandeliers les plus représentatifs et les moyennes mobiles des indicateurs de tendance plus tôt comme Tableau du pied de salon et tracé de la ligne de moyenne mobile. Tracons les informations boursières de NTT Data, une société similaire à la nôtre.

stock_9613.png

Cette fois, j'ai tracé la moyenne mobile de lissage exponentiel en unités de 5, 25, 75 jours.

RSI(Relative Strength Index)

Ensuite, afin de détecter les changements de tendances, nous rechercherons le [RSI] le plus représentatif (http://kabu.com/investment/guide/technical/08.html) parmi les indicateurs basés sur les oscillateurs. La méthode de calcul est expliquée dans le lien, je vais donc l'omettre.

def calc_rsi(price, n=14):
    gain = (price - price.shift(1)).fillna(0)

    def rsiCalc(p):
        avgGain = p[p > 0].sum() / n
        avgLoss = -p[p < 0].sum() / n
        rs = avgGain / avgLoss
        return 100 - 100 / (1 + rs)

    return pd.rolling_apply(gain, n, rsiCalc)

rsi_9613.png

Ça ressemble à ça. Cet indicateur est généralement considéré comme surachat au-dessus de 70 et survendu en dessous de 30. Il sera plus facile de voir ces indicateurs si vous les combinez avec le graphique en chandeliers de base et utilisez Utiliser des sous-graphiques pour créer une structure à deux niveaux.

Trouvez la corrélation de mouvement entre le mouvement du prix d'une action et le cours moyen de l'action Nikkei

Jusqu'à présent, j'ai recherché des indicateurs techniques très représentatifs. Si vous souhaitez simplement les calculer et les afficher, vous pouvez facilement installer et utiliser de nombreux logiciels de stock utiles, etc. dans la rue.

Comme mentionné ci-dessus, ce qui est important, c'est la perspective d'analyser la cible sous différents angles dans une perspective que de nombreux investisseurs rivaux n'ont pas.

Par exemple, la moyenne du Nikkei a augmenté de 267 yens aujourd'hui, mais toutes les actions ne sont pas fortement corrélées à la moyenne du Nikkei. Par conséquent, vous vous demandez peut-être à quel point l'action qui vous intéresse est liée à la moyenne Nikkei. Pour étudier cela, calculons la corrélation de mouvement entre le taux d'augmentation et de diminution de chaque stock et la moyenne Nikkei.

def rolling_corr_with_N225(stock, window=5):
    d1 = pd.read_csv("".join(["stock_", stock, ".csv"]), index_col=0, parse_dates=True)
    d2 = pd.read_csv("stock_N225.csv", index_col=0, parse_dates=True)
    s1 = d1.asfreq('B')['Adj Close'].pct_change().dropna()
    s2 = d2.asfreq('B')['Adj Close'].pct_change().dropna()
    rolling_corr = pd.rolling_corr(s1, s2, window).dropna()

    return rolling_corr

Tout d'abord, trouvons et visualisons la corrélation de mouvement entre le cours de l'action de GungHo, qui est également connu pour avoir fait de grands progrès dans les jeux sociaux, et la moyenne Nikkei.

stock_3765.png

corr_3765.png

Plus il est proche de 1, plus il est corrélé, mais comme vous pouvez le voir, les marques de jeux sociaux n'ont pas une très forte corrélation avec la moyenne Nikkei.

D'autre part, dans le cas de NTT Data, veuillez essayer la même chose.

corr_9613.png

Je vois, cela semble avoir une corrélation élevée.

J'ai pu analyser un peu les caractéristiques de chaque marque.

Exemple de prévision de fluctuation du cours des actions par analyse Big Data

Ici, à titre d'étude de cas, je voudrais publier les prédictions et les résultats d'un analyste. Voici un exemple de Sumitomo Dainippon Pharma (4506) le lundi 9 mars.

[Dainippon Sumitomo Pharmaceutical: Formulaire graphique avec une baisse de prix totale de 5149,70% 4 057 fois en 15 ans](http://info.finance.yahoo.co.jp/kabuyoso/article/detail/20150309-00020455-minkabuy-stocks- 5078? Surbrillance =% E5% A4% A7% E6% 97% A5% E6% 9C% AC% E4% BD% 8F% E5% 8F% 8B)

Le vendredi 6 mars, le week-end dernier, le cours de l'action a augmenté de 12,49% en une journée et est passé au premier rang du taux de hausse. Ce jour-là, Nomura Securities a relevé le cours cible de l'action, la décision d'investissement de cette action étant la plus élevée.

Cet analyste semble être bon pour analyser les données boursières des 10 dernières années par une méthode statistique, mais comme vous pouvez le voir dans l'article lié ci-dessus, des graphiques similaires sont 2 517 sur 4 057 fois. Le prix a également chuté, et la probabilité que le cours de l'action a chuté pendant la journée était de 62,04%, j'ai donc considéré cela comme dangereux.

(Posté sur papier à 8h44, avant d'approcher le 9 mars)

En conséquence, le 9 mars, le prix initial a soudainement atteint un sommet de 1 600 yens, puis le cours de clôture est tombé à 1 488 yens, donc la prévision était une excellente réponse.

stock_4506.png

Analyser les tendances à partir des données passées de cette manière et prédire et deviner les mouvements de prix immédiats peut être considéré comme une analyse de données massives dans un sens.

De côté

Dans le secteur des valeurs mobilières, le «Big Bang japonais» prôné par le Premier ministre de l'époque Hashimoto en 1996, puis en 1999, la déréglementation a conduit à la libéralisation complète des frais de courtage. En particulier, avec la montée en puissance des titres en ligne avec cette libéralisation complète, les frais sont tombés au niveau le plus bas parmi les pays développés, et de nombreux investisseurs, y compris des particuliers, sont désormais courants dans le commerce en ligne.

Les ressources informatiques sont également devenues moins chères, et les logiciels d'analyse statistique, autrefois coûteux, peuvent désormais être remplacés par des langages de programmation que tout le monde peut utiliser gratuitement, tels que R et Python.

On dit souvent que vous avez votre propre style de gestion dans la gestion d'actifs, mais il existe un pilier sur lequel vous pouvez réfléchir lorsque vous n'êtes pas sûr de votre style de gestion. Dans un tel cas, l'analyse technique est très utile pour porter un jugement serein sans aller-retour sur place. Vous pouvez également éviter les erreurs inattendues en éliminant le jugement émotionnel et en regardant les chiffres calmement.

Bien sûr, l'analyse des données n'est pas une solution miracle qui empêche toute contingence, mais il n'y a aucune raison de ne pas analyser les données à une telle époque. Et je pense qu'il ne s'agit pas seulement d'analyser les stocks, mais aussi de formuler des stratégies de gestion et la même chose pour diverses entreprises.

Recommended Posts

Prédire les cours des actions par une analyse Big Data à partir des données passées
Première analyse de données satellitaires par Tellus
Préparez un environnement d'analyse haute vitesse en accédant à mysql depuis l'environnement d'analyse de données
Prédire les travaux de courte durée de Weekly Shonen Jump par apprentissage automatique (Partie 1: Analyse des données)
Acquisition de données chronologiques (quotidiennes) des cours des actions
[Python] Flux du scraping Web à l'analyse des données
Analyse émotionnelle des données de tweet à grande échelle par NLTK
Histoire de l'analyse de données par apprentissage automatique
J'ai essayé de prédire les courses de chevaux en faisant tout, de la collecte de données à l'apprentissage en profondeur