XIRR - função de gráfico
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 nas expressões especificadas por pmt e date iterados sobre as dimensões do gráfico. 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([TOTAL [<fld {,fld}>]] 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. |
TOTAL |
Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo será feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico. Usando TOTAL [<fld {.fld}>], em que o qualificador TOTAL é seguido por uma lista de um ou mais nomes de campo como um subconjunto das variáveis de dimensão de gráfico, você cria um subconjunto dos valores possíveis totais. |
Ao trabalhar com essa função, as seguintes limitações são aplicáveis:
-
pmt e date não devem conter funções de agregação, a não ser que essas agregações internas contenham o qualificador TOTAL. Para agregações aninhadas mais avançadas, use a função avançada Aggr junto com uma dimensão especificada.
-
Valores de texto, valores NULLe valores ausentes em qualquer uma das duas partes de um par de dados fazem 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 gráfico: 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().
Para obter informações sobre atualizações recentes do algoritmo subjacente usado por essa função, 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.