Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Calcule o value at risk (VaR – valor em risco) usando os serviços da AWS - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Calcule o value at risk (VaR – valor em risco) usando os serviços da AWS

Criado por Sumon Samanta (AWS)

Resumo

Esse padrão descreve como implementar um sistema de cálculo de valor em risco (VaR) usando os serviços da AWS. Em um ambiente on-premises, a maioria dos sistemas VaR usa uma infraestrutura grande e dedicada e um software de agendamento de rede interno ou comercial para executar processos em lote. Esse padrão apresenta uma arquitetura simples, confiável e escalável para lidar com o processamento de VaR na nuvem AWS. Ele cria uma arquitetura sem servidor que usa o Amazon Kinesis Data Streams como um serviço de streaming, o Amazon Simple Queue Service (Amazon SQS) como um serviço gerenciado de filas, a Amazon como um serviço de cache e o ElastiCache AWS Lambda para processar pedidos e calcular riscos.

O VaR é uma medida estatística que os negociadores e gerentes de risco usam para estimar a perda potencial em seu portfólio além de um certo nível de confiança. A maioria dos sistemas VaR envolve a execução de um grande número de cálculos matemáticos e estatísticos e o armazenamento dos resultados. Esses cálculos exigem recursos computacionais significativos, portanto, os processos em lote do VaR precisam ser divididos em conjuntos menores de tarefas computacionais. É possível dividir um lote grande em tarefas menores porque essas tarefas são, em sua maioria, independentes (ou seja, os cálculos de uma tarefa não dependem de outras tarefas). 

Outro requisito importante para uma arquitetura VaR é a escalabilidade computacional. Esse padrão usa uma arquitetura com tecnologia sem servidor que aumenta ou diminui automaticamente com base na carga computacional. Como a demanda de computação em lote ou on-line é difícil de prever, o escalonamento dinâmico é necessário para concluir o processo dentro do cronograma imposto por um Acordo de Serviço (SLA). Além disso, uma arquitetura com custo otimizado deve ser capaz de reduzir a escala verticalmente para cada recurso computacional assim que as tarefas desse recurso forem concluídas. 

Os serviços da AWS são adequados para cálculos de VaR porque oferecem capacidade de computação e armazenamento escalável, serviços de análise para processamento de forma econômica e diferentes tipos de agendadores para executar seus fluxos de trabalho de gerenciamento de riscos. Além disso, você paga apenas pelos recursos de computação e armazenamento que usa na AWS.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Arquivos de entrada, que dependem dos requisitos da sua empresa. Um caso de uso típico envolve os seguintes arquivos de entrada:

    • Arquivo de dados de mercado (entrada para o mecanismo de cálculo do VaR)

    • Arquivo de dados comerciais (a menos que os dados comerciais venham por meio de um fluxo).

    • Arquivo de dados de configuração (modelo e outros dados estáticos de configuração)

    • Arquivos de modelo do mecanismo de cálculo (bibliotecas quantitativas)

    • Arquivo de dados de séries temporais (para dados históricos, como o preço das ações nos últimos cinco anos)

  • Se os dados de mercado ou outras informações chegarem por meio de um stream, o Amazon Kinesis Data Streams será configurado e as permissões do Amazon Identity and Access Management (IAM) serão configuradas para gravar no stream.  

Esse padrão cria uma arquitetura na qual os dados comerciais são gravados de um sistema de negociação em um fluxo de dados do Kinesis. Em vez de usar um serviço de streaming, você pode salvar os dados de negociação em pequenos lotes, armazená-los em um bucket do Amazon Simple Storage Service (Amazon S3) e invocar um evento para começar a processar os dados.

Limitações

  • O sequenciamento do fluxo de dados do Kinesis é garantido em cada fragmento, portanto, não é garantido que as ordens de negociação gravadas em vários fragmentos sejam entregues na mesma ordem das operações de gravação.

  • Atualmente, o limite de runtime do AWS Lambda é de 15 minutos. (Para obter mais informações, consulte as perguntas frequentes do Lambda.)

Arquitetura

Arquitetura de destino

O diagrama de arquitetura a seguir mostra os serviços e fluxos de trabalho da AWS para o sistema de avaliação de risco.

Sistema de cálculo de VaR com serviços da AWS

O diagrama ilustra o seguinte:

  1. As negociações chegam do sistema de gerenciamento de pedidos.

  2. A função do Lambda de compensação da posição do tíquete processa os pedidos e grava mensagens consolidadas para cada ticker em uma fila de risco no Amazon SQS.

  3. A função Lambda do mecanismo de cálculo de risco processa as mensagens do Amazon SQS, realiza cálculos de risco e atualiza as informações de lucros e perdas (PnL) do VaR no cache de risco na Amazon. ElastiCache

  4. A função Lambda de leitura de ElastiCache dados recupera os resultados de risco e os armazena em um banco de dados ElastiCache e em um bucket do S3.

