XIRR - função de script
XIRR() retorna a taxa interna de retorno agregada (anual) para um cronograma de fluxos de caixa (que não é necessariamente periódico) representado por números emparelhados em pmt e date iterados sobre um número de registros, conforme definido por uma cláusula group by. Todos os pagamentos têm descontos baseados em um ano de 365 dias.
Funcionalidade XIRR do Qlik (funções XIRR() e RangeXIRR()) usa a seguinte equação, resolvendo para o valor Rate, para determinar o valor XIRR correto:
XNPV(Rate, pmt, date) = 0
A equação é resolvida usando uma versão simplificada do método de Newton.
Sintaxe:
XIRR(pmt, date )
Tipo de dados de retorno: numérico
Argumento | Descrição |
---|---|
pmt |
Pagamentos. A expressão ou campo que contém os fluxos de caixa correspondentes ao cronograma de pagamentos dado no date. |
date | A expressão ou campo que contém o cronograma de datas correspondentes aos pagamentos de fluxo de caixa dados em pmt. |
Ao trabalhar com essa função, as seguintes limitações são aplicáveis:
-
Valores de texto, valores NULL e valores ausentes em qualquer uma das duas partes de um par de dados farão com que o par de dados inteiro seja ignorado.
-
Essa função requer pelo menos um pagamento negativo válido e pelo menos um pagamento positivo válido (com datas válidas correspondentes). Se esses pagamentos não forem fornecidos, um valor NULL será retornado.
Estes tópicos podem ajudar você a trabalhar com essa função:
-
XNPV - função de script: use essa função para calcular o valor presente líquido agregado para uma programação de fluxos de caixa.
-
RangeXIRR – função de script e gráfico: RangeXIRR() é a função de intervalo equivalente para a função XIRR().
Em diferentes versões do Qlik Sense Client-Managed, há variações no algoritmo subjacente usado por essa função. Para obter mais informações sobre atualizações recentes do algoritmo, consulte o artigo de suporte Correção e atualização da função XIRR.
Exemplo
Interpretando o valor de retorno XIRR
A funcionalidade XIRR geralmente é usada para analisar um investimento, em que há um pagamento de saída (negativo) no início e, posteriormente, uma série de pagamentos de receita menores (positivos). Veja a seguir um exemplo simplificado com apenas um pagamento negativo e um positivo:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|-100
2024-01-01|110
] (delimiter is '|');
Fazemos um pagamento inicial de 100 e recebemos 110 de volta depois de exatamente um ano. Isso representa uma taxa de retorno de 10% ao ano. XIRR(Payments, Date) retorna um valor de 0,1.
O valor de retorno da funcionalidade XIRR pode ser positivo ou negativo. No caso de um investimento, um resultado negativo indica que o investimento é uma perda. A quantidade de ganho ou perda pode ser calculada com uma simples agregação de soma no campo de pagamentos.
No exemplo acima, estamos emprestando nosso dinheiro por um ano. A taxa de retorno pode ser considerada como juros. Também é possível usar a funcionalidade XIRR quando você está do outro lado da transação (por exemplo, se for o mutuário em vez do credor).
Considere este exemplo:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|100
2024-01-01|-110
] (delimiter is '|');
Isso é igual ao primeiro exemplo, mas invertido. Aqui, tomamos 100 emprestados por um ano e pagamos com juros de 10%. Neste exemplo, o cálculo de XIRR retorna 0,1 (10%), o mesmo valor do primeiro exemplo.
Observe que, no primeiro exemplo, recebemos um lucro de 10 e, no segundo, tivemos uma perda de 10, mas o valor de retorno da funcionalidade XIRR é positivo para ambos os exemplos. Isso ocorre porque a funcionalidade XIRR calcula os juros ocultos na transação, independentemente de qual lado você esteja na transação.
Limitações com várias soluções
A funcionalidade XIRR do Qlik é definida pela seguinte equação, em que o valor Rate é resolvido:
XNPV(Rate, pmt, date) = 0
Às vezes, é possível que essa equação tenha mais de uma solução. Isso é conhecido como "problema de IRR múltipla" e é causado por um fluxo de caixa não normal (também chamado de fluxo de caixa não convencional). O script de carregamento a seguir mostra um exemplo disso:
Cashflow:
LOAD * inline [
Date|Payments
2021-01-01|-200
2022-01-01|500
2023-01-01|-250
] (delimiter is '|');
Neste exemplo, há uma solução negativa e uma solução positiva (Rate = -0,3 e Rate = 0,8). XIRR() retornará 0,8.
Quando a funcionalidade XIRR do Qlik procura uma solução, ela começa em Rate = 0 e aumenta a taxa em etapas até encontrar uma solução. Se houver mais de uma solução positiva, ela retornará a primeira que encontrar. Se você não conseguir encontrar uma solução positiva, ele redefinirá Rate de volta para zero e começará a procurar uma solução na direção negativa.
Observe que é garantido que um fluxo de caixa "normal" tenha apenas uma solução. Fluxo de caixa "normal" significa que todos os pagamentos com o mesmo sinal (positivo ou negativo) estão em um grupo contínuo.