Calcola il valore a rischio (VaR) utilizzando AWS i servizi - 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à.

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

Creato da Sumon Samanta () AWS

Ambiente: PoC o pilota

Tecnologie: analisi; serverless

AWSservizi: Amazon Kinesis Data AWS Streams; SQS Lambda; Amazon; Amazon ElastiCache

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'infrastruttura dedicata di grandi dimensioni 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 del VaR nel cloud. AWS Crea un'architettura serverless che utilizza Amazon Kinesis Data Streams come servizio di streaming, Amazon Simple Queue Service (Amazon) come servizio di coda gestito, SQS Amazon ElastiCache come servizio di caching e Lambda per elaborare gli ordini e AWS 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 sui livelli 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 completate. 

AWSi servizi sono adatti per i calcoli del VaR perché offrono capacità di calcolo e archiviazione scalabile, servizi di analisi per l'elaborazione in modo ottimizzato in termini di costi e diversi tipi di pianificatori per eseguire i flussi di lavoro di gestione del rischio. Inoltre, paghi solo per le risorse di elaborazione e archiviazione che utilizzi. 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, Amazon Kinesis Data Streams è configurato e le autorizzazioni di Amazon Identity and Access IAM Management () sono 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 AWS Lambda è attualmente di 15 minuti. (Per ulteriori informazioni, consulta Lambda FAQ.)

Architettura

Architettura Target

Il seguente diagramma di architettura mostra AWS i servizi e i flussi di lavoro 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 provenienti da AmazonSQS, 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 implementare l'intera architettura utilizzando il AWS Cloud Development Kit (AWSCDK) o i AWS CloudFormation modelli. 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 SQS rischio di Amazon. Se è richiesto un ordinamento o un consolidamento rigorosi tra le code, l'elaborazione non può essere parallelizzata. Tuttavia, per un batch end-of-the di un giorno o un mini batch intraday, le funzioni Lambda possono elaborare in parallelo e memorizzare i risultati finali in. ElastiCache 

Strumenti

AWSservizi

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

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

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

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

  • Amazon Simple Queue Service (AmazonSQS) 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 AWS Cloud 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 AWSProfessional Services.

Best practice

  • Mantieni ogni attività di elaborazione 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) e ECS 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
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 CUSIP ID, un nome Curve o un nome di indice per altri prodotti finanziari derivati come chiave da cui archiviare e recuperare i 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, LambdaAWS, 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 potrebbe ricevere un mini batch di ordini commerciali in qualsiasi momento, ma scriverà ad Amazon un solo messaggio per ogni ticker. SQS Viene calcolato un fattore di scala: (vecchia posizione netta+posizione attuale)/vecchia posizione netta.

AmazonSQS, 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

AmazonSQS, 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 SQS Amazon 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.

AmazonSQS, 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 SQL My -Compatible e in un bucket S3.

AWSLambda, Amazon ElastiCache

Risorse correlate