Backtester les stratégies de trading avec la rétention à long terme d'Amazon Kinesis Data Streams et Amazon SageMaker

Nœud source: 1883045

Les informations en temps réel sont essentielles lorsqu'il s'agit d'élaborer des stratégies de trading. Tout retard dans l'analyse des données peut coûter cher aux commerçants. Souvent, vous devez examiner les tendances historiques du marché pour prédire les futurs modèles de négociation et faire la bonne offre. Plus vous analysez de données historiques, plus vous obtenez de meilleures prévisions de trading. Le suivi des données en continu peut être délicat car il nécessite des mécanismes de stockage et d'analyse sophistiqués.

Flux de données Amazon Kinesis permet à nos clients de stocker des données de streaming jusqu'à un an. Rétention à long terme des flux de données Amazon Kinesis (LTR) des données de streaming permet d'utiliser la même plate-forme pour les données en temps réel et plus anciennes conservées dans Amazon Kinesis Data Streams. Par exemple, on peut former des algorithmes d'apprentissage automatique pour les transactions financières, la personnalisation marketing et les modèles de recommandation sans déplacer les données dans un magasin de données différent ou écrire une nouvelle application. Les clients peuvent également satisfaire à certaines réglementations en matière de conservation des données, notamment en vertu de HIPAA et FedRAMP, en utilisant la conservation à long terme. Cela simplifie ainsi l'architecture d'ingestion de données pour notre cas d'utilisation de trading dont nous parlerons dans cet article.

Dans la poste Élaboration de stratégies de trading algorithmique avec Amazon SageMaker, nous avons montré comment backtester des stratégies de trading avec Amazon Sage Maker avec des données historiques sur le cours des actions stockées dans Service de stockage simple Amazon (Amazon S3). Dans cet article, nous développons cette solution pour le streaming de données et décrivons comment utiliser Amazon Kinésis.

De plus, nous voulons utiliser Réglage automatique d'Amazon SageMaker pour trouver la configuration optimale pour une stratégie de croisement de moyenne mobile. Dans cette stratégie, deux moyennes mobiles pour une période de temps lente et rapide sont calculées, et une transaction est exécutée lorsqu'un croisement se produit. Si la moyenne mobile rapide passe au-dessus de la moyenne mobile lente, la stratégie place une transaction longue, sinon la stratégie devient courte. Nous trouvons la durée de période optimale pour ces moyennes mobiles en exécutant plusieurs backtests avec des longueurs différentes sur un ensemble de données historiques.

Enfin, nous exécutons la configuration optimale pour cette stratégie de croisement de moyenne mobile sur un ensemble de données de test différent et analysons les résultats de performance. Si la performance mesurée en profits et pertes (P&L) est positive pour la période de test, on peut considérer cette stratégie de trading comme un test à terme.

Pour vous montrer à quel point il est facile et rapide de démarrer sur AWS, nous fournissons un déploiement en un clic pour une solution extensible de backtesting commercial qui utilise la rétention à long terme Kinesis pour les données en continu.

Vue d'ensemble de la solution

Nous utilisons Kinesis Data Streams pour stocker le streaming en temps réel ainsi que les données historiques du marché. Nous utilisons les notebooks Jupyter comme interface centrale pour explorer et tester de nouvelles stratégies de trading. SageMaker vous permet de configurer des notebooks Jupyter et de les intégrer à Code AWSCommit pour stocker différentes versions de stratégies et les partager avec d'autres membres de l'équipe.

Nous utilisons Amazon S3 pour stocker les artefacts de modèle et les résultats des backtests.

Pour nos stratégies de trading, nous créons des conteneurs Docker qui contiennent les bibliothèques requises pour le backtesting et la stratégie elle-même. Ces conteneurs suivent la structure de conteneur SageMaker Docker afin de les exécuter à l'intérieur de SageMaker. Pour plus d'informations sur la structure des conteneurs SageMaker, voir Utilisation des kits d'outils de formation et d'inférence SageMaker.