Para obter mais informações sobre esses serviços e etapas, consulte a seção Épicos.

Automação e escala

Você pode implantar toda a arquitetura usando o AWS Cloud Development Kit (AWS CDK) ou os CloudFormation modelos da AWS. A arquitetura pode suportar tanto o processamento em lote quanto o processamento intradiário (em tempo real).

O dimensionamento é incorporado à arquitetura. À medida que mais negociações são gravadas no fluxo de dados do Kinesis e aguardam para serem processadas, funções adicionais do Lambda podem ser invocadas para processar essas negociações e, em seguida, podem reduzir a escala verticalmente após a conclusão do processamento. O processamento por meio de várias filas de cálculo de risco do Amazon SQS também é uma opção. Se for necessária uma ordenação ou consolidação estritas nas filas, o processamento não poderá ser paralelizado. No entanto, para um end-of-the-day lote ou um mini lote intradiário, as funções Lambda podem processar paralelamente e armazenar os resultados finais em. ElastiCache 

Ferramentas

Serviços da AWS

  • O Amazon Aurora MySQL-Compatible Edition é um mecanismo de banco de dados relacional totalmente gerenciado e compatível com MySQL que ajuda você a configurar, operar e dimensionar implantações do MySQL. Esse padrão usa o MySQL como exemplo, mas você pode usar qualquer sistema RDBMS para armazenar dados.

  • ElastiCacheA Amazon ajuda você a configurar, gerenciar e escalar ambientes distribuídos de cache na memória na nuvem da AWS.

  • O Amazon Kinesis Data Streams ajuda a coletar e processar grandes fluxos de registros de dados em tempo real.

  • O AWS Lambda é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.

  • O Amazon Simple Queue Service (Amazon SQS) fornece uma fila hospedada segura, durável e disponível que ajuda a integrar e desacoplar sistemas e componentes de software distribuídos.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

Código

Esse padrão fornece um exemplo de arquitetura para um sistema VaR na Nuvem AWS e descreve como você pode usar funções do Lambda para cálculos de VaR. Para criar suas funções do Lambda, consulte os exemplos de código na documentação do Lambda. Para obter ajuda, entre em contato com o AWS Professional Services.

Práticas recomendadas

  • Mantenha cada tarefa de computação do VaR tão pequena e leve quanto possível. Experimente diferentes números de negociações em cada tarefa de computação para ver qual delas é a mais otimizada para tempo e custo de computação.

  • Armazene objetos reutilizáveis na Amazon. ElastiCache Use uma estrutura como o Apache Arrow para reduzir a serialização e a desserialização.

  • Considere a limitação de tempo do Lambda. Se você acha que suas tarefas de computação podem exceder 15 minutos, tente dividi-las em tarefas menores para evitar o tempo limite do Lambda. Se isso não for possível, considere uma solução de orquestração de contêiner com o AWS Fargate, o Amazon Elastic Container Service (Amazon ECS) e o Amazon Elastic Kubernetes Service (Amazon EKS).

Épicos

TarefaDescriçãoHabilidades necessárias

Comece a escrever negociações.

Negociações novas, liquidadas ou parcialmente liquidadas são gravadas do sistema de gerenciamento de pedidos em um fluxo de risco. Esse padrão usa o Amazon Kinesis como serviço de streaming gerenciado. O hash do ticker da ordem comercial é usado para colocar ordens comerciais em vários fragmentos.

Amazon Kinesis

Fluxo comercial para o sistema de risco

TarefaDescriçãoHabilidades necessárias

Comece a escrever negociações.

Negociações novas, liquidadas ou parcialmente liquidadas são gravadas do sistema de gerenciamento de pedidos em um fluxo de risco. Esse padrão usa o Amazon Kinesis como serviço de streaming gerenciado. O hash do ticker da ordem comercial é usado para colocar ordens comerciais em vários fragmentos.

Amazon Kinesis
TarefaDescriçãoHabilidades necessárias

Inicie o processamento de riscos com o Lambda.

Execute uma função do AWS Lambda para os novos pedidos. Com base no número de pedidos de negociação pendentes, o Lambda será escalado automaticamente. Cada instância do Lambda tem um ou mais pedidos e recupera a posição mais recente de cada ticker da Amazon. ElastiCache (Você pode usar uma ID CUSIP, um nome de curva ou um nome de índice para outros produtos derivados financeiros como uma chave para armazenar e recuperar dados.) ElasticCache Em ElastiCache, a posição total (quantidade) e o par de valores-chave < ticker, posição líquida >, em que a posição líquida é o fator de escala, são atualizados uma vez para cada ticker. 

Amazon Kinesis, AWS Lambda, Amazon ElastiCache

Execute funções do Lambda para processamento de pedidos

