#--------------------------------------- simuleTrajectoireUC=function(mu,sigma,T,n){ #Trajectoire d'une UC suivant un modèle de B&S (en probabilité historique) epsilon=matrix(data=rnorm(n*T),nrow=n,ncol=T) S=matrix(data=1,nrow=n,ncol=T+1) for (t in 1:T){ S[,t+1]=S[,t]*exp(mu-sigma^2/2+sigma*epsilon[,t]) } return(S) } #--------------------------------------- prixOptionVente=function(S,K,t,r,s){ #Prix d'une option de vente dans le modèle de B&S d1=(log(S/K)+(r+s^2/2)*t)/(s*sqrt(t)) d2=d1-s*sqrt(t) p=K*exp(-r*t)*pnorm(-d2)-S*pnorm(-d1) return(p) } #--------------------------------------- alpha=function(S,K,t,r,s){ #Quantité d'actif risqué dans le portefeuille de couverture (une option) d1=(log(S/K)+(r+s^2/2)*t)/(s*sqrt(t)) a=-pnorm(-d1) return(a) } #--------------------------------------- portefeuille=function(S,K,t,T,r,s,tm,x){ #Quantité d'actif risqué et sans risque dans le portefeuille de couverture (toutes les options entre t+1 et T) aTot=0 bTot=0 for (i in (t+1):(T-1)){ d1=(log(S/K)+(r+s^2/2)*(T-t))/(s*sqrt(T-t)) a=-pnorm(-d1) b=prixOptionVente(S,K,T-t,r,sUC)-a*S y=x+trunc(i/pas)+1 aTot=aTot+tm$Lx[y]/tm$Lx[x+1]*tm$Qx[y]/pas*a bTot=bTot+tm$Lx[y]/tm$Lx[x+1]*tm$Qx[y]/pas*b } res=list() res[["a"]]=aTot res[["b"]]=bTot return(res) } #--------------------------------------- valeurPortefeuille=function(S,K,t,r,s,a,b){ #Valeur du portefeuille de couverture pour une maturité t pour une composition (a,b) w=-prixOptionVente(S,K,t,r,s)+a*S+b return(w) }