Le diagramme suivant illustre cette architecture.

Nous exécutons l'étape de préparation des données à partir d'un notebook SageMaker. Cela copie les données historiques du marché dans le compartiment S3.

Nous utilisons Service de migration de données AWS (AWS DMS) pour charger les données du marché dans le flux de données. le

Le bloc-notes SageMaker se connecte à Kinesis Data Streams et exécute l'algorithme de stratégie de négociation via une tâche de formation SageMaker. L'algorithme utilise une partie des données pour la formation afin de trouver la configuration de stratégie optimale.

Enfin, nous exécutons la stratégie de trading en utilisant la configuration précédemment déterminée sur un jeu de données de test.

Pré-requis

Avant de commencer, nous avons mis en place nos ressources. Dans cet article, nous utilisons le us-east-2 Région par exemple.

  1. Déployez les ressources AWS à l'aide du AWS CloudFormation modèle.
  2. Pour Nom de la pile, entrez un nom pour votre pile.
  3. Fournissez un nom de compartiment S3 existant pour stocker les données de marché historiques.

Les données sont chargées dans Kinesis Data Streams à partir de ce compartiment S3. Votre compartiment doit être dans la même région où votre pile est configurée.

  1. Acceptez toutes les valeurs par défaut et choisissez Suivant.
  2. Reconnaître qu'AWS CloudFormation peut créer Gestion des identités et des accès AWS (IAM) ressources avec des noms personnalisés.
  3. Selectionnez Créer une pile.

Cela crée toutes les ressources nécessaires.

Chargement de données vers Kinesis Data Streams

Pour effectuer le chargement des données, procédez comme suit :

  1. Sur la console SageMaker, sous Cahier dans le volet de navigation, choisissez Instances de bloc-notes.
  2. Localiser l'instance de bloc-notes AlgorithmicTradingInstance-*.
  3. Selectionnez Ouvrez Jupyter pour cette instance.
  4. Allez à algorithmic-trading->4_Kinesis dossier et choisissez Strategy_Kinesis_EMA_HPO.pynb.

Vous exécutez maintenant l'étape de préparation des données dans le bloc-notes.

  1. Chargez l'ensemble de données.

Spécifiez le bucket existant dans lequel les données de test sont stockées. Assurez-vous que le bucket de test se trouve dans la même région que celle où vous avez configuré la pile.

  1. Exécutez toutes les étapes du notebook jusqu'à ce que Étape 2 Préparation des données.
  2. Sur la console AWS DMS, choisissez Tâches de migration de base de données.
  3. Sélectionnez la tâche AWS DMS dmsreplicationtask-*.
  4. Sur le Actions menu, choisissez Redémarrer/Reprendre.

Cela démarre le chargement des données du compartiment S3 vers le flux de données.

Attendez que la tâche de réplication affiche l'état Load complete.

  1. Continuez les étapes dans le notebook Jupyter.

Lire les données de la rétention à long terme Kinesis

Nous lisons quotidiennement les données d'ouverture, de prix haut, bas, de prix de clôture et de volume à partir de la rétention à long terme du flux avec le AWS SDK pour Python (Boto3).

Bien que nous n'utilisions pas diffusion améliorée (EFO) dans cet article, il peut être conseillé de le faire si une application existante lit déjà le flux. De cette façon, cette application de backtesting n'interfère pas avec l'application existante.

Vous pouvez visualiser vos données, comme illustré dans la capture d'écran suivante.

Définissez votre stratégie commerciale

Dans cette étape, nous définissons notre stratégie de trading croisé de moyenne mobile.

Créer une image Docker

Nous construisons notre travail de backtesting en tant qu'image Docker et le poussons vers ECR d'Amazon.

Optimisation des hyperparamètres avec SageMaker sur les données d'entraînement

Pour la stratégie de trading croisé à moyenne mobile, nous voulons trouver la période rapide optimale et la période lente de cette stratégie, et nous proposons une plage de jours à rechercher.

