Перейти к основному содержимому Перейти к дополнительному содержимому

XIRR — функция скрипта

Функция XIRR() возвращает агрегированную внутреннюю ставку доходов (годовую) для графика потоков денежных средств (необязательно регулярных), представленных парными числами в элементах pmt и date, повторяемых в нескольких записях так, как это определено предложением group by. Все платежи учитываются на основе года с 365 днями.

В Qlik функционал XIRR (функции XIRR() и RangeXIRR()) использует следующее уравнение, решение которого становится значением Rate, чтобы определить правильное значение XIRR:

XNPV(Rate, pmt, date) = 0

Для решения уравнения используется упрощенная версия метода Ньютона.

Синтаксис:  

XIRR(pmt, date )

Возвращаемые типы данных: числовое значение

Аргументы
Аргумент Описание
pmt

Платежи. Выражение или поле, содержащее денежные потоки, соответствующие графику платежей, представленному в элементе date.

date Выражение или поле, содержащее график дат, соответствующих потоку денежных средств, представленному в элементе pmt.

При работе с этой функцией действуют следующие варианты:

  • Текстовые, отсутствующие значения и значения NULL в какой-либо или обеих частях пары значений приводят к игнорированию всей пары значений.

  • Для этой функции требуется хотя бы один допустимый отрицательный и хотя бы один допустимый положительный платеж (с соответствующими допустимыми датами). Если такие платежи отсутствуют, возвращается значение NULL.

Эти раздел помогут в работе с этой функцией:

Примечание к информации

В разных версиях Qlik Sense под управлением клиента существуют различия в базовом алгоритме, используемом этой функцией. Для получения дополнительной информации о последних обновлениях алгоритма см. статью службы поддержки Исправление и обновление функции XIRR.

Пример

Интерпретация возвращаемого значения XIRR

Функция XIRR обычно используется для анализа инвестиции, где имеется исходящий платеж (отрицательный) в начале, а затем следует ряд меньших по размеру входящих платежей (положительных). Ниже приводится упрощенный пример с одним отрицательным платежом и одним положительным платежом.

Cashflow:

LOAD * inline [

Date|Payments

2023-01-01|-100

2024-01-01|110

] (delimiter is '|');

 

Сделан первоначальный платеж 100, и ровно через год после этого обратно получен платеж 110. Это представляет ставку дохода 10% в год. XIRR(Payments, Date) возвращает значение 0,1.

Значение, возвращаемое функцией XIRR, может быть положительным или отрицательным. В случае инвестиции отрицательный результат указывает на ее убыточность. Сумму прибыли или убытка можно рассчитать просто путем агрегирования суммы значений в поле платежей.

В приведенном выше примере выдается заем на один год. Ставку дохода можно рассматривать как процентную ставку. Функцию XIRR также можно использовать, являясь противоположной стороной транзакции (например, заемщиком, а не заимодателем).

Рассмотрим следующий пример:

Cashflow:

LOAD * inline [

Date|Payments

2023-01-01|100

2024-01-01|-110

] (delimiter is '|');

 

Это все тот же первый пример, но теперь он представлен с противоположной точки зрения. Мы берем заем 100 на один год и возвращаем сумму с учетом процентной ставки 10%. В этом случае расчет XIRR возвращает 0,1 (10%), как и в первом примере.

Обратите внимание, что в первом примере мы получили прибыль 10, а во втором — убыток 10, но значение, возвращенное функцией XIRR, в обоих случаях является положительным. Это объясняется тем, что функция рассчитывает скрытую процентную ставку в транзакции, независимо от того, какой стороной транзакции вы являетесь.

Ограничения при использовании нескольких решений

Функция XIRR в Qlik определяется следующим уравнением, решением которого является значение Rate:

XNPV(Rate, pmt, date) = 0

Иногда это уравнение может иметь больше одного решения. Это называется «задача с несколькими IRR», она возникает в результате аномального потока движения денежных средств (также называется нетипичным движением денежных средств). Это демонстрирует следующий скрипт загрузки:

Cashflow:

LOAD * inline [

Date|Payments

2021-01-01|-200

2022-01-01|500

2023-01-01|-250

] (delimiter is '|');

 

В данном примере существует одно отрицательное и одно положительное решение (Rate = -0,3 и Rate = 0,8). XIRR() возвращает 0,8.

Когда функция XIRR в Qlik выполняет поиск решения, она начинает с Rate = 0 и постепенно увеличивает ставку, пока не будет найдено решение. Если положительных решений несколько, будет возвращено решение, найденное первым. Если не удается найти положительное решение, то функция сбрасывает Rate до нуля и начинает поиск решения снова в отрицательном направлении.

Обратите внимание, что «нормальный» поток движения денежных средств гарантированно имеет только одно решение. «Нормальный» поток денежных средств означает, что все платежи с одинаковым знаком (положительные или отрицательные) относятся к непрерывной группе.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!