𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟭
O QuantConnect Lean precisava de um melhor controle sobre as rolagens de futuros contínuos.
Os usuários enfrentavam dois problemas principais:
- Eles não conseguiam definir o momento da rolagem antes do vencimento.
- Eles não conseguiam selecionar ciclos específicos de mês de contrato.
Isso não é um simples bug. É um problema de política de mapeamento.
Se você tentar corrigir isso criando um novo calendário de rolagem, você quebra o motor. Se duplicar os dados de mapeamento, você cria erros. Um patch mal feito pode causar um desvio entre o que uma estratégia deseja e o que o motor faz.
O objetivo era encontrar uma via de reparo cirúrgica.
A solução permanece dentro do limite de mapeamento existente. Não reescrevemos o motor de futuros. Em vez disso, estendemos como o Lean lida com o mapeamento de futuros contínuos.
O que mudou no PR:
- Adicionado um modo de mapeamento
TradingDaysBeforeExpiry. - Isso permite que os usuários definam o momento da rolagem como um offset de dias negociáveis.
- O offset da rolagem agora flui através dos caminhos de assinatura, histórico, universo e eventos de mapeamento.
- Adicionada a iteração opcional por ciclo de mês de contrato.
- Isso suporta ciclos de manutenção específicos em vez de uma sequência genérica.
- Reutilizadas as linhas de mapa
LastTradingDayexistentes para manter a fonte de dados única e fidedigna.
Ao manter o reparo dentro da política de mapeamento, garantimos que todas as partes do motor concordem sobre qual contrato está ativo.
O resultado: Um reparo delimitado que adiciona novas capacidades sem inventar novos sistemas. A validação de build local passou com zero erros. O PR agora está pronto para revisão upstream.
Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi