IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

R application en finance


Sujet :

R

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut R application en finance
    Bonjour,
    depuis un bon moment j'essaye de résoudre un exercice en finance sur le call et le put , mais je n'y arrive toujours pas, je ne comprends pas en fait la logique.

    L'idée est de calculer la valeur d'un call européen (c'est un contrat qui permet à son souscripteur d'acquérir l'instrument concerné, appelé alors sous-jacent, à un prix fixé à l'avance (prix d'exercice, aussi appelé strike) et à une date déterminée appelée date de maturité du call.)

    On définit donc le call=SN(d1)-Kexp(-rt)N(d2)
    tel que d1= (ln(S/K)+(r+(sigma²/2))*T)/sigma*racine(T)
    d2 = d1- sigma * racine (T)

    la réponse sous R est supposée être celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bs<‐function(sigma,T,K,S,r){
    d1=log(S/(K*exp(‐r*T)))/(sigma*sqrt(T))+1/2*sigma*sqrt(T)
    d2=d1‐sigma*sqrt(T)
    P=S*pnorm(d1)‐K*exp(‐r*T)*pnorm(d2)
    return(P)}
    mais je ne comprends pas la ligne du d1 ...
    pour moi ca aurait été comme ceci : d1=(log(S/K)+(r+(sigma^2)/2)*T)/sigma*sqrt(T)
    et une autre question s'il vous plait, pour lancer, je dois au préalable écrire les valeurs ( par ex r=0.05 ... ) après le return P puis écrire P ... ce que j'essaie depuis toute à l'heure mais ça ne donne rien ,

    Merci beaucoup pour votre aide

  2. #2
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonjour,

    d1= (ln(S/K)+(r+(sigma²/2))*T)/sigma*racine(T)
    donc
    d1=(log(S/K) + log(exp(r*T)) + (1/2)*T*sigma^2)/sigma*sqrt(T)
    = log(S*exp(r*T)/K) /sigma*sqrt(T) + (1/2)*T*sigma^2/sigma*sqrt(T)
    = log(S/(K*exp(-r*T)))/sigma*sqrt(T) + (1/2)*sqrt(T)*sigma

    (ce n'est pas vraiment de la programmation, non? )

    Pour la suite, je ne comprends pas votre question: s'agit il d'un appel à la fonction?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bs<‐function(sigma,T,K,S,r){
    d1=log(S/(K*exp(‐r*T)))/(sigma*sqrt(T))+1/2*sigma*sqrt(T)
    d2=d1‐sigma*sqrt(T)
    P=S*pnorm(d1)‐K*exp(‐r*T)*pnorm(d2)
    return(P)}
     
    MonResultat <- bs(sigma=votreSigma, T=votreT, K=K, S=S, r=0.05)
    Bonne continuation

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    merci bcp lilly pour ta réponse, c'est vrai que c'était plus des maths qu'autre chose ... : ))
    mais le souci c'est que je ne comprends pas pourquoi est ce qu'on a fait tout ce détour, si on avait écrit d1 tel que ca nous a été donné, pourquoi est ce on obtiendrait rien ?
    pour l'appel, parce qu'en fait le but de l'exercice est de calculer le prix d'un call avec des paramètres donnés comme r=5% ... comment pourrais je lancer ceci sous R , une fois que j'ai écrit toute la fonction ?

    Merci encore

  4. #4
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonsoir

    mais le souci c'est que je ne comprends pas pourquoi est ce qu'on a fait tout ce détour, si on avait écrit d1 tel que ca nous a été donné, pourquoi est ce on obtiendrait rien ?
    Je ne m'y connais pas, je ne peux donc pas répondre au début de votre question
    Pour ma part, il s'agit de la même chose.
    Pour vous en persuader, il suffit d'écrire deux fonctions, chacune avec une des deux formules de d1. Il vous suffira de comparer les résultats!

    pour l'appel, parce qu'en fait le but de l'exercice est de calculer le prix d'un call avec des paramètres donnés comme r=5% ... comment pourrais je lancer ceci sous R , une fois que j'ai écrit toute la fonction ?
    Il me semble que c'est ce que je vous ai indiqué dans mon message précédent.
    Une fois la fonction écrite, vous l'appelez en rentrant vos paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonResultat <- bs(sigma=votreSigma, T=votreT, K=K, S=S, r=0.05)
    Bon courage

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ah merci bcp lilly,
    j'ai essayé les 2 méthodes et ça marche parfaitement
    Par contre, je te serais vraiment reconnaissant si tu arrives à m'expliquer ces 2 petites lignes en gras :

    j'ai compris le mécanisme de R, mais encore une fois il y a des fonctions dont je ne comprends pas vraiment le sens.
    Ici, on veut calculer une statistique de Jarque berra, sa p value et conclure sur la normalité de la série. La statistique est :

    http://upload.wikimedia.org/math/8/9...0027facbfc.png

    Une série suit une loi normale si S=0 et K=3
    le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Jarqberra<‐function(x){
    n <‐ length(x)
    m1 <‐ sum(x)/n
    m2 <‐ sum((x ‐ m1)^2)/n
    m3 <‐ sum((x ‐ m1)^3)/n
    m4 <‐ sum((x ‐ m1)^4)/n
    b1 <‐ (m3/m2^(3/2))^2
    b2 <‐ (m4/m2^2)
    JB<‐ n * b1/6 + n * (b2 ‐ 3)^2/24
    names(JB) <‐ "X‐carré"
    param <‐ 2
    names(param) <‐ "df«
    cval<‐ pchisq(JB, df = 2)
    pval<‐ 1 ‐ pchisq(JB, df = 2)
    structure(list(statistic = JB, c.value =cval, p.value = PVAL))}
    Merci encore une fois : ))

  6. #6
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonsoir,

    je pense que vous devriez poser vos questions dans un forum de statistiques comme http://statistiques.forumpro.fr/f9-questions-generales.
    Vous auriez des réponses plus rapides

    Quelques pistes pour vous aider dans votre réflexion:
    - un petit tour sur wikipédia nous dit:
    Le test de Jarque-Bera est un test d'hypothèse qui cherche à déterminer si des données suivent une loi normale. On a :

    H_0: les données suivent une loi normale.

    H_1: les données ne suivent pas une loi normale.

    La statistique JB suit asymptotiquement une loi du χ² à 2 degrés de liberté.
    - votre but est de calculer la p-valeur (pval)
    - correspond à la fonction de répartition d'une loi du Khi2

    Bonne réflexion

    PS: je pense qu'il faut enlever les majuscules dans la dernière ligne de votre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    structure(list(statistic = JB, c.value =cval, p.value = pval))}

Discussions similaires

  1. L'application de finance de l'iPhone 4S
    Par yan dans le forum Humour Informatique
    Réponses: 10
    Dernier message: 13/10/2011, 16h20
  2. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 14h39
  3. [Kylix] Execution d'une application hors de l'edi
    Par Sadam Sivaller dans le forum EDI
    Réponses: 1
    Dernier message: 20/04/2002, 23h22
  4. Réponses: 2
    Dernier message: 15/04/2002, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo