2015-01-20 3 views
0

Как рассчитать годовую процентную ставку (APR), учитывая следующее:Excel VBA для АПР

- Кредит заимствовано в начале (USD 1000),
B - сумма общей суммы кредита окончательные расходы, уплачиваемые заемщиком равными долями (USD 2000),
с - Количество периодов начисления сложных процентов в год (52 недели),
к - Количество периодов для оплаты кредита (60 недель)

Все формулы, найденные в литературе, используют номинальную процентную ставку (также функция Excel Effective), но здесь у нас нет этого аргумента.

К АТР я имею в виду: http://en.wikipedia.org/wiki/Annual_percentage_rate

Я построил таблицу, где я могу найти APR с Excel Solver путем изменения номинальной процентной ставкой. Разве не было бы более элегантного решения для этого?

+0

с номерами вы цитируете, казалось бы, так далеко от реальности, я сомневаюсь, что любая формула будет дают значимый результат. Что вы подразумеваете под формулой VBA? – pnuts

+0

@pnuts Проверьте это: http://www.provident.com.mx/ На сегодняшний день (2015-01-22) есть предложение о предоставлении кредита на целевой странице. Вы занимаете 1000 песо. Через 31 неделю вы должны вернуть 1890 песо. Если укомплектование кредита с такими параметрами было еженедельно, то APR = 857%. Google для 'pay day loans' :-) –

+0

Я прочитал вопрос как одолжить $ 1k, погасить $ 2k каждую неделю в течение следующих 60 недель. – pnuts

ответ

1

Здесь идет код АТР. Я буду благодарен за любые замечания по оптимизации механизма поиска и типы, присвоенные переменным (Double, Integer).

Идея макроса является увеличение номинальной процентной ставки (I), начиная с 1% очень малым значением (шага) до тех пор, как она приближает нас для правильного расчета Общей стоимости ссуда, выплачиваемая равными долями (B).

Function APR(A As Double, B As Double, c As Integer, k As Integer, Optional i As Double = 0.01, Optional step As Double = 0.0001) As Double 
'Author Przemyslaw Remin, thanks for explanation to Chris Degnen 
' 
'A - Loan amount we borrow 
'B - Total amount we pay back in equal installments in k periods 
'c - Number of compoundings per year 
'k - Number of periodic payments 
'i - Nominal interest rate, here it will be used as iterator to find correct B 
'step - how much we change i, the smaller the step the more precision we get 
' 
Dim target1 As Double 
Dim target2 As Double 

Do Until target1 < target2 'we do the loop until the target falls 
    target1 = ((i/c)/(1 - (1 + i/c)^(-k)) - (B/(k * A)))^2 
    i = i + step 
    target2 = (((i + step)/c)/(1 - (1 + (i + step)/c)^(-k)) - (B/(k * A)))^2 
Loop 

APR = (1 + i/c)^c - 1 
End Function 

Благодаря Крис Degnen за его любезное объяснения по АПР механизму расчета приводится здесь: https://money.stackexchange.com/questions/43450/how-to-calculate-annual-percentage-rate?noredirect=1#comment64347_43450

+0

+1 Расчет работает как рекламируемый, предоставляя APR в качестве [эффективной годовой процентной ставки] (http://en.wikipedia.org/wiki/Effective_interest_rate). –

0

Это кажется довольно нереалистичным сценарием, но это можно понять. Я уверен, что есть более простой способ сделать это, но вы можете использовать формулу =PMT, чтобы вернуться в нее.

https://www.youtube.com/watch?v=MXf0HU-JQ1Q

Скачать файл прилагаемой формы видео YouTube и обновление с вашими ценностями. Пока что используйте фиктивный APR в качестве вилки. Удалите все строки после 60 периодов и sum столбец «Проценты». Вы ищете сценарий, в котором вы заплатили 1000,00 процентов, учитывая, что кредит был за 1000, и вы говорите, что вы заплатили 2 000,00 всего в равных выплатах. Таким образом, вам нужна сумма Intest за 60 периодов, которая должна быть 1000.

Оттуда вы можете приступить к настройке APR, отметив, что общая сумма неуплаты понесена до тех пор, пока вы не достигнете своей цели. Я придумал 136.87%, что нереально, но, как я уже сказал, ваш сценарий кажется довольно нереалистичным, если я не читаю его неправильно.

enter image description here

1

Вот модификация решения Ор в:

Во-первых, убедитесь, что B> A; то естьсуществует положительная ставка

Затем предположит смехотворно крошечную процентную ставку: скажем, 0,000000000001%

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

Двойная предполагаемая процентная ставка и повторение предыдущего шага. В конце концов, расчетный платеж превысит данный платеж. У вас теперь есть текущая предполагаемая процентная ставка, которая слишком велика, а предыдущая - слишком маленькая.

ли двоичный поиск между этими двумя значениями, пока на слишком высокой скорости и слишком низкой скорости сходимости к желаемой степени ...