Nous utilisons les profits et pertes (P&L) de la stratégie comme métrique pour trouver des hyperparamètres optimisés.

Vous pouvez voir que la tâche de réglage a recommandé une valeur de 7 et 21 jours pour la période rapide et lente pour cette stratégie de trading compte tenu de l'ensemble de données de formation.

Exécuter la stratégie avec des hyperparamètres optimaux sur les données de test

Nous exécutons maintenant cette stratégie avec des hyperparamètres optimaux sur les données de test.

Lorsque le travail est terminé, les résultats de performance sont stockés dans Amazon S3, et vous pouvez consulter les métriques de performance dans un graphique et analyser les ordres d'achat et de vente pour votre stratégie.

Conclusion

Dans cet article, nous avons décrit comment utiliser la fonction de rétention à long terme de Kinesis Data Streams pour stocker les données historiques du cours des actions et comment utiliser les données de streaming pour le backtesting d'une stratégie de trading avec SageMaker.

La conservation à long terme des données de streaming vous permet d'utiliser la même plate-forme pour les données en temps réel et plus anciennes conservées dans Kinesis Data Streams. Cela vous permet d'utiliser ce flux de données pour des cas d'utilisation financière comme le backtesting ou pour l'apprentissage automatique sans déplacer les données dans un magasin de données différent ou écrire une nouvelle application. Vous pouvez également satisfaire à certaines réglementations de conservation des données, y compris en vertu de HIPAA et FedRAMP, en utilisant la conservation à long terme. Pour plus d'informations, voir Amazon Kinesis Data Streams permet la conservation des flux de données jusqu'à un an.

Clause de non-responsabilité

Ce message est uniquement à des fins éducatives et les performances commerciales passées ne garantissent pas les performances futures.


À propos des auteurs

Sachin Thakkar est un architecte de solutions senior chez Amazon Web Services, travaillant avec un intégrateur de système mondial (GSI) de premier plan. Il apporte plus de 22 ans d'expérience en tant qu'architecte informatique et consultant en technologie pour de grandes institutions. Son domaine d'intérêt est les données et l'analyse. Sachin fournit des conseils architecturaux et soutient le partenaire GSI dans la création de solutions sectorielles stratégiques sur AWS

Amogh Gaikwad est un développeur de solutions dans l'équipe de prototypage. Il est spécialisé dans l'apprentissage automatique et l'analyse et possède une vaste expérience dans le développement de modèles ML dans des environnements réels et dans l'intégration d'IA/ML et d'autres services AWS dans des applications de production à grande échelle. Avant de rejoindre Amazon, il a travaillé comme développeur de logiciels, développant des applications d'entreprise axées sur la planification des ressources d'entreprise (ERP) et la gestion de la chaîne d'approvisionnement (SCM). Amogh a obtenu sa maîtrise en informatique spécialisée dans l'analyse des mégadonnées et l'apprentissage automatique.

Dhiraj Thakur est un architecte de solutions chez Amazon Web Services. Il travaille avec les clients et partenaires AWS pour fournir des conseils sur l'adoption, la migration et la stratégie du cloud d'entreprise. Il est passionné par la technologie et aime construire et expérimenter dans l'espace analytique et IA/ML.

Olivier Steffmann est un architecte de solutions d'entreprise chez AWS basé à New York. Il apporte plus de 18 ans d'expérience en tant qu'architecte informatique, responsable du développement logiciel et consultant en gestion pour des institutions financières internationales. Pendant son mandat de consultant, il a mis à profit ses connaissances approfondies du Big Data, de l'apprentissage automatique et des technologies cloud pour aider ses clients à démarrer leur transformation numérique. Avant cela, il était responsable de la technologie de négociation municipale dans une banque d'investissement de premier plan à New York et a commencé sa carrière dans sa propre startup en Allemagne.

Source : https://aws.amazon.com/blogs/big-data/backtest-trading-strategies-with-amazon-kinesis-data-streams-long-term-retention-and-amazon-sagemaker/

Horodatage:

Plus de AWS