[PYTHON] Prédire les variations du cours des actions à l'aide de l'étiquetage métallique et de l'apprentissage automatique en deux étapes

1 Et cet article?

Le chapitre 3 de Advanced in Financial Machine Learning présente une méthode d'apprentissage automatique en deux étapes qui introduit la méthode de la triple barrière et le Metalabel, et les données actuelles sur le cours de l'action sont le seuil de la triple barrière dans le délai imparti. Il introduit une méthode pour prédire si la limite supérieure est dépassée, si la limite inférieure du seuil de la triple barrière est dépassée ou si les limites supérieure et inférieure du seuil de la triple barrière sont atteintes. Voici un exemple d'application de cette méthode à Bitcoin pour améliorer le score F1 (Financial Machine Learning Part 1: Labels) ). Comme le concept lui-même est encore difficile, j'ai écrit un article qui expliquait en mâchant (Financial Machine Learning Part 1: Labels). J'aimerais.

Article de référence </ b> ・ Amélioration de la métrix de performance par un modèle d'apprentissage en 2 étapesFinancial Machine Learning, partie 1: étiquettes

2 Que voulez-vous faire?

① Le cours actuel de l'action dépasse-t-il la limite supérieure du seuil? </ B> ② Est-il inférieur à la limite inférieure du seuil? </ B> ③ Se déplace-t-il dans les limites supérieure et inférieure du seuil? Je veux prédire </ b>. Il ne prédit pas le cours futur de l'action en lui-même, mais (1) dépassera-t-il la limite supérieure du seuil, (2) tombera-t-il en dessous de la limite inférieure du seuil et (3) restera-t-il dans les limites supérieure et inférieure du seuil? Je veux prédire lequel des trois cas sera.

119.JPG

3 Comment faites-vous cela?

3-1 Utiliser l'apprentissage automatique en 2 étapes

1er apprentissage automatique des données d'entraînement enregistrant le mouvement de prix des pièces de monnaie dans Triple-Barrier (la limite supérieure du seuil de la Triple-Barrière a été atteinte, la limite inférieure du seuil a été atteinte et elle est tombée dans la Triple-Barrière) à partir de tout moment. Saisie du modèle (régression logistique) et formation du 1er modèle d'apprentissage automatique. Entraînez le deuxième modèle d'apprentissage automatique à l'aide de la sortie du premier modèle d'apprentissage automatique et des données d'entraînement.

3-2 Quels sont les avantages de l'apprentissage automatique en 2 étapes?

La précision peut être améliorée en utilisant un modèle d'apprentissage automatique en deux étapes.

128.JPG

4 Qu'avez-vous fait?

4 décembre 2018 → Nous avons pu améliorer la précision des données de prix Bitcoin à partir du 9 décembre 2018 en appliquant le «modèle d'apprentissage automatique en deux étapes».

● 4 décembre 2018 → Prix Bitcoin le 9 décembre 2018 129.JPG

● La précision et le score F1 pourraient être améliorés en appliquant le "modèle d'apprentissage automatique en deux étapes". (La précision des prévisions s'est améliorée.) </ B> En d'autres termes, en appliquant le "modèle d'apprentissage automatique en deux étapes"

[TN] </ b> Prédiction que le prix changera dans la triple barrière → Prédiction qu'il changera réellement dans la triple barrière [TP] </ b> Augmentation de prix prévue → Augmentation de prix réelle [TP] </ b> Prédit que le prix va baisser → Le prix a en fait baissé. J'ai pu améliorer la fréquence de. 127.JPG

Les données d'entraînement et les données de test ont été entrées dans le modèle d'apprentissage automatique entraîné et la matrice de confusion a été calculée. TP (True Positive) est un modèle de profit, FP (False Positive) est un modèle de réduction des pertes, TN (True Negative), FN (False Negative) est un modèle qui ne fait rien, donc le nombre de TP augmente et le nombre de FP On peut dire qu'il est préférable de réduire.

130.JPG

En fait, le 2ème modèle est comparé au 1er modèle ・ Dans les données d'entraînement ... TP est amélioré et FP est diminué, donc la probabilité de profit s'améliore. La précision et le score F1 sont également améliorés. ・ Dans les données de test ... TP a diminué, FP a diminué. Depuis que la précision et le score F1 se sont améliorés, la probabilité que la prédiction par le modèle d'apprentissage automatique soit correcte a augmenté, mais depuis que TP a diminué et FP a diminué, ce qui peut faire un profit dépend de la situation. (Doit-on évaluer que la probabilité de réduction des pertes diminue)

131.JPG

5 Résumé

  • Un modèle d'apprentissage automatique en deux étapes a été appliqué pour prédire les futurs mouvements de prix du Bitcoin.
  • La précision et le score F1 pourraient être améliorés en appliquant le "modèle d'apprentissage automatique en deux étapes". (La précision des prévisions s'est améliorée.) </ B> «Le« modèle d'apprentissage automatique en deux étapes »est préférable au« modèle d'apprentissage automatique en une étape »car la probabilité de profit est améliorée et la probabilité de réduction des pertes est réduite dans les données d'apprentissage. --Cependant, lorsqu'il est appliqué aux données de test, le "modèle d'apprentissage automatique en deux étapes" a une probabilité de profit et une probabilité de réduction des pertes plus faibles que le "modèle d'apprentissage automatique en une étape", donc le "modèle d'apprentissage automatique en deux étapes" et la "machine en une étape" Lequel des «modèles d'apprentissage» peut être rentable dépend de la situation. Cependant, la probabilité de perdre de l'argent diminue

6 Publication du code

Le code Jupyter qui a implémenté ce qui précède a été téléchargé ci-dessous.

https://github.com/fdfpy/studyresult/tree/master/3-5

6-1 Calcul de l'écart type du revenu journalier (préparation)

Calculez l'écart type du revenu quotidien en fonction du débit indiqué dans la figure ci-dessous. 120.JPG

6-2 Méthode d'attribution des étiquettes

Soit volstd ($ t_ {i} $) l'écart type du revenu quotidien au temps $ t_ {i} $. Aussi, laissez le cours de l'action au temps $ t_ {i} $ être $ c [t_ {i}] . Définissez une triple barrière. (Dans la figure ci-dessous, le seuil de limite supérieure Vthu = volstd ( t_ {i} ), le seuil de limite inférieure Vthd = -volstd ( t_ {i} $) ,, le délai est de 15 minutes.) Calculez $ vol = c [t] / c [t_ {i}] - 1 $. Label = 0, -1,1 est attribué comme suit.

\begin{eqnarray}
Label
=
\begin{cases}
1 & ( vol \geqq Vthu ) \\
0 & ( Vthd \lt b \lt Vthu ) \\
-1 & (vol \lt Vthd)
\end{cases}
\end{eqnarray}

121.JPG

6-3 Définition de l'allocation à la matrice de confusion

Affectez à la matrice de confusion selon la figure ci-dessous.

123.JPG

6-4 Formation et application du 1er modèle

124.JPG

6-5 Formation et application du 2ème modèle

125.JPG

Recommended Posts