Rostislav Kudryashov
Rostislav Kudryashov личный блог
30 марта 2026, 11:42

Сложный процент без восторгов. Трезвый взгляд

Про восторги все уже знают. Как при фиксированной ставке 8% вклад с ежегодной капитализацией за 10 лет вырастает в 2.16 раза.

Только эта ситуация не совсем реалистична. По жизни бывает так, что за эти 10 лет человек вкладывает каждый год определённую сумму. И, разумеется, все вложенные деньги за 10 лет никоим образом не удвоятся. На самом деле среднегодовая ставка при ежегодной капитализации будет 4.5777%, и суммарные вложения вырастут только  в 1.57 раза.

Чтобы ни у кого больше не возникало таких вопросов, каждый может использовать скрипт Microsoft JScript. Интерпретатор Windows Script Host (WSH) для этого диалекта JavaScript есть в каждой Windows.
// Среднегодовая доходность с фиксированной ставкой
// Без капитализации = (FV/PV - 1) / N,
// C капитализацией  = (FV/PV)^(1/N) - 1, где:
// PV - вложенная сумма, FV - полученная сумма,
// N - число ежегодных вложений.
var msg = "Расчёт средних доходностей.\n"
  + "cscript YieldMean.js R N [1]\n"
  + "R - годовая ставка, проценты. <a name="cut"></a> \n"
  + "N - число ежегодных вложений.\n"
  + "1 или пусто - вложения с индексацией."
if (WScript.Arguments.length != 2 &&
    WScript.Arguments.length != 3) {
  WScript.Echo (msg);
  WScript.Quit (0);
}
var R = parseFloat (WScript.Arguments (0)) / 100
var N = parseInt (WScript.Arguments (1))
var I = (WScript.Arguments.length == 3)
if (I == 0)
  WScript.Echo ("Без индексации вложений.")
else
  WScript.Echo ("С индексацией вложений.")
var PV = 0.0, FV = 0.0, dlt = 1
for (i = 1; i <= N; ++i) {
  PV += dlt // Первые меньшие вложения на больший срок!
  FV += dlt * Math.pow (1 + R, N-i+1)
  if (I != 0) dlt *= 1 + R
}
WScript.Echo ("Вложено  ", formatNumber (PV, 4))
WScript.Echo ("Получено ", formatNumber (FV, 4))
var avrg = (FV/PV - 1) / N * 100
var mean = (Math.pow (FV/PV, 1 / N) - 1) * 100
WScript.Echo ("Без капитализации",formatNumber(avrg,4)+"%")
WScript.Echo ("C капитализацией ",formatNumber(mean,4)+"%")
//////////
function formatNumber (val, num) {
  var fct = Math.pow (10, num)
  return Math.round (val * fct) / fct
}

Ахтунг! Смарт-Лаб иногда искажает программный код. Например втюхал:
+ "R - годовая ставка, проценты. <a name="cut"></a> \n"
вместо:   + «R — годовая ставка, проценты.\n». А здесь нарисовал угловые кавычки вместо обычных двойных.
PS Первая редакция кода с ошибкой. Не было учёта что при индексации вложений
 // Первые меньшие вложения на больший срок!
3 Комментария
  • ABC4045
    30 марта 2026, 11:44
    Ну остальные тут вообще все бухие пишут…
  • Мультитрендовый
    30 марта 2026, 11:45
    да можно просто написать калькулятор сложного процента и там дадут тебе его, там можно добавки в год, в месяц писать, процент в год в месяц, всё посчитает! Никаких скриптов, спиртов, смс и регистраций!
  • Роман Шанин
    01 апреля 2026, 08:31
    А почему сумму которую ты положил в конце периода должна вырасти в 3 раза если деньги ты только вчера положил.жди 10 лет в то что ты вложил в 16 году давно уже больше чем в 2 раза.и работа сложного процента хорошо заметна на третьем кругу.то есть когда вы вложили 1 млн по вашему примеру через 10 лет станет 2 млн а ещё через 10 лет 4 млн вот тогда начинается 8 чудо света начисляется процент на 4 млн при вложенных 1 или в 4 раза больше дохода чем в начале пути. 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн