Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Calcola il valore a rischio (VaR) utilizzando i servizi AWS - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Calcola il valore a rischio (VaR) utilizzando i servizi AWS

Creato da Sumon Samanta (AWS)

Riepilogo

Questo modello descrive come implementare un sistema di calcolo del valore a rischio (VaR) utilizzando i servizi AWS. In un ambiente locale, la maggior parte dei sistemi VaR utilizza un'ampia infrastruttura dedicata e un software di pianificazione della rete interno o commerciale per eseguire processi in batch. Questo modello presenta un'architettura semplice, affidabile e scalabile per gestire l'elaborazione VaR nel cloud AWS. Crea un'architettura serverless che utilizza Amazon Kinesis Data Streams come servizio di streaming, Amazon Simple Queue Service (Amazon SQS) come servizio di coda gestito, Amazon come servizio di cache e AWS Lambda per elaborare ElastiCache gli ordini e calcolare il rischio.

Il VaR è una misura statistica che i trader e i gestori del rischio utilizzano per stimare le potenziali perdite nel loro portafoglio oltre un certo livello di confidenza. La maggior parte dei sistemi VaR prevede l'esecuzione di un gran numero di calcoli matematici e statistici e l'archiviazione dei risultati. Questi calcoli richiedono risorse di calcolo significative, quindi i processi batch VaR devono essere suddivisi in set più piccoli di attività di calcolo. La suddivisione di un batch di grandi dimensioni in attività più piccole è possibile perché queste attività sono per lo più indipendenti (ovvero, i calcoli per un'attività non dipendono da altre attività). 

Un altro requisito importante per un'architettura VaR è la scalabilità di calcolo. Questo modello utilizza un'architettura serverless che si ridimensiona automaticamente in avanti o indietro in base al carico di calcolo. Poiché la domanda di elaborazione in batch o online è difficile da prevedere, è necessaria la scalabilità dinamica per completare il processo entro la tempistica imposta da un accordo sul livello di servizio (SLA). Inoltre, un'architettura ottimizzata in termini di costi dovrebbe essere in grado di ridimensionare ogni risorsa di elaborazione non appena le attività su tale risorsa sono complete. 

I servizi AWS sono adatti per i calcoli VaR perché offrono capacità di calcolo e storage scalabile, servizi di analisi per l'elaborazione in modo ottimizzato in termini di costi e diversi tipi di scheduler per eseguire i flussi di lavoro di gestione del rischio. Inoltre, paghi solo per le risorse di calcolo e storage che usi su AWS.

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo.

  • File di input, che dipendono dai requisiti aziendali. Un tipico caso d'uso riguarda i seguenti file di input:

    • File di dati di mercato (input nel motore di calcolo del VaR)

    • File di dati commerciali (a meno che i dati commerciali non arrivino attraverso un flusso).

    • File di dati di configurazione (modello e altri dati di configurazione statici)

    • File di modello del motore di calcolo (librerie quantitative)

    • File di dati delle serie temporali (per dati storici come il prezzo delle azioni degli ultimi cinque anni)

  • Se i dati di mercato o altri input arrivano tramite un flusso, vengono configurate le autorizzazioni di Amazon Kinesis Data Streams e Amazon Identity and Access Management (IAM) configurate per scrivere nello stream.  

Questo modello crea un'architettura in cui i dati commerciali vengono scritti da un sistema di trading a un flusso di dati Kinesis. Invece di utilizzare un servizio di streaming, puoi salvare i dati commerciali in piccoli file batch, archiviarli in un bucket Amazon Simple Storage Service (Amazon S3) e richiamare un evento per avviare l'elaborazione dei dati.

Limitazioni

  • Il sequenziamento del flusso di dati Kinesis è garantito su ogni shard, pertanto non è garantito che gli ordini commerciali scritti su più shard vengano consegnati nello stesso ordine delle operazioni di scrittura.

  • Il limite di runtime di AWS Lambda è attualmente di 15 minuti. (Per ulteriori informazioni, consulta le domande frequenti su Lambda).

Architettura

Architettura Target

Il seguente diagramma di architettura mostra i servizi e i flussi di lavoro AWS per il sistema di valutazione del rischio.

Sistema di calcolo VaR con servizi AWS

Il diagramma illustra quanto segue:

  1. Le negoziazioni arrivano dal sistema di gestione degli ordini.

  2. La funzione Lambda di ticket position netting elabora gli ordini e scrive messaggi consolidati per ogni ticker in una coda di rischio in Amazon SQS.

  3. La funzione Lambda del motore di calcolo del rischio elabora i messaggi di Amazon SQS, esegue calcoli del rischio e aggiorna le informazioni su profitti e perdite (PnL) del VaR nella cache dei rischi di Amazon. ElastiCache

  4. La funzione Lambda di lettura ElastiCache dei dati recupera i risultati del rischio e li archivia in un database ElastiCache e in un bucket S3.

Per ulteriori informazioni su questi servizi e passaggi, consulta la sezione Epics.

Automazione e scalabilità

Puoi distribuire l'intera architettura utilizzando l'AWS Cloud Development Kit (AWS CDK) o i modelli CloudFormation AWS. L'architettura può supportare sia l'elaborazione in batch che l'elaborazione intraday (in tempo reale).

La scalabilità è integrata nell'architettura. Man mano che sempre più operazioni vengono scritte nel flusso di dati di Kinesis e sono in attesa di essere elaborate, è possibile richiamare funzioni Lambda aggiuntive per elaborare tali operazioni e ridurle al termine dell'elaborazione. Un'altra opzione è l'elaborazione tramite più code di calcolo del rischio di Amazon SQS. Se è richiesto un ordinamento o un consolidamento rigorosi tra le code, l'elaborazione non può essere parallelizzata. Tuttavia, per un end-of-the-day batch o un mini batch intraday, le funzioni Lambda possono elaborare in parallelo e memorizzare i risultati finali in. ElastiCache 

Strumenti

Servizi AWS

  • Amazon Aurora MySQL Compatible Edition è un motore di database relazionale completamente gestito e compatibile con MySQL che ti aiuta a configurare, gestire e scalare le distribuzioni MySQL. Questo modello utilizza MySQL come esempio, ma è possibile utilizzare qualsiasi sistema RDBMS per archiviare i dati.

  • Amazon ti ElastiCache aiuta a configurare, gestire e scalare ambienti di cache in memoria distribuiti nel cloud AWS.

  • Amazon Kinesis Data Streams ti aiuta a raccogliere ed elaborare grandi flussi di record di dati in tempo reale.

  • AWS Lambda è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.

  • Amazon Simple Queue Service (Amazon SQS) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

Codice

Questo modello fornisce un'architettura di esempio per un sistema VaR nel cloud AWS e descrive come utilizzare le funzioni Lambda per i calcoli del VaR. Per creare le tue funzioni Lambda, consulta gli esempi di codice nella documentazione di Lambda. Per assistenza, contatta AWS Professional Services.

Best practice

  • Mantieni ogni attività di calcolo VaR il più piccola e leggera possibile. Sperimenta un numero diverso di operazioni in ciascuna attività di calcolo per vedere quale è la più ottimizzata in termini di tempi e costi di calcolo.

  • Archivia oggetti riutilizzabili in Amazon ElastiCache. Usa un framework come Apache Arrow per ridurre la serializzazione e la deserializzazione.

  • Considera la limitazione temporale di Lambda. Se ritieni che le tue attività di elaborazione possano superare i 15 minuti, prova a suddividerle in attività più piccole per evitare il timeout Lambda. Se ciò non è possibile, potresti prendere in considerazione una soluzione di orchestrazione dei container con AWS Fargate, Amazon Elastic Container Service (Amazon ECS) e Amazon Elastic Kubernetes Service (Amazon EKS).

Epiche

AttivitàDescrizioneCompetenze richieste

Inizia a scrivere scambi.

Le negoziazioni nuove, liquidate o parzialmente regolate vengono registrate dal sistema di gestione degli ordini in un flusso di rischio. Questo modello utilizza Amazon Kinesis come servizio di streaming gestito. L'hash del trade order ticker viene utilizzato per inserire gli ordini commerciali su più frammenti.

Amazon Kinesis

Sistema dal flusso commerciale al rischio

AttivitàDescrizioneCompetenze richieste

Inizia a scrivere scambi.

Le negoziazioni nuove, liquidate o parzialmente regolate vengono registrate dal sistema di gestione degli ordini in un flusso di rischio. Questo modello utilizza Amazon Kinesis come servizio di streaming gestito. L'hash del trade order ticker viene utilizzato per inserire gli ordini commerciali su più frammenti.

Amazon Kinesis
AttivitàDescrizioneCompetenze richieste

Inizia l'elaborazione del rischio con Lambda.

Esegui una funzione AWS Lambda per i nuovi ordini. In base al numero di ordini commerciali in sospeso, Lambda si ridimensionerà automaticamente. Ogni istanza Lambda ha uno o più ordini e recupera la posizione più recente per ogni ticker da Amazon. ElastiCache (Puoi utilizzare un ID CUSIP, un nome Curve o un nome di indice per altri prodotti finanziari derivati come chiave per archiviare e recuperare dati.) ElasticCache In ElastiCache, la posizione totale (quantità) e la coppia chiave-valore < ticker, net position >, dove la posizione netta è il fattore di scala, vengono aggiornate una volta per ogni ticker. 

Amazon Kinesis, AWS Lambda, Amazon ElastiCache

Esegui le funzioni Lambda per l'elaborazione degli ordini

AttivitàDescrizioneCompetenze richieste

Inizia l'elaborazione del rischio con Lambda.

Esegui una funzione AWS Lambda per i nuovi ordini. In base al numero di ordini commerciali in sospeso, Lambda si ridimensionerà automaticamente. Ogni istanza Lambda ha uno o più ordini e recupera la posizione più recente per ogni ticker da Amazon. ElastiCache (Puoi utilizzare un ID CUSIP, un nome Curve o un nome di indice per altri prodotti finanziari derivati come chiave per archiviare e recuperare dati.) ElasticCache In ElastiCache, la posizione totale (quantità) e la coppia chiave-valore < ticker, net position >, dove la posizione netta è il fattore di scala, vengono aggiornate una volta per ogni ticker. 

Amazon Kinesis, AWS Lambda, Amazon ElastiCache
AttivitàDescrizioneCompetenze richieste

Scrivi messaggi consolidati nella coda di rischio.

Scrivi il messaggio in una coda. Questo modello utilizza Amazon SQS come servizio di coda gestito. Una singola istanza Lambda può ricevere un mini batch di ordini commerciali in qualsiasi momento, ma scriverà solo un messaggio per ogni ticker su Amazon SQS. Viene calcolato un fattore di scala: (vecchia posizione netta+posizione attuale)/vecchia posizione netta.

Amazon SQS, AWS Lambda

Scrivi messaggi per ogni ticker in coda

AttivitàDescrizioneCompetenze richieste

Scrivi messaggi consolidati nella coda di rischio.

Scrivi il messaggio in una coda. Questo modello utilizza Amazon SQS come servizio di coda gestito. Una singola istanza Lambda può ricevere un mini batch di ordini commerciali in qualsiasi momento, ma scriverà solo un messaggio per ogni ticker su Amazon SQS. Viene calcolato un fattore di scala: (vecchia posizione netta+posizione attuale)/vecchia posizione netta.

Amazon SQS, AWS Lambda
AttivitàDescrizioneCompetenze richieste

Avvia i calcoli del rischio.

Viene richiamata la funzione Lambda per il risk engine lambda. Ogni posizione viene elaborata da una singola funzione Lambda. Tuttavia, a fini di ottimizzazione, ogni funzione Lambda può elaborare più messaggi da Amazon SQS.

Amazon SQS, AWS Lambda

Richiama il motore di rischio

AttivitàDescrizioneCompetenze richieste

Avvia i calcoli del rischio.

Viene richiamata la funzione Lambda per il risk engine lambda. Ogni posizione viene elaborata da una singola funzione Lambda. Tuttavia, a fini di ottimizzazione, ogni funzione Lambda può elaborare più messaggi da Amazon SQS.

Amazon SQS, AWS Lambda
AttivitàDescrizioneCompetenze richieste

Recupera e aggiorna la cache dei rischi.

Lambda recupera la posizione netta corrente per ogni ticker da. ElastiCache Inoltre, recupera un array di profitti e perdite (PnL) VaR per ogni ticker da. ElastiCache 

Se l'array PnL esiste già, la funzione Lambda aggiorna l'array e il vAR con una scala, che proviene dal messaggio Amazon SQS scritto dalla funzione netting Lambda. Se l'array PnL non è presente ElasticCache, vengono calcolati nuovi PnL e VaR utilizzando dati simulati sulla serie di prezzi dei ticker.

Amazon SQS, AWS Lambda, Amazon ElastiCache

Recupera i risultati del rischio dalla cache

AttivitàDescrizioneCompetenze richieste

Recupera e aggiorna la cache dei rischi.

Lambda recupera la posizione netta corrente per ogni ticker da. ElastiCache Inoltre, recupera un array di profitti e perdite (PnL) VaR per ogni ticker da. ElastiCache 

Se l'array PnL esiste già, la funzione Lambda aggiorna l'array e il vAR con una scala, che proviene dal messaggio Amazon SQS scritto dalla funzione netting Lambda. Se l'array PnL non è presente ElasticCache, vengono calcolati nuovi PnL e VaR utilizzando dati simulati sulla serie di prezzi dei ticker.

Amazon SQS, AWS Lambda, Amazon ElastiCache
AttivitàDescrizioneCompetenze richieste

Memorizza i risultati dei rischi.

Dopo l'aggiornamento dei numeri VaR e PnL ElastiCache, viene richiamata una nuova funzione Lambda ogni cinque minuti. Questa funzione legge tutti i dati memorizzati ElastiCache e li archivia in un database Aurora compatibile con MySQL e in un bucket S3.

AWS Lambda, Amazon ElastiCache

Aggiorna i dati in Elastic Cache e archivia nel database

AttivitàDescrizioneCompetenze richieste

Memorizza i risultati dei rischi.

Dopo l'aggiornamento dei numeri VaR e PnL ElastiCache, viene richiamata una nuova funzione Lambda ogni cinque minuti. Questa funzione legge tutti i dati memorizzati ElastiCache e li archivia in un database Aurora compatibile con MySQL e in un bucket S3.

AWS Lambda, Amazon ElastiCache

Risorse correlate

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.