Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Calculez la valeur à risque (VaR) à l'aide des services AWS - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Calculez la valeur à risque (VaR) à l'aide des services AWS

Créée par Sumon Samanta (AWS)

Récapitulatif

Ce modèle décrit comment implémenter un système de calcul de la valeur à risque (VaR) à l'aide des services AWS. Dans un environnement sur site, la plupart des systèmes VaR utilisent une vaste infrastructure dédiée et un logiciel de planification de réseau interne ou commercial pour exécuter les processus par lots. Ce modèle présente une architecture simple, fiable et évolutive pour gérer le traitement de la VaR dans le cloud AWS. Il construit une architecture sans serveur qui utilise Amazon Kinesis Data Streams comme service de streaming, Amazon Simple Queue Service (Amazon SQS) comme service de file d'attente géré, ElastiCache Amazon comme service de mise en cache et AWS Lambda pour traiter les commandes et calculer les risques.

La VaR est une mesure statistique que les traders et les gestionnaires de risques utilisent pour estimer les pertes potentielles de leur portefeuille au-delà d'un certain niveau de confiance. La plupart des systèmes VaR impliquent l'exécution d'un grand nombre de calculs mathématiques et statistiques et le stockage des résultats. Ces calculs nécessitent des ressources de calcul importantes, de sorte que les processus par lots VaR doivent être divisés en de plus petits ensembles de tâches de calcul. Il est possible de diviser un lot important en tâches plus petites car ces tâches sont pour la plupart indépendantes (c'est-à-dire que les calculs d'une tâche ne dépendent pas des autres tâches). 

Une autre exigence importante pour une architecture VaR est l'évolutivité du calcul. Ce modèle utilise une architecture sans serveur qui évolue automatiquement en entrée ou en sortie en fonction de la charge de calcul. La demande de calcul par lots ou en ligne étant difficile à prévoir, une mise à l'échelle dynamique est nécessaire pour terminer le processus dans les délais imposés par un accord de niveau de service (SLA). En outre, une architecture optimisée en termes de coûts doit être capable de réduire chaque ressource de calcul dès que les tâches associées à cette ressource sont terminées. 

