Comments 41
А что значит величина ПСК, выраженная в процентах?
0
вы имеете в виду какое «практическое» применение у ПСК и зачем это нужно?
0
Именно это, и в целом что это за величина.
0
Дело было так:
В свое время банки регулярно пользовались «финтом ушами» — писали что кредит выдается «под 3% годовых!», но при этом ставили какие-то варварские комиссии и т.п. В итоге предложение «взять кредит под 3% годовых» в действительности превращалось в 40% годовых.
Затем лавочку с комиссиями прикрыли и начались всякие новые ухищрения — плавающая процентная ставка, обязательная страховка ну и далее по списку.
В результате законодатели решили помочь потребителям финансовых услуг и обязали всех в договоре вставлять нереальных размеров огромную рамку где написана ПСК.
В первоначальной редакции ПСК просто показывало процентную ставку по кредиту (с учетом всех платежей) с эффектом реинвестирования (т.е. это годовая доходность банка, если бы банк получал от заемщику деньги и сразу же выдавал бы аналогичный кредит). Нужна она, по сути, чтобы сравнить предложения двух банков между собой и не будучи профессионалом в сфере кредитования, понять какое предложение лучше.
Но затем случилось следующее: микрофинансовые организации, выдающие «займы до зарплаты», забили тревогу, т.к. у них ПСК получалось овер стопицот миллионов процентов годовых, что могло «шокировать» заемщика. Лоббисты лоббировали-лоббировали да вылобберовали: в формулу расчета ПСК внесли изменения, которые учитывают «специфику небольших займов под большие проценты».
Честно говоря, в нынешней редакции я понятия не имею, что показывает ПСК. Вот :)
В свое время банки регулярно пользовались «финтом ушами» — писали что кредит выдается «под 3% годовых!», но при этом ставили какие-то варварские комиссии и т.п. В итоге предложение «взять кредит под 3% годовых» в действительности превращалось в 40% годовых.
Затем лавочку с комиссиями прикрыли и начались всякие новые ухищрения — плавающая процентная ставка, обязательная страховка ну и далее по списку.
В результате законодатели решили помочь потребителям финансовых услуг и обязали всех в договоре вставлять нереальных размеров огромную рамку где написана ПСК.
В первоначальной редакции ПСК просто показывало процентную ставку по кредиту (с учетом всех платежей) с эффектом реинвестирования (т.е. это годовая доходность банка, если бы банк получал от заемщику деньги и сразу же выдавал бы аналогичный кредит). Нужна она, по сути, чтобы сравнить предложения двух банков между собой и не будучи профессионалом в сфере кредитования, понять какое предложение лучше.
Но затем случилось следующее: микрофинансовые организации, выдающие «займы до зарплаты», забили тревогу, т.к. у них ПСК получалось овер стопицот миллионов процентов годовых, что могло «шокировать» заемщика. Лоббисты лоббировали-лоббировали да вылобберовали: в формулу расчета ПСК внесли изменения, которые учитывают «специфику небольших займов под большие проценты».
Честно говоря, в нынешней редакции я понятия не имею, что показывает ПСК. Вот :)
+10
Получается (грубо говоря) это что-то вроде «конечной годовой ставки»? То есть чем она ниже — чем лучше? Просто сама аббревиатура ПСК меня смутила, что она выражается в процентах, а не абсолютных величинах.
Кстати, можно ли однозначно сказать — после 1 сентября будет выгоднее брать кредит / не выгоднее / так же, только теперь нагляднее видны предложения?
Кстати, можно ли однозначно сказать — после 1 сентября будет выгоднее брать кредит / не выгоднее / так же, только теперь нагляднее видны предложения?
0
Да, это что-то в этом роде.
Чем ниже ПСК у какого-то кредита, тем он выгоднее для заемщика — это однозначно.
Чем ниже ПСК у какого-то кредита, тем он выгоднее для заемщика — это однозначно.
0
Ее просто кучу раз переименовывали. Раньше называли «эффективной процентной ставкой». Русский язык богат неоднозначностями и двусмысленностью — поэтому как ни назови — будут думать по-разному.
0
Будет нагляднее — но если нет башки, то чтобы туда не писать — все равно заемщик попадает в кабалу. (по оценкке Forbes уровень финансовой крамотности населения РФ — 4-5%, в то время как в Германии — 40% и выше. Грамотность меряли — задавая обычные задачки по бытовой бухгалтерии — рассчитайте сумму % по депозиту на 3 года — если вы кладете 100 тьс а получите 150 тыс по окончании, посчитайте LTV — уровень ваших долговых обязательств по отношению к доходу, какая должна быть минимальная з/п для того чтобы тратить на себя NN тыс и платить YY за автомобиль и пр.)
С другой стороны — сами банки трансформируются — бардак заканчивается. Скажем по беззалоговым кредитам — % ставка только будет повышаться. Слишком много народа берет кредиты в размере 4-5 месячных зарплат — а потом влипают на невозможность их погашения и просрочки. Банк старается это компенсировать спекулятивной % ставкой — но получается только хуже — уже для новых заемщиков. Просрочка расчет быстрее кредитного портфеля. Поэтому — говоря языком специалистов — рынок беззалогового кредитования «перегрет» и крайне раздут — даже по меркам США и ЕС.
А вот иные кредиты — кредиты с залогами ( квартира, ипотека, автомобиль, дача и пр) — наоборот, сильно недоразвит. Но это тяжелее — надо собирать документы на имущество, его оценивать по справедливой рыночной цене, решать вопросы его реализации. Пока это занимает слишком много времени — поэтому в 2014 году банки озабочены ускорением и упрощением работы (ч/з автоматизацию разумеется) с такими кредитами. Станет полегче. И % ставка по ним будет падать
Третий «кредитный тренд» — кредиты малому бизнесу и прочим ИЧП. Они сейчас берут кредиты себе на дело — как «физики» — так проще и быстрее. А вот если «прикидываться» юриком — то сильно процедуры проверки дольше и неприятнее. Надо упростить и эти кредиты до скорости беззалоговоых кредитов.
С другой стороны — сами банки трансформируются — бардак заканчивается. Скажем по беззалоговым кредитам — % ставка только будет повышаться. Слишком много народа берет кредиты в размере 4-5 месячных зарплат — а потом влипают на невозможность их погашения и просрочки. Банк старается это компенсировать спекулятивной % ставкой — но получается только хуже — уже для новых заемщиков. Просрочка расчет быстрее кредитного портфеля. Поэтому — говоря языком специалистов — рынок беззалогового кредитования «перегрет» и крайне раздут — даже по меркам США и ЕС.
А вот иные кредиты — кредиты с залогами ( квартира, ипотека, автомобиль, дача и пр) — наоборот, сильно недоразвит. Но это тяжелее — надо собирать документы на имущество, его оценивать по справедливой рыночной цене, решать вопросы его реализации. Пока это занимает слишком много времени — поэтому в 2014 году банки озабочены ускорением и упрощением работы (ч/з автоматизацию разумеется) с такими кредитами. Станет полегче. И % ставка по ним будет падать
Третий «кредитный тренд» — кредиты малому бизнесу и прочим ИЧП. Они сейчас берут кредиты себе на дело — как «физики» — так проще и быстрее. А вот если «прикидываться» юриком — то сильно процедуры проверки дольше и неприятнее. Надо упростить и эти кредиты до скорости беззалоговоых кредитов.
0
Так а где, в итоге, пример расчета-то?
Если уж все равно задействовать эксель, то там есть встроенная функция ЧИСТВНДОХ, которая как раз и считает что нужно. Результат вашего кода с ней совпадает?
Если уж все равно задействовать эксель, то там есть встроенная функция ЧИСТВНДОХ, которая как раз и считает что нужно. Результат вашего кода с ней совпадает?
0
Пример расчета по ссылкам.
ЧИСТВНДОХ считает по формуле:
Такая формула ПСК действует сейчас и прекратит действие с 1 сентября 2014 года.
ФЗ от 21 июля 2014 г. N 229-ФЗ «О внесении изменений в статью 6 Федерального закона „О потребительском кредите (займе)“ вносит изменения в формулу.
Больше ЧИСТВНДОХ не подходит.
ЧИСТВНДОХ считает по формуле:
Такая формула ПСК действует сейчас и прекратит действие с 1 сентября 2014 года.
ФЗ от 21 июля 2014 г. N 229-ФЗ «О внесении изменений в статью 6 Федерального закона „О потребительском кредите (займе)“ вносит изменения в формулу.
Больше ЧИСТВНДОХ не подходит.
0
Ясно. Спасибо.
Тем не менее, я ожидал увидеть пример расчета в статье.
Тем не менее, я ожидал увидеть пример расчета в статье.
+1
Я, в общем, ожидал формулу, позволяющую пересчитать от того чудо-юда, которое никому нафиг не интересно, обратно в ЧИСТВНДОХ. Как сам топикстартер сказал — никакого смысла в том, что теперь, с учётом новых правил, будет выдаётся за ПСК нету. А в том, что действует сейчас — есть. Ну значит обычному человеку нужна не программа высчитывающая загадочные числа, а наоборот — программа, которая может пересчитать всё обратно.
0
В этой статье (в принципе относящейся только к трудящимся в финансовой сфере), я бы хотел привести пример расчета ПСК.
Я в принципе изначально указал, что статья в первую очередь для тех, кому предстоит это чудо-юдо в ближайшее время внедрять во вполне себе реальные документы.
0
Смысл в новой формуле есть.
1) Не приводит к искажениям на малые сроки и на малые суммы
2) Если нет никакой иной платы за кредит, кроме процентов — то ПСК равна этой процентной ставке
3) Удобно для аннуитетов — для ежемесячных (еженедельных) платежей не надо считать степени — все считается «на калькуляторе»
1) Не приводит к искажениям на малые сроки и на малые суммы
2) Если нет никакой иной платы за кредит, кроме процентов — то ПСК равна этой процентной ставке
3) Удобно для аннуитетов — для ежемесячных (еженедельных) платежей не надо считать степени — все считается «на калькуляторе»
0
Само название функции «чисто дох..» как бы намекает, что «стоимость потребительских кредитов» неоправданно высока.
+1
Она совпадает на «старых кредитах», с 1 сентября 2014 г она не будет (и не должна) совпадать
0
Хаха! Я тут как раз на аутсорсе пишу программу учета для одной из таких контор по «микрокредитованию до зарплаты».
Условия там такие — фирма выдает от 10 до 30 тысяч денег на срок от 10 до 30 дней, и берет за это 2% от суммы в день. Но эти 10 — 30 дней считаются «льготным периодом». Договор с клиентом заключается на 60 дней, и если клиент задержал выплату, то в оставшиеся дни с него берется 4% в день. А если клиент просрочил и все 60 дней, то по закону с него можно брать в день только 0.1% от суммы долга, накопившегося к этому времени.
После появления закона я, бухгалтер, юрист и руководство фирмы долго его курили, пытаясь постигнуть сакральный смысл числа i и прочих значений в этих расчетах. Не достигнув дзена, мы вполне справедливо решили, что любая проверяющая организация запарится вычислять ПСК по этим формулам, и поступили очень просто: у нас ПСК = 2 * ЧислоЛьготныхДней + 4 * (365 — ЧислоЛьготныхДней).
В результате, если клиент взял 30 тысяч на 30 дней, ПСК = 1400! Клиент в шоке, фирмачи потирают руки, все довольны.
Коллеги, если вы можете предложить более разумную формулу расчета в моем случае, моя благодарность не будет иметь границ в пределах разумного! :)
Условия там такие — фирма выдает от 10 до 30 тысяч денег на срок от 10 до 30 дней, и берет за это 2% от суммы в день. Но эти 10 — 30 дней считаются «льготным периодом». Договор с клиентом заключается на 60 дней, и если клиент задержал выплату, то в оставшиеся дни с него берется 4% в день. А если клиент просрочил и все 60 дней, то по закону с него можно брать в день только 0.1% от суммы долга, накопившегося к этому времени.
После появления закона я, бухгалтер, юрист и руководство фирмы долго его курили, пытаясь постигнуть сакральный смысл числа i и прочих значений в этих расчетах. Не достигнув дзена, мы вполне справедливо решили, что любая проверяющая организация запарится вычислять ПСК по этим формулам, и поступили очень просто: у нас ПСК = 2 * ЧислоЛьготныхДней + 4 * (365 — ЧислоЛьготныхДней).
В результате, если клиент взял 30 тысяч на 30 дней, ПСК = 1400! Клиент в шоке, фирмачи потирают руки, все довольны.
Коллеги, если вы можете предложить более разумную формулу расчета в моем случае, моя благодарность не будет иметь границ в пределах разумного! :)
0
ну всё просто. ПСК считается на случай, если клиент платит строго по графику, т.е. он ничего не «просрочил». Так что нужно просто определить переменную bp и указать в функции из статьи корректные входящие данные.
чтобы определить bp нужно только знать, насколько часто совершаются платежи? раз в неделю/две или раз в месяц?
просто меняйте переменную bp в функциях.
bp=7 если раз в неделю
bp=14 если раз в 2 недели
bp=30 если раз в месяц
дальше просто передаете в функцию корректные входящие данные (график платежей) и вот вам пск :)
чтобы определить bp нужно только знать, насколько часто совершаются платежи? раз в неделю/две или раз в месяц?
просто меняйте переменную bp в функциях.
bp=7 если раз в неделю
bp=14 если раз в 2 недели
bp=30 если раз в месяц
дальше просто передаете в функцию корректные входящие данные (график платежей) и вот вам пск :)
0
Платеж совершается один раз, всего один, и должен он совершаться по истечению льготного периода. Но можно заплатить и после, в течении 60 дней, правда уже с другой процентной ставкой. А в договоре нужно написать «в процентах годовых». Получается, что число платежей = 1, а процентная ставка плавает. Берем БП = 1 день, ЧБП = 365 (или нет??), вычисляем ПСК для базового периода по 2%, остальные дни года считаем по 4%, пробуем подставлять в формулу, мозг закипает… Плюем на все и вычисляем так как я написал выше.
+1
Для микрофинансовых организаций % ставка и правда может превышать сотни процентов. Вместе с тем — на малых суммах — важна скорее не исходная сумма, а сколько тебе надо вернуть.
Поэтому в МФО эту дополнительную сумму называют «сумма переплаты». По поводу льготных дней (кредитные каникулы) — то чего то вы перемудрили. Классическая схема МФО — дают сумму до 10 тыс. руб (по закону до 1 млн), и требуют ее вернуть в течение месяца. Например еженедельно равными долями. При схеме — вернешь ч/з месяц 12 тысяч — ПСК действительно будет 20*12=240% годовых
Это типичные «кредиты до зарплаты» для нищенствующего слоя населения. Поэтому МФО сильно развиты скажем в Индии.
Поэтому в МФО эту дополнительную сумму называют «сумма переплаты». По поводу льготных дней (кредитные каникулы) — то чего то вы перемудрили. Классическая схема МФО — дают сумму до 10 тыс. руб (по закону до 1 млн), и требуют ее вернуть в течение месяца. Например еженедельно равными долями. При схеме — вернешь ч/з месяц 12 тысяч — ПСК действительно будет 20*12=240% годовых
Это типичные «кредиты до зарплаты» для нищенствующего слоя населения. Поэтому МФО сильно развиты скажем в Индии.
0
А зачем вы посчитали 4%? Ведь это как я понял «штрафные» проценты, которые клиент заплатит — если только не попадет в интервал 10-30 дней? Изначально, при заключении договора (там где печатается в верхнем правом углу ПСК) — я бы возможные пессимистические % по пессимистическому сценарию — не писал.
Ваша ПСК явно 2*365 = 730%
Ваша ПСК явно 2*365 = 730%
0
вообще нужно посмотреть точную формулировку из договора.
Но если я все правильно понял — ваш случай вообще элементарный, т.к. производится всего один платеж.
в соответствии с законом вы должны рассматривать «худший» для заемщика вариант. В вашем случае худший вариант это:
1. Заемщик берет Х рублей
2. Худший вариант в период начисления процентов — он гасит платеж через 60 дней, тогда сумма платежа У вычисляется так:
У=Х(тело займа)+30*2%*Х(проценты за льготный период)+30*4%*Х(проценты за нельготный период)=280%*Х
БП=60 дней (т.к. это срок платежа, установленный договором).
ЧБП=6
Далее решаем обычное уравнение (находим i):
-X + 2.8*X/(1+i) = 0
i=1,8
Теперь ПСК:
ПСК=i*100*ЧБП=1,8*100*6=1080
Но если я все правильно понял — ваш случай вообще элементарный, т.к. производится всего один платеж.
в соответствии с законом вы должны рассматривать «худший» для заемщика вариант. В вашем случае худший вариант это:
1. Заемщик берет Х рублей
2. Худший вариант в период начисления процентов — он гасит платеж через 60 дней, тогда сумма платежа У вычисляется так:
У=Х(тело займа)+30*2%*Х(проценты за льготный период)+30*4%*Х(проценты за нельготный период)=280%*Х
БП=60 дней (т.к. это срок платежа, установленный договором).
ЧБП=6
Далее решаем обычное уравнение (находим i):
-X + 2.8*X/(1+i) = 0
i=1,8
Теперь ПСК:
ПСК=i*100*ЧБП=1,8*100*6=1080
+1
Очень, очень интересно. Момент в законе про «худший» вариант я как-то пропустил. Если принять его во внимание, все резко упрощается и вы, пожалуй, правы. Сердечно благодарю. Попробую предложить ваш вариант расчета своим фирмачам, думаю они будут рады резкому снижению ПСК :)
Еще раз спасибо.
Еще раз спасибо.
0
по поводу худшего варианта — ФЗ-353 Статья 6, пункт 7:
7. В случае, если условиями договора потребительского кредита (займа) предполагается уплата заемщиком различных платежей заемщика в зависимости от его решения, расчет полной стоимости потребительского кредита (займа) производится исходя из максимально возможных суммы потребительского кредита (займа) и сроков возврата потребительского кредита (займа)…
7. В случае, если условиями договора потребительского кредита (займа) предполагается уплата заемщиком различных платежей заемщика в зависимости от его решения, расчет полной стоимости потребительского кредита (займа) производится исходя из максимально возможных суммы потребительского кредита (займа) и сроков возврата потребительского кредита (займа)…
+1
UFO just landed and posted this here
С пенями на досрочную выплату можно послать — это законодательно отменено уже давно.
Единственное, что если ты закрываешь больше определённой суммы сразу (вроде бы 600 тыр), то обязан показать источник этих средств. Сталкивался с тем, что люди брали авто в кредит (ради скидок, бесплатной каски и прочих бонусов), а в конце первого месяца его закрывали.
Единственное, что если ты закрываешь больше определённой суммы сразу (вроде бы 600 тыр), то обязан показать источник этих средств. Сталкивался с тем, что люди брали авто в кредит (ради скидок, бесплатной каски и прочих бонусов), а в конце первого месяца его закрывали.
0
Как обычно законом не покрываются скрытые платежи типа стоимости кассовых операций
Такое еще существует? Это законно?
или пенёй на досрочную выплату.
Запретили их уже давно.
0
Вы описываете ситуацию в банковской сфере году так в 2000))
при расчете ПСК учитываются все комиссии и прочие платежи, которые возникают у заемщика вследствие заключения договора. Также кредитор обязан предоставить заемщику БЕСПЛАТНЫЙ способ исполнения обязательств.
Также при расчете ПСК предполагается, что заемщик платит «нормально», т.е. не допускает просрочек и все строго по графику. пени на досрочную выплату запрещены уже давно.
при расчете ПСК учитываются все комиссии и прочие платежи, которые возникают у заемщика вследствие заключения договора. Также кредитор обязан предоставить заемщику БЕСПЛАТНЫЙ способ исполнения обязательств.
Также при расчете ПСК предполагается, что заемщик платит «нормально», т.е. не допускает просрочек и все строго по графику. пени на досрочную выплату запрещены уже давно.
0
0
Ek — срок выраженный в долях базового периода с момента завершения Qk-го базового периода до даты k-го платежа.
Сначала нужно вычислить сколько дней прошло с момента завершения к-го базового периода до дня платежа, вычисляем по формуле (обозначим как d):
d=(кол-во дней до платежа)-(k*БП), также эту формулу можно переписать так:
d=mod[ (количество дней до платежа) /БП ]
если теперь выразить в долях от базового периода:
Ek=d/БП=mod[ (количество дней до платежа) /БП ] / БП
Почему берется именно срок от выдачи займа — вообще можно считать и по-другому, но так элементарно проще. Фактически мы на основании первоначального графика платежей берем «нулувой» датой — дату выдачи.
Строго в соответствии с определением из закона:
d = Дата_платежа(к) — (Дата_выдачи + bp*k), что очевидно можно записать и вот так:
d=(кол-во дней до платежа)-(k*БП)
Сначала нужно вычислить сколько дней прошло с момента завершения к-го базового периода до дня платежа, вычисляем по формуле (обозначим как d):
d=(кол-во дней до платежа)-(k*БП), также эту формулу можно переписать так:
d=mod[ (количество дней до платежа) /БП ]
если теперь выразить в долях от базового периода:
Ek=d/БП=mod[ (количество дней до платежа) /БП ] / БП
Почему берется именно срок от выдачи займа — вообще можно считать и по-другому, но так элементарно проще. Фактически мы на основании первоначального графика платежей берем «нулувой» датой — дату выдачи.
Строго в соответствии с определением из закона:
d = Дата_платежа(к) — (Дата_выдачи + bp*k), что очевидно можно записать и вот так:
d=(кол-во дней до платежа)-(k*БП)
0
Немного дополню. В исходной формуле на Excel стоит БП = 30, но это конечно не так — надо проверять частотность и потом брать из нее наименьшую. Я не спец по VBA Excel — может как-то проще можно было, но вот скорректированный макрос, который это учитывает
— Sub Кнопка1_Щелчок()
Dim dates()
Columns(«A:A»).Select
dates() = Application.Transpose(Range(ActiveCell, Cells(Rows.count, ActiveCell.Column).End(xlUp)))
Dim summa()
Columns(«B:B»).Select
summa = Application.Transpose(Range(ActiveCell, Cells(Rows.count, ActiveCell.Column).End(xlUp)))
Dim m As Integer
m = UBound(dates)
'Считаем интервалы БП по графику
ReDim BPall(m)
For k = 3 To m
BPall(k) = dates(k) — dates(k — 1)
Next
'подсчитываем частотность — 1000 это максимальный временной период между платежами в графике
Dim Freq(1000) As Integer
For k = 1 To 1000
Freq(k) = 0
Next
For k = 3 To m
Freq(BPall(k)) = Freq(BPall(k)) + 1
Next
'получаем период с самой наибольшей частотой
mmax = Freq(1)
For k = 1 To 1000
If mmax < Freq(k) Then mmax = Freq(k)
Next k
'берем с наименьшим БП, если одинаковая частотность
bpmin = 1000
For k = 1 To 1000
If mmax = Freq(k) And k < bpmin Then bpmin = k
Next k
'определяем Базовый период
bp = (bpmin)
cbp = Round(365 / bp)
ReDim Days(m)
For k = 2 To m
Days(k) = dates(k) — dates(2)
Next
ReDim e(m)
ReDim q(m)
For k = 2 To m
q(k) = Days(k) \ bp
e(k) = (Days(k) Mod bp) / bp
Next
R = 0
x = 1
x_m = 0
s = 0.0000001
Do While x > 0
x_m = x
x = 0
For k = 2 To m
x = x + summa(k) / ((1 + e(k) * R) * ((1 + R) ^ q(k)))
Next
R = R + s
Loop
If x > x_m Then
R = R — s
End If
psk = Round(R * cbp, 5)
Cells(3, 7).Value = psk
End Sub
----------
— Sub Кнопка1_Щелчок()
Dim dates()
Columns(«A:A»).Select
dates() = Application.Transpose(Range(ActiveCell, Cells(Rows.count, ActiveCell.Column).End(xlUp)))
Dim summa()
Columns(«B:B»).Select
summa = Application.Transpose(Range(ActiveCell, Cells(Rows.count, ActiveCell.Column).End(xlUp)))
Dim m As Integer
m = UBound(dates)
'Считаем интервалы БП по графику
ReDim BPall(m)
For k = 3 To m
BPall(k) = dates(k) — dates(k — 1)
Next
'подсчитываем частотность — 1000 это максимальный временной период между платежами в графике
Dim Freq(1000) As Integer
For k = 1 To 1000
Freq(k) = 0
Next
For k = 3 To m
Freq(BPall(k)) = Freq(BPall(k)) + 1
Next
'получаем период с самой наибольшей частотой
mmax = Freq(1)
For k = 1 To 1000
If mmax < Freq(k) Then mmax = Freq(k)
Next k
'берем с наименьшим БП, если одинаковая частотность
bpmin = 1000
For k = 1 To 1000
If mmax = Freq(k) And k < bpmin Then bpmin = k
Next k
'определяем Базовый период
bp = (bpmin)
cbp = Round(365 / bp)
ReDim Days(m)
For k = 2 To m
Days(k) = dates(k) — dates(2)
Next
ReDim e(m)
ReDim q(m)
For k = 2 To m
q(k) = Days(k) \ bp
e(k) = (Days(k) Mod bp) / bp
Next
R = 0
x = 1
x_m = 0
s = 0.0000001
Do While x > 0
x_m = x
x = 0
For k = 2 To m
x = x + summa(k) / ((1 + e(k) * R) * ((1 + R) ^ q(k)))
Next
R = R + s
Loop
If x > x_m Then
R = R — s
End If
psk = Round(R * cbp, 5)
Cells(3, 7).Value = psk
End Sub
----------
0
Вот еще подправил. Вместо исходного метода итераций — сделал поиск экстремума методом деления пополам. Существенно возросла скорость расчета, при этом можно повышать и точность.
=======
=======
=======
Public summa()
Public e()
Public q()
Public m As Integer
Sub Кнопка1_Щелчок()
Dim dates()
Columns("A:A").Select
dates() = Application.Transpose(Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp)))
Columns("B:B").Select
summa = Application.Transpose(Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp)))
m = UBound(dates)
'Считаем интервалы БП по графику
ReDim BPall(m)
For k = 3 To m
BPall(k) = dates(k) - dates(k - 1)
Next
'подсчитываем частотность - 1000 это максимальный временной период между платежами в графике
Dim Freq(1000) As Integer
For k = 1 To 1000
Freq(k) = 0
Next
For k = 3 To m
Freq(BPall(k)) = Freq(BPall(k)) + 1
Next
'получаем период с самой наибольшей частотой
mmax = Freq(1)
For k = 1 To 1000
If mmax < Freq(k) Then mmax = Freq(k)
Next k
'берем с наименьшим БП, если одинаковая частотность
bpmin = 1000
For k = 1 To 1000
If mmax = Freq(k) And k < bpmin Then bpmin = k
Next k
'определяем Базовый период
bp = (bpmin)
cbp = Round(365 / bp)
ReDim Days(m)
For k = 2 To m
Days(k) = dates(k) - dates(2)
Next
ReDim e(m)
ReDim q(m)
For k = 2 To m
q(k) = Days(k) \ bp
e(k) = (Days(k) Mod bp) / bp
Next
Dim r As Double
r = 0
Bisect 0, 10000, 0.000000000000001, r
psk = Round(r * cbp, 5)
Cells(3, 7).Value = psk
End Sub
Function F(w As Double) As Double
Dim x As Double
x = 0
For k = 2 To m
x = x + summa(k) / ((1 + e(k) * w) * ((1 + w) ^ q(k)))
Next
F = x
End Function
Sub Bisect(ByVal a As Double, ByVal b As Double, ByVal eps As Double, ByRef r As Double)
Dim c As Double
Dim fa As Double
Dim fb As Double
Dim fc As Double
fa = F(a)
fb = F(b)
Do
c = 0.5 * (a + b)
If Abs(a - b) <= eps Then
r = c
Exit Sub
End If
fc = F(c)
If Abs(fa) <= eps Then
r = a
Exit Sub
End If
If Abs(fb) <= eps Then
r = a
Exit Sub
End If
If (fc > 0 And fb < 0) Or _
(fc < 0 And fb > 0) Then
a = c
fa = F(a)
Else
b = c
fb = F(b)
End If
Loop
End Sub
=======
0
offtopic: опечатка в таге «финансы».
0
Добрый день, не могли бы вы поправить ссылки в тексте статьи?
0
этот же алгоритм(один в один ^^) на руби gist.github.com/sletix/ce8c2c4ad916dd7aed030a6ec2cc772d
0
Sign up to leave a comment.
Полная стоимость кредита(займа) – пример/алгоритм расчета