TarefaDescriçãoHabilidades necessárias

Inicie o processamento de riscos com o Lambda.

Execute uma função do AWS Lambda para os novos pedidos. Com base no número de pedidos de negociação pendentes, o Lambda será escalado automaticamente. Cada instância do Lambda tem um ou mais pedidos e recupera a posição mais recente de cada ticker da Amazon. ElastiCache (Você pode usar uma ID CUSIP, um nome de curva ou um nome de índice para outros produtos derivados financeiros como uma chave para armazenar e recuperar dados.) ElasticCache Em ElastiCache, a posição total (quantidade) e o par de valores-chave < ticker, posição líquida >, em que a posição líquida é o fator de escala, são atualizados uma vez para cada ticker. 

Amazon Kinesis, AWS Lambda, Amazon ElastiCache
TarefaDescriçãoHabilidades necessárias

Grave mensagens consolidadas na fila de risco.

Escrever a mensagem em uma fila. Esse padrão usa o Amazon SQS como um serviço gerenciado de filas. Uma única instância do Lambda pode receber um pequeno lote de ordens comerciais a qualquer momento, mas gravará somente uma única mensagem para cada ticker no Amazon SQS. Um fator de escala é calculado: (posição líquida antiga + posição atual) /posição líquida antiga.

Amazon SQS, AWS Lambda

Escreva mensagens para cada ticker na fila

TarefaDescriçãoHabilidades necessárias

Grave mensagens consolidadas na fila de risco.

Escrever a mensagem em uma fila. Esse padrão usa o Amazon SQS como um serviço gerenciado de filas. Uma única instância do Lambda pode receber um pequeno lote de ordens comerciais a qualquer momento, mas gravará somente uma única mensagem para cada ticker no Amazon SQS. Um fator de escala é calculado: (posição líquida antiga + posição atual) /posição líquida antiga.

Amazon SQS, AWS Lambda
TarefaDescriçãoHabilidades necessárias

Inicie os cálculos de risco.

A função do Lambda para o mecanismo de risco do lambda é invocada. Cada posição é processada por uma única função do Lambda. No entanto, para fins de otimização, cada função do Lambda pode processar várias mensagens do Amazon SQS.

Amazon SQS, AWS Lambda

Invoque o mecanismo de risco

TarefaDescriçãoHabilidades necessárias

Inicie os cálculos de risco.

A função do Lambda para o mecanismo de risco do lambda é invocada. Cada posição é processada por uma única função do Lambda. No entanto, para fins de otimização, cada função do Lambda pode processar várias mensagens do Amazon SQS.

Amazon SQS, AWS Lambda
TarefaDescriçãoHabilidades necessárias

Recupere e atualize o cache de riscos.

O Lambda recupera a posição líquida atual de cada ticker de. ElastiCache Ele também recupera uma matriz de lucros e perdas (PnL) do VaR para cada ticker de. ElastiCache 

Se a matriz PnL já existir, a função do Lambda atualiza a matriz e o VaR com uma escala, que vem da mensagem do Amazon SQS escrita pela função netting Lambda. Se a matriz PnL não estiver ativada ElasticCache, um novo PnL e VaR serão calculados usando dados simulados da série de preços do ticker.

Amazon SQS, AWS Lambda, Amazon ElastiCache

Recupere resultados de risco do cache

TarefaDescriçãoHabilidades necessárias

Recupere e atualize o cache de riscos.

O Lambda recupera a posição líquida atual de cada ticker de. ElastiCache Ele também recupera uma matriz de lucros e perdas (PnL) do VaR para cada ticker de. ElastiCache 

Se a matriz PnL já existir, a função do Lambda atualiza a matriz e o VaR com uma escala, que vem da mensagem do Amazon SQS escrita pela função netting Lambda. Se a matriz PnL não estiver ativada ElasticCache, um novo PnL e VaR serão calculados usando dados simulados da série de preços do ticker.

Amazon SQS, AWS Lambda, Amazon ElastiCache
TarefaDescriçãoHabilidades necessárias

Armazene os resultados de risco.

Depois que os números VaR e PnL são atualizados ElastiCache, uma nova função Lambda é invocada a cada cinco minutos. Essa função lê todos os dados armazenados ElastiCache e os armazena em um banco de dados compatível com o Aurora MySQL e em um bucket do S3.

AWS Lambda, Amazon ElastiCache

Atualize dados no Elastic Cache e armazene no banco de dados

TarefaDescriçãoHabilidades necessárias

Armazene os resultados de risco.

Depois que os números VaR e PnL são atualizados ElastiCache, uma nova função Lambda é invocada a cada cinco minutos. Essa função lê todos os dados armazenados ElastiCache e os armazena em um banco de dados compatível com o Aurora MySQL e em um bucket do S3.

AWS Lambda, Amazon ElastiCache

Recursos relacionados

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.