Les services AWS sont parfaitement adaptés aux calculs de la VaR car ils offrent des capacités de calcul et de stockage évolutives, des services d'analyse pour un traitement optimisé en termes de coûts et différents types de planificateurs pour exécuter vos flux de travail de gestion des risques. De plus, vous ne payez que pour les ressources de calcul et de stockage que vous utilisez sur AWS.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif.

  • Fichiers d'entrée, qui dépendent des besoins de votre entreprise. Un cas d'utilisation typique implique les fichiers d'entrée suivants :

    • Fichier de données de marché (entrée dans le moteur de calcul de la VaR)

    • Fichier de données commerciales (sauf si les données commerciales proviennent d'un flux).

    • Fichier de données de configuration (modèle et autres données de configuration statiques)

    • Fichiers de modèles de moteurs de calcul (bibliothèques quantitatives)

    • Fichier de données de séries chronologiques (pour les données historiques telles que le cours des actions des cinq dernières années)

  • Si les données de marché ou d'autres entrées arrivent par le biais d'un flux, Amazon Kinesis Data Streams est configuré et les autorisations Amazon Identity and Access Management (IAM) sont configurées pour écrire dans le flux.  

Ce modèle crée une architecture dans laquelle les données commerciales sont écrites depuis un système de trading vers un flux de données Kinesis. Au lieu d'utiliser un service de streaming, vous pouvez enregistrer vos données commerciales dans de petits fichiers par lots, les stocker dans un bucket Amazon Simple Storage Service (Amazon S3) et invoquer un événement pour commencer à traiter les données.

Limites

  • Le séquençage des flux de données Kinesis est garanti sur chaque partition. Il n'est donc pas garanti que les ordres de transaction écrits sur plusieurs partitions soient livrés dans le même ordre que les opérations d'écriture.

  • La limite d'exécution d'AWS Lambda est actuellement de 15 minutes. (Pour plus d'informations, consultez la FAQ Lambda.)

Architecture

Architecture cible

Le schéma d'architecture suivant présente les services et les flux de travail AWS pour le système d'évaluation des risques.

Système de calcul de la VaR avec services AWS

Le diagramme illustre les éléments suivants :

  1. Les transactions sont effectuées depuis le système de gestion des commandes.

  2. La fonction Lambda de compensation de la position du ticket traite les commandes et écrit des messages consolidés pour chaque ticker dans une file d'attente des risques dans Amazon SQS.

  3. La fonction Lambda du moteur de calcul des risques traite les messages provenant d'Amazon SQS, effectue des calculs de risques et met à jour les informations de profits et pertes (PnL) vAR dans le cache des risques d'Amazon. ElastiCache

  4. La fonction Lambda de lecture ElastiCache des données extrait les résultats des risques ElastiCache et les stocke dans une base de données et un compartiment S3.

Pour plus d'informations sur ces services et ces étapes, consultez la section Epics.

Automatisation et mise à l'échelle

Vous pouvez déployer l'architecture complète à l'aide de l'AWS Cloud Development Kit (AWS CDK) ou de CloudFormation modèles AWS. L'architecture peut prendre en charge à la fois le traitement par lots et le traitement intrajournalier (en temps réel).

La mise à l'échelle est intégrée à l'architecture. Au fur et à mesure que de nouvelles transactions sont enregistrées dans le flux de données Kinesis et attendent d'être traitées, des fonctions Lambda supplémentaires peuvent être invoquées pour traiter ces transactions, puis peuvent être réduites une fois le traitement terminé. Le traitement via plusieurs files d'attente de calcul des risques Amazon SQS est également une option. Si un ordre ou une consolidation stricts sont requis entre les files d'attente, le traitement ne peut pas être parallélisé. Toutefois, pour un end-of-the-day lot ou un mini-lot intrajournalier, les fonctions Lambda peuvent traiter en parallèle et enregistrer les résultats finaux. ElastiCache 

Outils

Services AWS

  • Amazon Aurora MySQL Compatible Edition est un moteur de base de données relationnelle entièrement géré et compatible avec MySQL qui vous aide à configurer, exploiter et dimensionner les déploiements MySQL. Ce modèle utilise MySQL comme exemple, mais vous pouvez utiliser n'importe quel système RDBMS pour stocker des données.

  • Amazon vous ElastiCache aide à configurer, gérer et faire évoluer des environnements de cache en mémoire distribués dans le cloud AWS.

  • Amazon Kinesis Data Streams vous aide à collecter et à traiter de grands flux d'enregistrements de données en temps réel.

  • AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à provisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

  • Amazon Simple Queue Service (Amazon SQS) fournit une file d'attente hébergée sécurisée, durable et disponible qui vous permet d'intégrer et de dissocier les systèmes et composants logiciels distribués.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

Code

Ce modèle fournit un exemple d'architecture pour un système VaR dans le cloud AWS et décrit comment utiliser les fonctions Lambda pour les calculs VaR. Pour créer vos fonctions Lambda, consultez les exemples de code dans la documentation Lambda. Pour obtenir de l'aide, contactez AWS Professional Services.

Bonnes pratiques

  • Faites en sorte que chaque tâche de calcul VaR soit aussi petite et légère que possible. Testez différents nombres de transactions dans chaque tâche de calcul pour déterminer laquelle est la plus optimisée en termes de temps et de coût de calcul.

  • Stockez des objets réutilisables sur Amazon ElastiCache. Utilisez un framework tel qu'Apache Arrow pour réduire la sérialisation et la désérialisation.

  • Tenez compte de la limite de temps de Lambda. Si vous pensez que vos tâches de calcul peuvent dépasser 15 minutes, essayez de les diviser en tâches plus petites pour éviter le délai Lambda. Si cela n'est pas possible, vous pouvez envisager une solution d'orchestration de conteneurs avec AWS Fargate, Amazon Elastic Container Service (Amazon ECS) et Amazon Elastic Kubernetes Service (Amazon EKS).

Épopées

TâcheDescriptionCompétences requises

Commencez à écrire des transactions.

Les transactions nouvelles, réglées ou partiellement réglées sont enregistrées depuis le système de gestion des ordres dans un flux de risques. Ce modèle utilise Amazon Kinesis comme service de streaming géré. Le hachage du ticker des ordres de transaction est utilisé pour placer les ordres de transaction sur plusieurs partitions.

Amazon Kinesis

Système de gestion des flux commerciaux par rapport au risque

TâcheDescriptionCompétences requises

Commencez à écrire des transactions.

Les transactions nouvelles, réglées ou partiellement réglées sont enregistrées depuis le système de gestion des ordres dans un flux de risques. Ce modèle utilise Amazon Kinesis comme service de streaming géré. Le hachage du ticker des ordres de transaction est utilisé pour placer les ordres de transaction sur plusieurs partitions.

Amazon Kinesis
TâcheDescriptionCompétences requises

Commencez le traitement des risques avec Lambda.

Exécutez une fonction AWS Lambda pour les nouvelles commandes. En fonction du nombre d'ordres commerciaux en attente, Lambda évoluera automatiquement. Chaque instance Lambda reçoit une ou plusieurs commandes et récupère la dernière position pour chaque ticker sur Amazon. ElastiCache (Vous pouvez utiliser un identifiant CUSIP, un nom de courbe ou un nom d'indice pour d'autres produits financiers dérivés comme clé pour stocker et récupérer des données ElasticCache.) Dans ElastiCache, la position totale (quantité) et la paire clé-valeur < ticker, position nette >, où la position nette est le facteur d'échelle, sont mises à jour une fois pour chaque ticker. 

Amazon Kinesis, AWS Lambda, Amazon ElastiCache

Exécuter les fonctions Lambda pour le traitement des commandes

TâcheDescriptionCompétences requises

Commencez le traitement des risques avec Lambda.

Exécutez une fonction AWS Lambda pour les nouvelles commandes. En fonction du nombre d'ordres commerciaux en attente, Lambda évoluera automatiquement. Chaque instance Lambda reçoit une ou plusieurs commandes et récupère la dernière position pour chaque ticker sur Amazon. ElastiCache (Vous pouvez utiliser un identifiant CUSIP, un nom de courbe ou un nom d'indice pour d'autres produits financiers dérivés comme clé pour stocker et récupérer des données ElasticCache.) Dans ElastiCache, la position totale (quantité) et la paire clé-valeur < ticker, position nette >, où la position nette est le facteur d'échelle, sont mises à jour une fois pour chaque ticker. 

Amazon Kinesis, AWS Lambda, Amazon ElastiCache
TâcheDescriptionCompétences requises

Écrivez des messages consolidés dans la file d'attente des risques.

Ecrivez le message dans une file d'attente. Ce modèle utilise Amazon SQS comme service de file d'attente géré. Une seule instance Lambda peut recevoir un mini-lot d'ordres de transaction à tout moment, mais elle n'écrit qu'un seul message pour chaque ticker sur Amazon SQS. Un facteur d'échelle est calculé : (ancienne position nette + position actuelle)/ancienne position nette.

Amazon SQS, AWS Lambda

Écrire des messages pour chaque ticker dans la file d'attente

TâcheDescriptionCompétences requises

Écrivez des messages consolidés dans la file d'attente des risques.

Ecrivez le message dans une file d'attente. Ce modèle utilise Amazon SQS comme service de file d'attente géré. Une seule instance Lambda peut recevoir un mini-lot d'ordres de transaction à tout moment, mais elle n'écrit qu'un seul message pour chaque ticker sur Amazon SQS. Un facteur d'échelle est calculé : (ancienne position nette + position actuelle)/ancienne position nette.

Amazon SQS, AWS Lambda
TâcheDescriptionCompétences requises

Commencez à calculer les risques.

La fonction Lambda pour le moteur de gestion des risques lambda est invoquée. Chaque position est traitée par une seule fonction Lambda. Toutefois, à des fins d'optimisation, chaque fonction Lambda peut traiter plusieurs messages provenant d'Amazon SQS.

Amazon SQS, AWS Lambda

Invoquer le moteur de risque

TâcheDescriptionCompétences requises

Commencez à calculer les risques.

La fonction Lambda pour le moteur de gestion des risques lambda est invoquée. Chaque position est traitée par une seule fonction Lambda. Toutefois, à des fins d'optimisation, chaque fonction Lambda peut traiter plusieurs messages provenant d'Amazon SQS.

Amazon SQS, AWS Lambda
TâcheDescriptionCompétences requises

Récupérez et mettez à jour le cache des risques.

Lambda extrait la position nette actuelle de chaque ticker à partir de. ElastiCache Il récupère également un tableau des profits et pertes vAR (PnL) pour chaque ticker à partir de. ElastiCache 

Si le tableau PnL existe déjà, la fonction Lambda met à jour le tableau et le VaR avec une échelle, qui provient du message Amazon SQS écrit par la fonction Lambda de netting. Si le tableau PnL n'y figure pas ElasticCache, un nouveau PnL et un nouveau VaR sont calculés à l'aide de données de séries de prix simulées.

Amazon SQS, AWS Lambda, Amazon ElastiCache

Extraire les résultats des risques depuis le cache

TâcheDescriptionCompétences requises

Récupérez et mettez à jour le cache des risques.

Lambda extrait la position nette actuelle de chaque ticker à partir de. ElastiCache Il récupère également un tableau des profits et pertes vAR (PnL) pour chaque ticker à partir de. ElastiCache 

Si le tableau PnL existe déjà, la fonction Lambda met à jour le tableau et le VaR avec une échelle, qui provient du message Amazon SQS écrit par la fonction Lambda de netting. Si le tableau PnL n'y figure pas ElasticCache, un nouveau PnL et un nouveau VaR sont calculés à l'aide de données de séries de prix simulées.

Amazon SQS, AWS Lambda, Amazon ElastiCache
TâcheDescriptionCompétences requises

Conservez les résultats relatifs aux risques.

Une fois les numéros VaR et PnL mis à jour ElastiCache, une nouvelle fonction Lambda est invoquée toutes les cinq minutes. Cette fonction lit toutes les données stockées ElastiCache et les stocke dans une base de données compatible Aurora MySQL et dans un compartiment S3.

AWS Lambda, Amazon ElastiCache

Mettre à jour les données dans Elastic Cache et les stocker dans la base de données

TâcheDescriptionCompétences requises

Conservez les résultats relatifs aux risques.

Une fois les numéros VaR et PnL mis à jour ElastiCache, une nouvelle fonction Lambda est invoquée toutes les cinq minutes. Cette fonction lit toutes les données stockées ElastiCache et les stocke dans une base de données compatible Aurora MySQL et dans un compartiment S3.

AWS Lambda, Amazon ElastiCache

Ressources connexes

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.