VOLATILITA

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • IronMAn
    Senior Member
    • Jun 2010
    • 205

    #1

    VOLATILITA

    avendo tutti i dati
    prezzo sottostante/ prezzo opzione /scadenza strike / deviazione standard/risk free /max min opzione/vega /theta /gamma/
    in pratica ho tutto ...


    qual\'è la formula per calcolare la volatilita implicita ?

    in linguaggio excel per favore

    GRAZIE

  • livio
    Senior Member
    • May 2010
    • 519

    #2
    Re: VOLATILITA

    Se sul foglio excel sono già presenti, di solito in codice VBA, le formule per il calcolo della B&S nelle sue componenti allora sei a posto... forse.

    Comment

    • Mauri
      Senior Member
      • Apr 2010
      • 125

      #3
      Re: VOLATILITA

      Originariamente Scritto da biagio ferraro
      avendo tutti i dati
      prezzo sottostante/ prezzo opzione /scadenza strike / deviazione standard/risk free /max min opzione/vega /theta /gamma/
      in pratica ho tutto ...


      qual\'è la formula per calcolare la volatilita implicita ?

      in linguaggio excel per favore

      GRAZIE

      Solamente per Excel 2003 e Windows XP c\'è questo pacchetto di Componenti Aggiuntivi per excel si trova qui:



      c\'è di tutto e di più.

      Se ne discusso qui:

      Comment

      • marzac
        Senior Member
        • Nov 2008
        • 953

        #4
        Re: VOLATILITA

        Peccato non ci sia per Vista e 7 ... se qualcuno lo trova, ben venga

        Comment

        • Mauri
          Senior Member
          • Apr 2010
          • 125

          #5
          Re: VOLATILITA

          Oppure ho trovato questo listato di AZ 13.

          Originariamente Scritto da AZ13
          Calcolo della volatilità implicita media con metodo di ponderazione basato sui volumi di contrattazione.

          Partiamo dall’assunzione che le opzioni maggiormente contrattate siano quelle che più interessano i traders e che quindi abbiano i prezzi più equi, è possibile pensare che la volatilità associata ai relativi prezzi di mercato sia una stima più precisa.

          Prendete un foglio Excel e colleghiamo in DDE i dati di 6 strike sopra e sotto l’ATM.

          Per ogni strike considerato, i dati che ci servono sono i seguenti: Prezzo più basso di acquisto (ask) e il prezzo più alto di vendita (bid) e Volumi.
          Poi ci serve la funzione per calcolare la volatilità implicita partendo dal prezzo medio (Mid = Ask + Bid/2)

          Ecco le funzioni:

          Function Call_Volatilità(Prezzo, Strike, Giorni, Tasso, Prezzo_Call, Optional Dividendo)
          Tempo = Giorni / 365
          High = 1
          Low = 0
          If IsMissing(Dividendo) Then
          Do While (High - Low) > 0.0001
          If Call_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2) > _
          Prezzo_Call Then
          High = (High + Low) / 2
          Else: Low = (High + Low) / 2
          End If
          Loop
          Call_Volatilità = (High + Low) / 2
          Else
          Do While (High - Low) > 0.0001
          If Call_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2, Dividendo) > _
          Prezzo_Call Then
          High = (High + Low) / 2
          Else: Low = (High + Low) / 2
          End If
          Loop
          Call_Volatilità = (High + Low) / 2
          End If
          End Function

          Function Put_Volatilità(Prezzo, Strike, Giorni, Tasso, Prezzo_Put, Optional Dividendo)
          Tempo = Giorni / 365
          High = 1
          Low = 0
          If IsMissing(Dividendo) Then
          Do While (High - Low) > 0.0001
          If Put_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2) > _
          Prezzo_Put Then
          High = (High + Low) / 2
          Else: Low = (High + Low) / 2
          End If
          Loop
          Put_Volatilità = (High + Low) / 2
          Else
          Do While (High - Low) > 0.0001
          If Put_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2, Dividendo) > _
          Prezzo_Put Then
          High = (High + Low) / 2
          Else: Low = (High + Low) / 2
          End If
          Loop
          Put_Volatilità = (High + Low) / 2
          End If
          End Function

          Si calcolano i pesi attraverso i volumi per i diversi strike e si moltiplicano per le relative volatilità implicite calcolate in tempo reale.

          Sommando questi valori si ottiene la volatilità implicita media ponderata sia sulle Call sia sulle Put.

          Ebbene. Se aumenta la prima in termini relativi ho un’indicazione di rialzo se viceversa aumenta in termini relativi la seconda ho un’idicazione di ribasso.

          Comment

          • Mauri
            Senior Member
            • Apr 2010
            • 125

            #6
            Re: VOLATILITA

            Originariamente Scritto da marzac
            Peccato non ci sia per Vista e 7 ... se qualcuno lo trova, ben venga
            Dopo formattato il HD, ho reistallato xp ed excel 2003 proprio per questo motivo.

            Comment

            • gigaset
              Member
              • May 2009
              • 75

              #7
              Re: VOLATILITA

              Prova questo. Ciao

              Comment

              • IronMAn
                Senior Member
                • Jun 2010
                • 205

                #8
                Re: VOLATILITA

                Originariamente Scritto da Mauri
                Oppure ho trovato questo listato di AZ 13.

                Originariamente Scritto da AZ13
                Calcolo della volatilità implicita media con metodo di ponderazione basato sui volumi di contrattazione.

                Partiamo dall’assunzione che le opzioni maggiormente contrattate siano quelle che più interessano i traders e che quindi abbiano i prezzi più equi, è possibile pensare che la volatilità associata ai relativi prezzi di mercato sia una stima più precisa.

                Prendete un foglio Excel e colleghiamo in DDE i dati di 6 strike sopra e sotto l’ATM.

                Per ogni strike considerato, i dati che ci servono sono i seguenti: Prezzo più basso di acquisto (ask) e il prezzo più alto di vendita (bid) e Volumi.
                Poi ci serve la funzione per calcolare la volatilità implicita partendo dal prezzo medio (Mid = Ask + Bid/2)

                Ecco le funzioni:

                Function Call_Volatilità(Prezzo, Strike, Giorni, Tasso, Prezzo_Call, Optional Dividendo)
                Tempo = Giorni / 365
                High = 1
                Low = 0
                If IsMissing(Dividendo) Then
                Do While (High - Low) > 0.0001
                If Call_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2) > _
                Prezzo_Call Then
                High = (High + Low) / 2
                Else: Low = (High + Low) / 2
                End If
                Loop
                Call_Volatilità = (High + Low) / 2
                Else
                Do While (High - Low) > 0.0001
                If Call_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2, Dividendo) > _
                Prezzo_Call Then
                High = (High + Low) / 2
                Else: Low = (High + Low) / 2
                End If
                Loop
                Call_Volatilità = (High + Low) / 2
                End If
                End Function

                Function Put_Volatilità(Prezzo, Strike, Giorni, Tasso, Prezzo_Put, Optional Dividendo)
                Tempo = Giorni / 365
                High = 1
                Low = 0
                If IsMissing(Dividendo) Then
                Do While (High - Low) > 0.0001
                If Put_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2) > _
                Prezzo_Put Then
                High = (High + Low) / 2
                Else: Low = (High + Low) / 2
                End If
                Loop
                Put_Volatilità = (High + Low) / 2
                Else
                Do While (High - Low) > 0.0001
                If Put_Europea(Prezzo, Strike, Giorni, Tasso, (High + Low) / 2, Dividendo) > _
                Prezzo_Put Then
                High = (High + Low) / 2
                Else: Low = (High + Low) / 2
                End If
                Loop
                Put_Volatilità = (High + Low) / 2
                End If
                End Function

                Si calcolano i pesi attraverso i volumi per i diversi strike e si moltiplicano per le relative volatilità implicite calcolate in tempo reale.

                Sommando questi valori si ottiene la volatilità implicita media ponderata sia sulle Call sia sulle Put.

                Ebbene. Se aumenta la prima in termini relativi ho un’indicazione di rialzo se viceversa aumenta in termini relativi la seconda ho un’idicazione di ribasso.

                Mauri ma tu l\'hai provata ? Dopo averala inserita come FUNZIONE in EXCEL a me si ferma in bebug sull istruzione if call europea.

                Comment

                • IronMAn
                  Senior Member
                  • Jun 2010
                  • 205

                  #9
                  Re: VOLATILITA

                  Originariamente Scritto da Mauri
                  Originariamente Scritto da biagio ferraro
                  avendo tutti i dati
                  prezzo sottostante/ prezzo opzione /scadenza strike / deviazione standard/risk free /max min opzione/vega /theta /gamma/
                  in pratica ho tutto ...


                  qual\'è la formula per calcolare la volatilita implicita ?

                  in linguaggio excel per favore

                  GRAZIE

                  Solamente per Excel 2003 e Windows XP c\'è questo pacchetto di Componenti Aggiuntivi per excel si trova qui:



                  c\'è di tutto e di più.

                  Se ne discusso qui:


                  ne ho provate diverse di funzioni per calcolare la Volatilita in quel blocco ma nessuna mi da un risultato valido

                  avendo prezzo sottostante strike price ,prezzo opzione, max/min dell opzione ,giorni a scadenza Quale di quelle formule a Te funge ? Per calcolare la volatilita implicita dell opzione

                  IN quella della tua immagine ...come sottostante devo inserire il future ?
                  GRAZIE

                  Comment

                  • pidi10
                    Senior Member
                    • Apr 2008
                    • 4076

                    #10
                    Re: VOLATILITA

                    Prova queste

                    Function ImpliedCallVolatility(UnderlyingPrice, ExercisePrice, Time, Interest, Target, Dividend)
                    High = 5
                    Low = 0
                    Do While (High - Low) > 0.0001
                    If CallOption(UnderlyingPrice, ExercisePrice, Time, Interest, (High + Low) / 2, Dividend) > Target Then
                    High = (High + Low) / 2
                    Else: Low = (High + Low) / 2
                    End If
                    Loop
                    ImpliedCallVolatility = (High + Low) / 2
                    End Function


                    Function ImpliedPutVolatility(UnderlyingPrice, ExercisePrice, Time, Interest, Target, Dividend)
                    High = 5
                    Low = 0
                    Do While (High - Low) > 0.0001
                    If PutOption(UnderlyingPrice, ExercisePrice, Time, Interest, (High + Low) / 2, Dividend) > Target Then
                    High = (High + Low) / 2
                    Else: Low = (High + Low) / 2
                    End If
                    Loop
                    ImpliedPutVolatility = (High + Low) / 2
                    End Function

                    Comment

                    • Mauri
                      Senior Member
                      • Apr 2010
                      • 125

                      #11
                      Re: VOLATILITA

                      Originariamente Scritto da biagio ferraro
                      Originariamente Scritto da Mauri
                      Originariamente Scritto da biagio ferraro
                      avendo tutti i dati
                      prezzo sottostante/ prezzo opzione /scadenza strike / deviazione standard/risk free /max min opzione/vega /theta /gamma/
                      in pratica ho tutto ...


                      qual\'è la formula per calcolare la volatilita implicita ?

                      in linguaggio excel per favore

                      GRAZIE

                      Solamente per Excel 2003 e Windows XP c\'è questo pacchetto di Componenti Aggiuntivi per excel si trova qui:



                      c\'è di tutto e di più.

                      Se ne discusso qui:


                      ne ho provate diverse di funzioni per calcolare la Volatilita in quel blocco ma nessuna mi da un risultato valido

                      avendo prezzo sottostante strike price ,prezzo opzione, max/min dell opzione ,giorni a scadenza Quale di quelle formule a Te funge ? Per calcolare la volatilita implicita dell opzione

                      IN quella della tua immagine ...come sottostante devo inserire il future ?
                      GRAZIE
                      Come sottostante uso il Future.
                      Ho confrontato il risultato della vola implicita con il risultato dato dall\'Option Evaluator di Fiuto come da screenshot postati, poi non ho approfondito, ho ritenuto sufficiente quel confronto.

                      Sinceramente non ne faccio un uso "importante" sto solo monitorando la variazione della vola implicità in real time per vedere se riesco a trovare input operativi, ma sinceramente ancora non ho trovato spunti validi.
                      E\' la prima volta che vado oltre la classica analisi tecnica, questo per me rimane ancora un campo inesplorato.

                      La formula è quella indicata.

                      Cmq allego il mio file excel, molto artigianale senza alcuna pretesa, e se noti qualche errore fammelo sapere, grazie.


                      Comment

                      • IronMAn
                        Senior Member
                        • Jun 2010
                        • 205

                        #12
                        Re: VOLATILITA

                        si esatto quello che volevo ottenere anche io la curva dello smile
                        a me oltre certi livelli quella formula da errore :-(


                        Perche hai inserito 1.5% e NON 1% ...è il tasso di riferimento europeo ?

                        BUONA domenica ;-) ma domani 1 novembre è festa in tutta europa ?



                        Comment

                        • IronMAn
                          Senior Member
                          • Jun 2010
                          • 205

                          #13
                          Re: VOLATILITA

                          Originariamente Scritto da pidi10
                          Prova queste

                          Function ImpliedCallVolatility(UnderlyingPrice, ExercisePrice, Time, Interest, Target, Dividend)
                          High = 5
                          Low = 0
                          Do While (High - Low) > 0.0001
                          If CallOption(UnderlyingPrice, ExercisePrice, Time, Interest, (High + Low) / 2, Dividend) > Target Then
                          High = (High + Low) / 2
                          Else: Low = (High + Low) / 2
                          End If
                          Loop
                          ImpliedCallVolatility = (High + Low) / 2
                          End Function


                          Function ImpliedPutVolatility(UnderlyingPrice, ExercisePrice, Time, Interest, Target, Dividend)
                          High = 5
                          Low = 0
                          Do While (High - Low) > 0.0001
                          If PutOption(UnderlyingPrice, ExercisePrice, Time, Interest, (High + Low) / 2, Dividend) > Target Then
                          High = (High + Low) / 2
                          Else: Low = (High + Low) / 2
                          End If
                          Loop
                          ImpliedPutVolatility = (High + Low) / 2
                          End Function
                          MI da lo stesso errore .credo manchi una variabile

                          Comment

                          • pidi10
                            Senior Member
                            • Apr 2008
                            • 4076

                            #14
                            Re: VOLATILITA

                            Biagio

                            quella formula gira perfettamente sui miei programmi.
                            Non so a quale errore ti riferisci.

                            Comunque per lo smile il discorso è diverso.

                            Per gli strike per i quali puoi calcolare la volatilità usi quella, per quelli non quotati dal mm puoi usare questa formula.

                            k=6
                            IVforSmile = (Exp(Abs(Strike - QuotedPrice) / k) + HistoricVolatility) / PointValueFuture

                            Variando il k puoi modulare la curva.


                            Comment

                            • pidi10
                              Senior Member
                              • Apr 2008
                              • 4076

                              #15
                              Re: VOLATILITA

                              Capito l\'errore che prendi:


                              Function CallOption(UnderlyingPrice, ExercisePrice, Time, Interest, Volatility, Dividend)
                              CallOption = Exp(-Dividend * Time) * UnderlyingPrice * Application.NormSDist(Done(UnderlyingPrice, ExercisePrice, Time, Interest, Volatility, Dividend)) - ExercisePrice * Exp(-Interest * Time) * Application.NormSDist(Done(UnderlyingPrice, ExercisePrice, Time, Interest, Volatility, Dividend) - Volatility * Sqr(Time))
                              End Function

                              Function PutOption(UnderlyingPrice, ExercisePrice, Time, Interest, Volatility, Dividend)
                              PutOption = ExercisePrice * Exp(-Interest * Time) * Application.NormSDist(-dTwo(UnderlyingPrice, ExercisePrice, Time, Interest, Volatility, Dividend)) - Exp(-Dividend * Time) * UnderlyingPrice * Application.NormSDist(-Done(UnderlyingPrice, ExercisePrice, Time, Interest, Volatility, Dividend))
                              End Function

                              Comment

                              Working...