Bonjour,
Pouvez m'aider à corriger une condition dans ce code ?.
C'est la variable "timeToPayment" qui est égale = (firstCouponDate - valuationDate) + (i - 1) * (daysInYear / paymentFrequency) #[Equation 1].
En fait, la fonction prend en entrée
la date de paiement du premier coupon (firstCouponDate) : exemple 30/06/2022
la date de fréquence de paimenet de coupon (paymentFrequency)) : exemple 2 (2 fois par an)
le nombre de jour dans l'année (daysInYear)
la date de calcul du prix (valuationDate) : exemple 31/12/2021
lorsque valuationDate est inférieure à firstcoupondate = alors tous les paiements de coupon sont dans le futur
et les temps de paiement sont donnés par #[Equation 1], exemple (181, 181 + (daysInYear/paymentFrequency), 181 + 2 * (daysInYear/paymentFrequency) etc...)
lorsque valuationDate est supérieure à firstcoupondate = il faudrait faire en sorte que first coupon soit la nième date de coupon en ignorant le coupon payé avant valuationDate
par exemple si valuation date = 25/10/2023, alors first coupon ne sera plus 30/06/2022 mais 31/12/2023.
Et #[Equation 1] restera pertinente pour déterminer les temps de paiement, exemple (67, 67 + (daysInYear/paymentFrequency), 67 + 2 * (daysInYear/paymentFrequency) etc...)
Je me demande également si la variable NbCoupons (qui détermine la boucle for où itère #[Equation 1]) est correctement définie, je crois que oui.
PS : j'aimerai utiliser dateDiff et dateAdd pour être plus précis dans le code mais j'ai "sub or function not defined vba"... surement que je m'y prends mal.
j'ai essayé de revoir le code mais il y a des écarts de dates et j'oublie certains coupons futurs alors que seuls les coupons passés doivent être ignorés.
Merci
Partager