§ 19. Общий метод вычисления эффективной процентной ставки

 

В предыдущем параграфе мы отмечали, что размер эффективной процентной ставки даже для относительно простых ссудных операций нельзя найти с помощью какой-либо формулы. На помощь здесь приходят так называемые численные методы, которые позволяют за конечное число шагов вычислить приближённое значение искомой величины с необходимой точностью.

Общий метод приближённого вычисления эффективной процентной ставки, который мы рассмотрим далее, может применяться для любой ссуды, платежи по которой совершаются даже через неодинаковые промежутки времени. Его основу составляет численный метод Ньютона, суть которого, в общих чертах, заключается в следующем.

Допустим, нам нужно найти решение уравнения f(x) = 0, где f(x) — некоторая дифференцируемая функция. Тогда при определённых условиях последовательность чисел {x(k)}, где самое первое значение x(0) выбирается самостоятельно, а каждое последующее находится по формуле

\[\tag{19.1} x_{(k+1)} = x_{(k)} - \frac{f(x_{(k)})}{f'(x_{(k)})},\]

сходится к точному решению этого уравнения. Нам сейчас не важно, что это за условия, при желании информацию об ограничениях метода Ньютона можно легко отыскать.

Посмотрим теперь, как использовать этот метод для вычисления эффективной процентной ставки.

Формулу (18.2), представляющую собой общее соотношение для нахождения эффективной процентной ставки, можно переписать следующим образом:

\[S_0 = R_0 + \sum_{k=1}^n {R_k\over (1+i)^{G_k-G_0}}\],

где Gk и G0 - даты платежа и выдачи кредита соответственно, выраженные в годах.

\(G=y+{d\over D}\),

где y-год, d-порядковый номер дня в году y, D - продолжительность календарного года в днях (365 или 366)

Нахождение корня этого уравнения эквивалентно нахождению корня функции

\[f(x) = \sum_{k=1}^n R_k (1+i)^{G_0-G_k} + R_0 - S_0\]

Эта функция может иметь несколько корней (нас интересуют только положительные корни), причём нам нужен минимальный положительный. Этот корень можно легко найти с помощью метода Ньютона, предварительно вычислив производную функции f(x):

\[f'(x) = \sum_{k=1}^n (G_0-G_k) R_k (1+i)^{G_0-G_k-1}\]

Теперь, выбрав в качестве начального приближения i(0) = 0, с помощью формулы (19.1) мы получим последовательность чисел i(k), сходящихся к точному значению i .

Пример
Найдём эффективную процентную ставку для ссуды, которую мы рассматривали в качестве примера в § 7 (когда речь шла об актуарном методе).

Условия, напомню, таковы. Ссуда размером S0 = 1000 фунтов стерлингов Соединенного Королевства выдана на год под годовую процентную ставку j = 20%, допустим, 1 сентября 2020 года. Выразим эту дату в годах: 2020 год - високосный, значит, 1 сентября - это 245-ый день года, для повышения точности расчетов вычтем из 2020-2000, итого получим \(20{245\over 366}\). Для погашения ссуды заёмщиком были внесены следующие частичные платежи:

  • R1 = 600 фунтов стерлингов через 3 месяца после начала сделки 1.12.2020 (\(20{56\over 61}\));
  • R2 = 10 фунтов стерлингов через 6 месяцев после начала сделки 1.03.2021 (\(21{12\over 73}\));
    R3 = 300 фунтов стерлингов через 9 месяцев после начала сделки 1.06.2021 (\(21{152\over 365}\));
    R4 = 187,14 фунтов стерлингов через год после начала сделки 1.09.2021 (\(21{244\over 365}\)).

В соответствии с описанным выше методом, введём вспомогательную функцию

\[f(i) = 600 (1+i)^{20{245\over 366}-20{56\over 61}} +10 (1+i)^{20{245\over 366}-21{12\over 73}} + 300 (1+i)^{20{245\over 366}-21{152\over 365}} + 187,14 (1+i)^{20{245\over 366}-21{244\over 365}} - 1000\]

\(f(i) =600 (1+i)^{-{91\over 366}} +10 (1+i)^{-{13225\over 26718}} + 300 (1+i)^{-{99797\over 133590}} + 187,14 (1+i)^{-{133469\over 133590}}- 1000\)

и найдём её производную:

\(f'(x) = -{91\over 366} 600 (1+i)^{-{91\over 366}-1} -{13225\over 26718} 10 (1+i)^{-{13225\over 26718}-1}-{99797\over 133590}300(1+i)^{-{99797\over 133590}-1}-{133469\over 133590}187,14(1+i)^{-{133469\over 133590}-1}\)

\(f'(x)=-{9100\over 61}(1+i)^{-{457\over 366}}-{66125\over 13359}(1+i)^{-{39943\over 26718}}-{997970\over 4453}(1+i)^{-{233387\over 133590}}-{416289811\over 2226500}(1+i)^{-{267059\over 133590}}\)

Теперь, выбрав в качестве начального приближения i(0) = 0, с помощью формулы (19.1) построим последовательность приближённых значений эффективной процентной ставки i:

k i(k)
0 0,000000000000000
1 0,171864562425799
2 0,200187008401802
3 0,200773745397079
4 0,200773986574687
5 0,200773986574728
6 0,200773986574728

Уже на шестом шаге расчёт привёл к тому же результату, что и на предыдущем, причём с точностью, которая вам вряд ли когда-нибудь сможет понадобиться. Полученный результат почти повторяет заявленную (номинальную) процентную ставку по ссуде, поскольку здесь не было ни скрытых комиссий, ни каких-либо других дополнительных выплат. Отличие обусловлено только неравномерностью продолжительности месяцев и лет.

Замечание. Лучший способ быстро произвести расчёт эффективной процентной ставки (не имея под рукой специального финансового калькулятора или компьютерной программы) — это воспользоваться каким-нибудь табличным редактором. Например, в онлайновом табличном редакторе Google весь расчёт выглядит примерно следующим образом:




Вычисление эффективной процентной ставки с помощью табличного редактора

Обратите внимание на следующие моменты:

  1. В табличном редакторе на каждом шаге нужно копировать ЭПСk+1 в ячейке D9 и вставлять значения (элемент меню "вставить значения") в ЭПСk в ячейке D2 до тех пор, пока значение ячеек D9 и D2 не будут соответствовать нужной точности.
  2. С помощью функции =ГОД(A3)-2000+(A3-ДАТА(ГОД(A3);1;0))/(ДАТА(ГОД(A3)+1;1;1)-ДАТА(ГОД(A3);1;1)) можно вычислить дату в годах для ячейки A3.

В следующем параграфе мы разберём на примере, как с помощью метода Ньютона и табличного редактора можно быстро найти полную стоимость кредита для обычного долгосрочного кредита, погашаемого ежемесячными платежами в соответствии с дифференцированной схемой. Расчет будет сильно отличаться, поскольку ПСК и ЭПС - разные функции.

В заключение напишу функции в VBA для того, чтобы получить эффективную процентную ставку максимально быстрым способом:

Function ДелитсяНа(byval y As Integer, byval m As Integer) As Integer
  ДелитсяНа = Int(y / m) - Int((y - 1) / m)
End Function

Function ПродолжительностьГода(byval y As Integer) As Integer
  ПродолжительностьГода = 365 + ДелитсяНа(y, 4) - ДелитсяНа(y, 100) + ДелитсяНа(y, 400)
End Function

Function ДатаВГодах(byval d As Date) As Double
  y = Year(d)
  t = ПродолжительностьГода(y)
  m = Month(d)
  ДатаВГодах = y - 2000 + (Day(d) + Int(30.56 * m) - 30 - Int(0.1 * m + 0.7) * (367 - t)) / t
End Function

Function ЭПС(Значения As Range, Даты As Range, Optional Предп As Double = 0) As Variant
'Функция воспринимает как даты, выраженные в годах,
'так и даты excel, причем даты, выраженные в годах от 2000 года до 2366
'года воспринимаются автоматически.
'Даты 1899-го и 1900-го года воспринимаются, как даты, выраженные в годах
  If Значения.Count <> Даты.Count Then
    ЭПС = "#РАЗМЕРНОСТИ ЗНАЧЕНИЙ И ДАТ НЕ СХОДЯТСЯ"
  ElseIf Значения.Count = 1 Then
    ЭПС = "#НЕДОСТАТОЧНО ЗНАЧЕНИЙ"
  Else
    ЭПС = Предп
    ЭПС0 = ЭПС + 0.00001
    j = 1
    Dim ДатыВГодах() As Double
    ReDim ДатыВГодах(Даты.Count)
    If Даты(1) > 366 Then
      For i = 1 To Даты.Count
        ДатыВГодах(i) = ДатаВГодах(Даты(i))
      Next
    Else
      For i = 1 To Даты.Count
        ДатыВГодах(i) = Даты(i)
      Next
    End If
    While Abs(ЭПС0 - ЭПС) >= 0.000000000000001 And j < 100
      f = 0
      diff = 0
      For i = 1 To Значения.Count
        t = ДатыВГодах(1) - ДатыВГодах(i)
        f = f + Значения(i) * (1 + ЭПС) ^ t
        diff = diff + Значения(i) * (1 + ЭПС) ^ (t - 1) * t
      Next
      ЭПС0 = ЭПС
      ЭПС = ЭПС - f / diff
      j = j + 1
    Wend
    If j = 100 Then
      ЭПС = "#РЯД НЕ СХОДИТСЯ:" & ЭПС & ";" & ЭПС0
    End If
  End If
End Function

Тогда расчет ЭПС будет совсем простым:

Остается только добавить, что встроенная функция XIRR() или ЧИСТВНДОХ() вычисляет неправильно: во-первых, недостаточно точно, во вторых, предполагается, что в году всегда 365 дней, а это не так. Для этого расчета XIRR() выдает:

Теперь вычислим, какой же четвертый платеж должен быть на самом деле при помощи актуарного способа, если кредит выдан 1.09.2020:

Небольшое отличие ЭПС от годовой процентной ставки по договору обусловлено только тем, что проценты округляются до пенни