Voir dans le noir: Créer des corrélations de cartes cryptographiques avec Plot.ly

BlockforceCapital.com

Il fait noir, mais le prédateur peut voir. À la tombée de la nuit ou lorsque les corrélations du marché commencent à devenir opaques, notre AlphaPredator utilise ses corrélations de carte thermique interne entre les actifs numériques pour naviguer efficacement vers l'opportunité alpha la plus proche. Dans le Tech Corner d’aujourd’hui, nous vous expliquerons la théorie, les processus et le codage nécessaires pour générer vos propres graphiques de corrélation de cartes thermiques d’actifs numériques interactifs. Ensuite, vous pourrez vous aussi rejoindre le prédateur pour la prochaine chasse nocturne, si vous osez.

La pièce technique du Tech Corner d’aujourd’hui comprend deux ingrédients principaux: l’analyse de corrélation et les outils de Plot.ly. L'analyse de corrélation est utile dans diverses applications, indépendamment des marchés financiers. Avoir une image claire des corrélations entre les rendements des différents actifs peut permettre une meilleure évaluation du risque entre actifs, et donc une diversification plus large de la répartition du portefeuille. Plot.ly est un framework open source basé sur D3.js et WebGL, qui fournit des API pour de nombreux langages, notamment Python et JavaScript. Cela rend la création de graphiques élégants, interactifs et collaboratifs plus facile que jamais, tout en gardant un contrôle important sur le résultat final. Dans le didacticiel d’aujourd’hui, nous allons nous concentrer spécifiquement sur l’utilisation de Python 3.

Commençons maintenant par examiner le code nécessaire au traitement des données et au rendu de tracé pour créer des cartes thermiques de corrélation pour les retours de crypto-monnaie.

Les données

Les données proviennent de CoinAPI qui s'interface avec une variété d'échanges mondiaux. Pour extraire des données de CoinAPI, vous devez transmettre l'échange sur lequel vous souhaitez collecter des données et les symboles boursiers correspondants. Soyez prudent car vous devez savoir quels échanges négocient quelles paires de devises. Par exemple, Binance n'échange pas avec ou contre le dollar américain (USD), mais négocie USDCoin et USDTether. Coinbase, en revanche, négocie l'USD. Pour extraire des données à l'aide de CoinAPI, suivez l'exemple de la documentation trouvée ici. Les données nécessaires à la création des tracés de corrélation consisteront en un horodatage ou une étiquette de date, un prix (ou une autre valeur numérique si vous recherchez autre chose que des corrélations de retour) et un nom (en finance, le nom de l'actif).

Code

Le code qui génère les tracés utilise l’API Python de Plotly et les rend dans un Jupyter Notebook - une plate-forme Web de programmation interactive. Il peut être modifié pour enregistrer les parcelles dans un fichier ou les héberger sur les serveurs de Plotly. Pour plus d'informations à ce sujet, lisez ici.

Exigences

Les choses dont vous aurez besoin incluent

  • Python 3.x
  • Plotly API Python v. 3.6.1
  • Pandas v. 0.23.4
  • Numpy v. 0.16.1

Vos déclarations d'importation doivent ressembler à ceci:

Calcul de la corrélation de retour

La corrélation est définie comme la force de la relation linéaire entre deux variables. Un coefficient de corrélation plus proche de r = 1 indique que lorsqu'une variable change, l'autre variable change dans le même sens (positif ou négatif) du même montant. Une idée similaire s'applique lorsque le coefficient de corrélation s'approche de r = -1, mais dans ce cas, les variables ont une corrélation inverse presque parfaite, ce qui signifie qu'un changement dans une variable entraîne un changement opposé dans l'autre.

Les rendements sont calculés en tant que pourcentage de variation de la valeur de l'actif. Ci-dessous, nous calculons les rendements des actifs, puis leurs corrélations:

En fonction de la durée souhaitée de la fenêtre sur laquelle calculer la corrélation, l'entrée de rolling () doit être ajustée. Dans le monde financier, il est courant d'utiliser une corrélation de trois ou six mois. Nous abandonnons ensuite les valeurs nulles qui apparaissent lorsqu'un actif ne dispose pas de suffisamment d’historique pour montrer une corrélation. Pour une corrélation de trois mois, cela correspond à toutes les dates jusqu'au troisième mois à partir du moment où nous avons le premier point de données.

Vous devriez maintenant avoir un DataFrame où les colonnes sont des actifs et les lignes des matrices de corrélation étiquetées par date.

Carte de chaleur

Obtenez la matrice de corrélation que vous souhaitez tracer et le texte pour définir des valeurs personnalisées en survol

Définissez la mise en page de la carte thermique, y compris le logo personnalisé, le titre et une annotation personnalisée. Pour en savoir plus sur la mise en page Plotly, les annotations ou l'ajout de logos, cliquez ici.

Définissez une configuration personnalisée pour le tracé (pour des informations plus détaillées sur cette vérification ici). Cela permet au développeur de définir les actions interactives qu'un utilisateur peut effectuer, y compris les boutons apparaissant sur le graphique et la manière dont une capture d'écran est enregistrée.

Ensuite, pour créer la figure Heatmap Plotly dans votre carnet Jupyter, définissez l’objet Représentation Plotly et appelez la fonction plot ().

Pour définir une échelle de couleurs personnalisée, vous pouvez également transmettre un code hexadécimal en tant que paramètre color-scale à l'appel go.Heatmap (). En savoir plus sur les échelles de couleurs personnalisées ici.

Résultat

La carte thermique finale

Cliquez ici pour voir la version la plus récente de cette parcelle, mise à jour quotidiennement et téléchargeable en haute résolution.

Plotly dans le Web

Il existe un certain nombre de façons de rendre Plotly des graphiques sur le Web, lorsque le public cible peut pleinement profiter de la puissance interactive de ces graphiques. Plotly fournit ce qu'ils appellent un studio graphique où tous vos graphiques Plotly peuvent vivre sur le Web. Pour ajouter ces graphiques à votre site Web, intégrez simplement le code HTML fourni par Plotly. Si vous utilisez votre propre back-end, avec Flask par exemple, le code Javascript de Plotly et l’API Python s’intègrent parfaitement pour vous aider à déployer vos graphiques sur le Web. Vous pouvez suivre cet exemple développé par Plotly.

Conclusion

Dans ces espaces d'actifs numériques naissants et fracturés, il y a beaucoup de rochers et de crevasses qui cherchent à vous trébucher et à vous prendre le long du chemin. Plus nous pouvons voir clairement, à travers les différents spectres de la vue, mieux ce sera. Avoir une plate-forme qui permet de rendre les visualisations interactives sans trop de code est précieux. Même si le processus est simple, la quantité de personnalisation possible est impressionnante et dépend toujours de la qualité des données disponibles. Le traçage des corrélations est un outil analytique utile pour de nombreuses applications. L'utilisation de Plotly permet d'élever de tels outils pour les applications internes et celles destinées aux clients. Nous avons hâte de vous voir à notre prochain atelier Tech Corner et, si vous ne l'avez pas déjà fait, abonnez-vous ci-dessous.

Blockforce Capital ne recommande pas que les informations présentées aux présentes servent de base à toute décision d'investissement. Les informations sont données sous forme de résumé et ne prétendent pas être complètes. Le présent document a pour seul objectif d'informer et ne constitue en aucun cas une offre ou une sollicitation d'achat ou de vente de titres, d'autres investissements ou de services, ni d'attirer des fonds ou des dépôts.