Monday 16 October 2017

My Stock Option Black Scholes Calcolatrice


Questo calcolatore di opzioni è stato progettato in modo che chiunque, dal principiante alle opzioni avanzate commerciante, può iniziare immediatamente ad usarlo. Il seguente esempio è fornito strutturato per iniziare. La sezione DEFINIZIONI viene raggiunta scorrendo verso il basso. La Option Calculator è visto meglio ad una risoluzione minima dello schermo di 800 x 600 pixel. Se non è possibile visualizzare l'intera calcolatrice sullo schermo, quindi la risoluzione sullo schermo è fissato a 640 x 480 pixel. ISTRUZIONI Non c'è bisogno di lottare ricerca per tutti i parametri di input opzione appropriati con IVolatilitys Options Calculator. Ecco perché IVolatility ti ha sollevato da questo fardello semplificando il processo di ingresso. Quello che abbiamo fatto è progettare la calcolatrice in modo che tutti i valori di input necessari per prezzo un'opzione sono determinate in anticipo dal nostro database esaustivo e poi pop-up sullo schermo ogni volta che si digita il titolo individuale o l'opzione desiderata e fare clic sul pulsante GO . Una volta che il tasto GO viene cliccato, il calcolatore Opzioni rubinetti semplicemente IVolatilitys ampio database opzioni e poi si inserisce nel prezzo delle azioni del caso, tasso di interesse, dividendi (se presenti) e il loro piano di pagamenti per quella particolare azione o l'opzione. Se uno stock viene richiamato, che poi porta automaticamente il mese opzione che è più vicino alla scadenza e la serie (pc), che è più vicina ad essere at-the-denaro. Apportare modifiche per sostituire un valore o fare un cambiamento, è possibile (1) evidenziare il valore e quindi digitare il nuovo valore, (2) fare clic sulla casella a discesa e fare una scelta o (3) clicca sul incremento frecce e passare al valore appropriato. Facendo modifiche alle opzioni è possibile creare il proprio analisi what-if. A seconda che cosa pensate può accadere, è possibile modificare lo stile di opzioni, il prezzo delle scorte, lo sciopero opzioni, la data di scadenza, i giorni della scadenza, la volatilità, il tasso di interesse e, infine, è possibile modificare gli importi dei dividendi e il calendario dei pagamenti dei dividendi. Dopo aver effettuato le regolazioni è possibile determinare le opzioni di nuovi valori facendo clic sul pulsante in alto CALCULATE. Si utilizza solo il pulsante in basso a calcolare ogni volta che si vuole vedere quale tasso Volatilità implicita corrisponde ad un nuovo prezzo di opzione che viene inserito accanto ad essa. Per ripristinare tutti i valori ai valori di default e rimuovere tutti i valori calcolati basta cliccare nuovamente sul pulsante GO. Un esempio di lavoro FASE 1 (Symbol indice azionario o Simbolo, opzione Simbolo o Aiuto): Una volta che hai un simbolo è quindi possibile utilizzarlo per vedere il prezzo delle scorte e più vicino a scadenza le opzioni at-the-money. Per esempio, digitare MSFT e fare clic sul pulsante Vai scegliere il simbolo Stock o simbolo indice dal menu a discesa. Apparirà la vicina opzione di at-the-money per Microsoft. Ricorda che se non si sa il nome del titolo, simbolo di borsa o l'opzione ora è possibile guardare in su velocemente e facilmente utilizzando il suo nome, il suo simbolo, la sua radice opzione o la sua catena di opzione completa utilizzando la ricerca simbolo nella parte superiore della pagina. Una volta che si entra nel simbolo azionario, Option Simbolo o radice opzione è sufficiente fare clic sul pulsante VAI per ottenere il prezzo dell'opzione. Tuttavia, se invece hai bisogno di aiuto quindi fare clic sul link Calcolatrici Guida. Esempio: Archivio-Microsoft Esempio: Simbolo-MSFT scegliere - Stock Symbol o simbolo Indice e quindi digitare MSFT e quindi fare clic sul pulsante GO FASE 2 (American vs stile europeo): La scelta successiva valutazione delle opzioni è necessario fare è se prezzo l'opzione come stile americano o opzione europea di tipo di stile. Qui è la differenza tra i due. AMERICAN STYLE: tutte le stock option quotate per la negoziazione nelle borse opzioni negli Stati Uniti sono opzioni di stile americano. Ciò significa che l'opzione può essere esercitata in qualsiasi momento prima della scadenza. Questa capacità esercizio anticipato è scomposto nel pricing delle opzioni. Ci sono alcune opzioni su indici che sono in stile americano e si dovrebbe verificare le specifiche del prodotto fornite dal cambio di queste informazioni. Questo calcolatore di opzioni utilizza un modello binomiale con 100 passaggi per creare un prezzo teorico per le opzioni di stile americano. Stile europeo: la maggior parte (ma non tutti) opzioni su indici quotate per la negoziazione nelle borse opzioni negli Stati Uniti sono opzioni di stile europeo. Ciò significa che l'opzione può essere esercitata solo l'ultimo giorno di negoziazione prima della scadenza. Questa incapacità di esercitare fino alla scadenza viene presi in considerazione nel pricing delle opzioni. Questa calcolatrice opzione utilizza un modello di Black-Scholes per le opzioni di stile europeo. FASE 3 (Price): Il prezzo indicato è ultime notti prezzo di chiusura. Se si vuole cambiare alla diretta prezzo corrente o di qualsiasi altro prezzo basta inserire il prezzo che si desidera. Si noti che il prezzo deve essere inserito in formato decimale (cioè 105.25) FASE 4 (Strike): Il prezzo di esercizio dell'opzione mostrato può essere modificato. Il valore di default è lo sciopero at-the-money. Le frecce su e giù a destra della casella di STRIKE possono essere usati per spostare il prezzo di esercizio, con incrementi specificati. Per scioperi inferiori a 50 l'incremento è di 2,5 punti. Per scioperi superiori a 50 e inferiori a 200 l'intervallo è di 5 punti. Per scioperi superiori a 200 l'intervallo è di 10 punti. È inoltre possibile sostituire manualmente il prezzo di esercizio con qualsiasi sciopero che si desidera. FASE 5 (Scadenza): Scegliere il mese di scadenza (il sistema calcola automaticamente il numero di giorni a scadenza) o modificare il numero di giorni per la scadenza a qualsiasi numero che si sceglie. Il valore di default è il mese di scadenza corrente e può essere modificato commutando le frecce su e giù a destra della casella. FASE 6 (volatilità): il valore predefinito è derivato automaticamente dal database. Tuttavia, la volatilità di default è derivato da ultime notti volatilità per quel particolare put e call serie opzione implicita. È possibile modificare la volatilità inserendo qualsiasi altro valore che si desidera. Vedere la sezione Definizioni per una discussione più completa di volatilità e come questo numero è determinato. STEP 7 (tasso di interesse): il valore predefinito è derivato automaticamente dal database. Tuttavia, il tasso d'interesse privo di rischio di default è derivato da ultime notti mercato tesoreria e è il tasso che è equivalente al termine opzioni di scadenza. È possibile modificare il tasso di interesse inserendo qualsiasi altro valore che si desidera. FASE 8 (importo dei dividendi, data amplificatore di frequenza): A seconda se un titolo paga un dividendo o meno questa sezione può o non può contenere dati. Se ci sono dati all'interno dei campi che è possibile modificare è semplicemente aggiungendo l'importo del dividendo e quando sarà pagato nei campi. Il Options Calculator poi prezzo delle opzioni di conseguenza. Non utilizzare un simbolo del dollaro per l'importo del dividendo. FASE 9 (Calcolo): Ora siete pronti per calcolare la chiamata e mettere i prezzi per questa opzione. Siamo in grado di verificare che si capisce come fare cambiamenti in tutti gli ingressi, facendo un ultimo cambiamento. Ricordiamo che il sistema aggiorna automaticamente la differenza tra oggi e la data di scadenza dell'opzione. Per oltre giro questa funzione automatica farci Type 35 nei giorni a campo scadenza. In questo modo saremo tutti pricing questa opzione con gli stessi parametri. Una volta fatto questo, fare clic sul pulsante in alto calcolare e il prezzo dell'opzione verrà calcolato da tutti i valori utilizzati in precedenza. Il prezzo che si dovrebbe ottenere se sono state apportate le modifiche di cui sopra è 5,8473 per le chiamate e 10,0017 per le put. I greci sono calcolati in collaborazione con i prezzi delle opzioni. Greci (Delta, Gamma, Theta, Vega e Rho) sono valori matematici che misurano la sensibilità di un prezzo di opzioni di borsa, Tempo, la volatilità e dei tassi di interesse cambiamenti - vedi DEFINIZIONI. Questa calcolatrice consente di visualizzare un calcolo di un giorno di Theta. Tuttavia, è possibile calcolare qualsiasi quantità di theta degrado alterando i giorni di scadenza. Per esempio, se si volesse calcolare il costo tempo di decadimento associato ad una 10 giorni di passare del tempo si sarebbe semplice sottrarre 10 giorni dal momento in opzioni fino a scadenza e quindi confrontare che le opzioni di prezzo per il prezzo dell'opzione originaria. FASE 10 (volatilità implicita) tenendo costanti tutte le variabili nel modello di opzioni di prezzo, tranne volatilità, l'utente può inserire i prezzi alternativi sia per una opzione call o put per vedere cosa volatilità deve essere utilizzato per creare quel prezzo opzioni. Questa volatilità è chiamato volatilità implicita - vedi DEFINIZIONI. La volatilità implicita è calcolata come segue: Inserire un prezzo opzioni. Questo prezzo può essere un prezzo teorico o quello osservato direttamente dal mercato delle opzioni in cui l'opzione è scambiato. Fare clic sul pulsante Calcola fondo e verrà visualizzata la Volatilità implicita. AMERICAN-STYLE OPZIONE A mettere o chiamare che può essere esercitato in qualsiasi momento prima della scadenza. La maggior parte delle opzioni su azioni quotate, comprese quelle su mercati esteri, sono in stile americano. CALL Un'opzione in cui il titolare ha il diritto ma non l'obbligo di acquistare il titolo sottostante ad un determinato prezzo di esercizio per un periodo di tempo limitato. DAYS della scadenza Il numero di giorni rimanenti in una vita opzioni prima della scadenza e diventa inutile o eserciti e equivalga al suo valore intrinseco. European-Style OPZIONE A mettere o chiamare che può essere esercitato solo sulla sua data di scadenza. Un certo numero di opzioni di tipo europeo sono stati introdotti negli ultimi anni, in particolare su indici azionari e opzioni su valute. Una delle opzioni in stile europeo più importanti è l'indice SampP 500 (SPX). SCADENZA La data di scadenza dell'opzione o decade. La data di scadenza per stock option di cui è il Sabato dopo il terzo Venerdì del mese di scadenza. Un possessore di opzioni che intende esercitare un'opzione per scadenza deve dare istruzioni di esercizio per la sua società di brokeraggio prima che le aziende il tempo limite per accettare istruzioni di esercizio l'ultimo giorno di contrattazione prima della scadenza. I greci una lettera greca indica una sensibilità opzioni per certi tipi di movimenti. Gli esempi includono Delta, Gamma, Theta, Vega, Rho e Alpha - tutti identificati dalla lingua inglese ortografia delle rispettive lettere greche. DELTA L'ammontare un prezzo opzioni cambierà per una corrispondente variazione di un punto del prezzo del titolo sottostante. GAMMA La variazione delta diviso per la variazione dollaro nel prezzo del prezzo securitys sottostante. È la misura della velocità di variazione nel prezzo opzioni rispetto al prezzo sottostante. THETA Una misura di quanto un prezzo di opzioni decade nel tempo con il prezzo del titolo sottostante e Volatilità implicita è rimasta invariata. VEGA La misura della variazione nel prezzo opzioni in risposta ad una variazione di un punto percentuale volatilità. RHO Una misura di variazione di un prezzo di opzioni in risposta ad una variazione percentuale del tasso di interesse privo di rischio. ALPHA Alpha è un rapporto di Gamma su Theta. Così Alpha indica il valore relativo di possedere gamma rispetto al livello attuale di theta. Alpha è stato descritto come un bang per il buck misura. Si tratta di una misura che permette la comparazione delle diverse opzioni sulla base di quanto costano giornaliero di possedere (giornaliero Theta) rispetto al potenziale gamma derivata ritorno (profitti di movimento) da loro possesso. Il maggior valore assoluto di Alpha più potenziale di profitto esiste contro la perdita da Theta per le posizioni lunghe. Il contrario è vero per le posizioni corte. La volatilità implicita Il valore volatilità acquirenti e venditori di opzioni sembrano accettare dal prezzo di mercato dell'opzione. Si ottiene collegando il prezzo dell'opzione corrente in un modello di valutazione delle opzioni e la ricerca di questa volatilità sconosciuta su base iterativa. TASSO DI INTERESSE Il costo di usare il denaro come determinato ad un tasso per periodo di tempo, di solito un anno (cioè tasso di interesse). Opzioni acquirenti e venditori di solito monitorare il tasso di interesse privo di rischio di statunitensi Treasuries. PUT Un'opzione in cui il titolare ha il diritto ma non l'obbligo di vendere il titolo sottostante ad un determinato prezzo di esercizio per un periodo di tempo limitato. STRIKE PRICE Il prezzo a cui il titolo o indice sottostante l'opzione può essere acquistato (per una opzione call) o venduti (per un'opzione put) per tutta la durata di un'opzione. Conosciuto anche come il prezzo di esercizio. Prezzo del sottostante StockIndex - Il prezzo attuale del titolo o valore dell'indice che è oggetto di un'opzione. VOLATILITA Una misura della quantità con cui un titolo sottostante può tendere a oscillare in un dato periodo di tempo. Di solito misurato con la varianza o deviazione standard annualizzata delle variazioni giornaliere di prezzo in un titolo. Si dice essere alta se il prezzo cambia drasticamente in un breve periodo di tempo. La volatilità è uno degli elementi più importanti nel valutare un'opzione perché di solito è l'unica variabile valutazione non conosciuto con certezza in anticipo. TopquotBlack-Scholesquot in più lingue Gennaio 2008:. Dopo aver studiato letteratura (qualcosa che molti dei famosi studiosi stessi, ovviamente, non hanno fatto correttamente) è ovvio che noi commercianti opzione non hanno usato la formula di Black-Scholes-Merton in pratica (si veda anche articolo Frobes) Solo se si utilizza vicino al continuo delta hedging tempo per rimuovere vicino a tutti i rischi per tutto il tempo in realtà si sta utilizzando la Black-Scholes (o la versione di Black-Scholes-Merton) della formula scelta. L'unico problema è praticamente impossibile. Se si rimuove la maggior parte dei rischi per le opzioni di copertura con opzioni, ottenere immunitario per far saltare in aria il rischio dal modo in cui si costruisce il portafoglio opzione, quindi si stanno utilizzando i commercianti formulamethod che è stato scoperto prima di Black-Scholes-Merton da una serie di operatori e ricercatori, i modulo primo contributo Bachelier il 1900 e l'ultimo da Thorp 1969 quindi questo è il motivo per cui pensiamo che dovrebbe essere chiamato la formula Bachelier-Thorp. In pratica, è possibile rimuovere il rischio con copertura delta discreta (conosciuto molto tempo prima di Black-Scholes e Merton), ma non è possibile rimuovere abbastanza rischio di discutere per la valutazione del rischio neutrale (e questo è l'argomento principale di Black-Scholes-Merton). Vedere il Capitolo 2 nel mio libro Derivati ​​modelle sui modelli per una discussione dettagliata su come coprire le opzioni nella pratica. È naturalmente conosce la cosiddetta opzione di formula quotBlack-Scholes-Mertonquot, che actualy non è la formula di Black-Scholes-Merton (BSM è stato un argomento teorico di copertura relativi a valutazione neutrale al rischio), ma in quante lingue Proprio come me immagino si parla norvegese, francese, russo, inglese, svedese e danese, ma per quanto riguarda le lingue veramente interessanti come (ora in più di 30 lingue): Objective-Ciphone, F, Autoit, Fortezza, Lua, APL, SAS, Mathcad, J, MEL, Postscrip t, VB, Pulito, Ruby, Lisp, Prolog, PLSQL, Lyme, ColdFusion, K, C, HP48, Transact SQL, OCaml, Rebol, reale di base, Icona, Squeak, Haskell, Java. JavaScript, VBA, C, Perl, Maple, Mathematica, Matlab, S-Plus, IDL, Pascal, Python, Fortran, Scheme, PHP, GNU, gnuplot. Se è stato implementato Black-Scholes in un'altra lingua Sarei felice di ottenere una copia del codice sorgente per metterla in questa pagina (in questo caso cercare di usare gli stessi simboli e la messa a punto come sotto) Nelle diverse implementazioni Qui di seguito vi utilizzerà i simboli: Black-Scholes direttamente in un foglio Excel (quotkeep semplice stupidquot) Se avete paura di linguaggi di programmazione si può iniziare con il fare di Black-Scholes direttamente in un foglio di Excel, basta digitare ciò che si vede qui sotto. Se si utilizza la versione norvegese o francese di Excel è necessario fare un po 'di traduzione te: sei troppo pigro per digitare ciò che si vede sopra Va bene mi scaricare qui di Black-Scholes in Visual Basic da Espen Gaarder Haug Visual Basic: facile da programmare ma piuttosto lento The Black e Scholes (1973) di stock option formula BlackScholes funzione pubblica (CallPutFlag As String. S As Double. X come doppio. T come doppio. R come Double. v come doppio) come doppio Dim d1 As Double. d2 As Double d1 (Log (SX) (rv 2 2) T) (v Sqr (T)) d2 d1 - v Sqr (T) Se CallPutFlag quotcquot Poi BlackScholes S CND (D1) - X Exp (-r T) CND (D2) ElseIf CallPutFlag quotpquot Poi BlackScholes X Exp (-r T) CND (-D2) - S CND (-d1) End If End Function La cumulativa normale funzione di distribuzione pubblica funzione CND (X come doppio) come doppio Dim L come doppio . K come doppio Const A1 0,31,938153 millions: Const a2 -,356563782: Const A3 1,781,477937 millions: Const a4 -1,821255978: Const a5 1.330274429 L Abs (X) K 1 (1 ,2316,419 mila L) CND 1 - 1 Sqr (2 Application. Pi ()) Esp (-L 2 2) (A1 K a2 K 2 A3 K 3 A4 K 4 a5 K 5) Se X lt 0 Then CND 1 - CND End If End Function da Espen Gaarder Haug C: un po 'più difficile di quanto la maggior parte delle altre lingue, ma molto veloce e potente. Dopo il mio parere il linguaggio informatico Rolls Royce per i modelli matematici in cui è necessario velocità (per le soluzioni in forma chiusa, come i neri-Scholes si sta naturalmente facendo bene in quasi tutte le lingue, ma quando si tratta di larga scala Monte Carlo C è davvero un plus). ifndef Pi definire Pi 3,141592653589793238462643 endif The Black e Scholes BlackScholes doppie (1973) di stock option formula (char CallPutFlag, Double S, doppia X, doppia T, Double R, doppia v) doppia D1, D2 se (CallPutFlag c) tornare S CND ( d1) - X exp (RT) CND (d2) else if (CallPutFlag p) return x exp (-r T) CND (-D2) - S CND (-d1) La funzione di distribuzione normale cumulativa doppia CND (doppia X) doppio const a1 0,31,938153 millions, a2 -0,356563782, a3 1,781,477937 millions doppio const a4 -1,821255978, a5 1.330274429 L fabbriche (X) K 1,0 (1,0 ,2316,419 mila L) w 1,0-1,0 sqrt (2 Pi) exp (LL 2) (K A2 A1 KK a3 pow (K, 3) A4 pow (K, 4) a5 pow (K, 5)) di Black-Scholes in Java da Espen Gaarder Haug semplice da programmare, può essere utilizzato per costruire le applet Java o grandi sistemi standalone. Molto più veloce di Java Script e VBA, ma ancora più lento di CC The Black e Scholes (1973) di stock option formula doppie BlackScholes pubblici (char CallPutFlag, doppia S, doppia X, doppia T, Double R, doppia v) doppia D1, D2 Il cumulativa normale funzione di distribuzione pubblica doppia CND (doppia X) doppia L, K, w doppio A1 ,31,938153 millions, a2 -0,356563782, a3 1,781,477937 millions, a4 -1,821255978, a5 1.330274429 L Math. abs (X) K 1,0 (1,0 ,2316,419 mila L) w 1.0 - 1.0 Math. sqrt (2.0 Math. PI) math. exp (LL 2) (A1 K a2 KK a3 Math. pow (K, 3) A4 Math. pow (K, 4) a5 Math. pow (K, 5) ) Black-Scholes applet Java controllare anche Wenhua Wang eccellente opzione Java Pricer di prima edtion del mio libro di Black-Scholes in Java script da Espen Gaarder Haug (grazie a Kurt Hess presso l'Università di Waikato per la ricerca di un bug nel mio codice) facile da il programma, può essere utilizzato direttamente sul web, ma piuttosto lento The Black e Scholes (1973) di stock option BlackScholes funzione fORMULA (PutCallFlag, S, X, T, R, v) var d1, d2 d1 (Math. log (SX) (RVV 2.0) T) (v Math. sqrt (T)) d2 d1 - v Math. sqrt (T) se (PutCallFlag quotcquot) tornare S CND (d1) - X math. exp (-r T) CND (D2) altrimenti tornare X math. exp (-r T) CND (-D2) - S CND (-d1) La cummulative funzione di normale distribuzione: var a1, a2, a3, a4, a5, k A1 0,31,938153 millions, a2 -0,356563782, a3 1,781,477937 millions , a4 -1,821255978. A5 1,330,274429 millions se (xlt0.0) return 1-CND (-x) altro k 1,0 (1,0 x ,2316,419 mila) restituire 1,0 - math. exp (-xx 2.0) Math. sqrt (2Math. PI) k (A1 k (-,356563782 k (1,781,477937 millions k (k -1,821255978 1,330,274429 millions)))) da Jérôme V. Braun Perl è l'chainsawquot quotSwiss esercito di linguaggi che, naturalmente, può anche essere utilizzato per Black-Scholes: routine per l'attuazione del (formula di pricing 1973) l'opzione di Black e Scholes . GBlackScholes prezzi utilizzo (callputflag, S, X, T, R, B, v) Qui Cltcallputflaggt è o C o p per una chiamata o mettere rispettivamente BlackScholes sotto il mio (callputflag, S, X, T, R, v) calcolare una certa I valori ausiliari mia d1 (log (SX) (rv22) T) (v spessore 0,5) il mio d2 d1 - v spessore 0,5 approssimare la distribuzione normale cumulativa. Cioè, il valore dell'integrale della densità normale standard da meno infinito Cltxgt. sub CND mia x spostare il percentile in esame la mia Pi 3,141592653589793238 serie di Taylor coefficienti mia (A1, A2, A3, A4, A5) (,319,38153 milioni, -0,356563782, 1,781,477937 millions, -1,821255978, 1,330,274429 millions) utilizzano la simmetria per eseguire il calcolo per il diritto di 0 mia L abs (x) il mio k 1 (1 0.2316419L) per poi tornare il ritorno valore appropriato (x gt 0). CND. 1-CND Black-Scholes in acero da Espen Gaarder Haug facile da programmare, piacevole per le prove e modelli di opzione comprensione, ma piuttosto lento. GT con anova (statistiche), descrivere, in forma, ImportData, casuale, statevalf, statplots, trasformare la funzione di distribuzione normale cummulative: gt CND: proc (d) gt statevalfcdf, normald (d) gt fine: The Balck-Scholes (1973) magazzino opzione Call formula. gt BlackScholesCall: proc (S, X, T, R, v) gt d1 locale, d2 gt d1: (ln (SX) (rv22) T) (vsqrt (T)) gt d2: d1-vsqrt (T) SCND gt (d1) - Xexp (RT) CND (d2) gt fine: The Balck-Scholes opzione formula (1973) stock put. gt BlackScholesPut: proc (S, X, T, R, v) gt locale d1, d2 gt d1: (ln (SX) (rv22) T) (vsqrt (T)) gt d2: d1-vsqrt (T) gt Xexp (RT) CND (-D2) - SCND (-d1) gt fine: da Espen Gaarder Haug facile da programmare, piacevole per i modelli di opzione comprensione test e. Mathematica 3.0 era piuttosto lento, ma Mathematica 4.0 è abbastanza veloce (Mathematica 4.0 su un G3 a 266 MHz Power Mac battere MATLAB 5.2 su un sistema Pentium II 300 MHz per un fattore medio di 4,3. MacWorld 10-99). Che cosa allora accadrà se si mette Mathematica 4.0 su un Mac G4, oh mio Dio. (Grazie a Wolfram e Steve Jobs la vita è degna di essere vissuta). La cummulative funzione di distribuzione normale: Il Balck-Scholes (1973) di stock option formula: Espen Gaarder Haug Se si dispone di uno sfondo da Ingegneria probabilmente sapete Matlab. Facile da programmare, piacevole per la modellazione proto, abbastanza veloce, ma ancora lento rispetto a Java e CC. (Il seguente codice deve essere salvato come file di Matlab M): Black e Scholes in Matlab Black-Scholes in S-Plus di Trygve Nilsen, Università di Bergen in Norvegia e Gene D. Felber, Talus Solutions Inc S-Plus è lo strumento preferito per molte persone che lavorano con statistica matematica. S-Plus è anche un ottimo strumento per la modellazione di strumenti finanziari derivati. Il codice qui sotto sarà anche eseguito con il software R libero. call. value LT - funzione di (S, X, T, R, v) d1 lt - (log (SX) (r0.5v2) t) (vsqrt (t)) d2 lt - d1-vsqrt (t) Spnorm (d1 ) - Xexp (-rt) pnorm (d2) Importante: S-PLUS ha un built-in funzioni interne per quotTquot e quotcallquot. L'assegnazione di un valore a questi in una funzione crea un conflitto e la formula restituisce un valore non corretto. Con Goran Gasparovic, The Johns Hopkins University. Baltimora, Maryland (U. S.A.) IDL dei dati linguaggio interattivo (disponibile da rsinc. Molto costoso, ma utile software). Black-Scholes in icona dalla Squeak2.8 del 13 giugno 2000 ultimo aggiornamento: 2359 il 10 giugno 2001 alle 19:40:05 Oggetto sottoclasse: BlackScholes instanceVariableNames: classVariableNames: poolDictionaries: Categoria: BlackScholes classificati instanceVariableNames classe: BlackScholes classe methodsFor: calcolo timbro: WRT 6102001 19:39 isCall: isCall S: s x: x T: TR: rv: v utilizzo quotexample: BlackScholes isCall: true S: 27.9 x: 30 T: 6.0 365 r: 1,05,333 mila v: 0.75 quot d1 d2 d1 : vv 2.0 rt (sx) ln (vt sqrt). d2: d1 - (v t sqrt). isCall ifTrue: s (self CND: d1) - (x (r negato t) exp (self CND: d2)) ifFalse: x (r negato t) (auto CND: d2 negato) - (s (self CND: d1 negata )). BlackScholes classe methodsFor: timbro privato: WRT 6102001 16:53 CND: x l k un w a: (0,31938153 -0,356563782 1,781477937 -1,821255978 1,330274429). L: x abs. k: 1,0 (0,2316,419 mila l 1). w: 1,0 - (1,0 (2 Float pi) sqrt (l negato l 2) exp ((da 1 a 5) iniettare: 0 in:: Somma: ciascuna (una a: ciascuno) (k raisedToInteger: ciascuno) sum)) . x ifTrue negativo: 1 - w ifFalse: w. Con Espen Gaarder Haug Molto facile da programmare, con la semplice pressione di un pulsante il codice può essere compilato per PC o MAC. Tutto sembra naturalmente brutto su un PC (anche la macchina), il risultato su un Mac Carbon X è semplicemente fantastico veloce e fantasia Ancora meglio si può facilmente porta il codice VBA in una vesciche veloce e fantasia applicazione. Semplice esempio: Black-Scholes in carbonio (Solo per Mac X Freeks) Scarica qui Secondo George F. Colony, Un'altra tecnologia software verrà lungo e uccidere il Web, proprio come Web Notizie ucciso, Gopher, et al. E quel giorno del giudizio arriverà molto presto - entro i prossimi due o tre anni, non 25 anni da oggi. Che andrà a sostituire It X internet. Non preoccupatevi vi daremo un codice REBOL Black-Scholes in modo da poter sopravvivere giorno del giudizio. REBOL è un linguaggio di programmazione interessante ed espressivo ben adatto per l'utilizzo di Internet e cross-platform. REBOL Home Applicazioni rete distribuita per Internet X. C'è molto di più informazioni sulla lingua al loro sito web (Rebol. L'intero REBOL runtime (compreso il pacchetto grafico) si inserisce su un floppy disk (ottenere da reboldownload. html) impostare una A1 A2 A3 A4 A5 0,2316,419 mila ,31,938153 millions ( - ,356,563782 millions) 1,781,477937 millions (- 1,821,255978 millions) 1,330,274429 millions W1: (K a1) (A2 (K 2)) (A3 (K 3)) (A4 (K 4)) (A5 (K 5)) w: 1 - ((W1 radice quadrata (2 pi)) exp (- (LL) 2)), se negativo x ritorno 1 - w ritorno w Black-Scholes: soldi func s magazzino quotactual pricequot x soldi quotstrike pricequot t numero quotyears a maturityquot numero r quotrisk senza interessi ratequot v numero quotvolatilityquot chiamare quotcall opzione (di default) quot messo quotput optionquot locale d1 d1 d2: (log-e (sx) ((r ((v 2) 2)) T)) (v radice quadrata t) d2: d1 - (v radice quadrata t) o (non mettere) (s cum-normale-dist d1) - ((x exp (- rt)) cum-normale-dist d2) ((x exp (- rt)) cum normale-dist negate d2) - (s cum-normale-dist - d1) Qui è l'implementazione di Black-Scholes nel linguaggio OCaml. Questo è un linguaggio molto potente ed estremamente veloce. I suoi programmatori un sogno lingua Grazie per la fornitura di tutti quei calcoli nero Schole in diverse lingue. Molto utile Sono stato bisogno di uno in SQL quindi ho usato uno dei suoi esempi e convertita in Transact-SQL. Prima di diventare un ingegnere finanziario ho usato per essere un vero e proprio ingegnere, così ho naturalmente implementato BS sulla mia calcolatrice, utilizzando la notazione reverse-polacco (aka RPN). LTLT - gt SX camper T LTLT SX LN camper SQ 2 T v T SQRT DUP v T SQRT - - gt d1 d2 LTLT S 1 0 1 d1 UTPN - X R T NEG EXP 1 0 1 d2 UTPN - - quotCquot - gtTAG X r T NEG EXP 1 0 1 d2 NEG UTPN - S 1 0 1 d1 NEG UTPN - - quotPquot - gtTAG gtgt gtgt Nota: quotSQRTquot è un singolo carattere che rappresenta la radice quotsquare symbolquot quotltltquot, quotgtgtquot e quot-gtquot sono tutti i singoli simboli calcola sia call e put valori, lasciando i nomi taggati in pila. BlackScholes funzione ltcfscriptgt (callputflag, S, X, T, R, v) var d1 (log (SX) (r (v2) 2) T) (v (spessore 0,5)) var d2 d1 - v (spessore 0,5) if (callputflag eq c) di ritorno S CND (D1) - x exp (-r T) CND (d2) altro ritorno x exp (-r T) CND (-D2) - S CND (-d1) la funzione CND (x) la normale funzione di ripartizione var Pi 3,141592653589793238 var a1 ,31,938153 millions var a2 -0,356563782 var a3 1,781,477937 millions var a4 -1,821255978 var a5 1,330,274429 millions var L abs (x) var k 1 (1 ,2316,419 mila L) var p 1 - 1 ((2 Pi) 0.5 ) exp (- (L2) 2) (A1 k a2 (k2) a3 (k3) A4 (K4) A5 (K5)), se (x gte 0) return p ritorno altro 1-p ltCFSET CallPutFlag tlc ltCFSET S49.25gt ltCFSET X50.00gt ltCFSET T0.1gt ltCFSET r0.35gt ltCFSET BlackScholes v0.30gt ltcfoutputgt (CallPutFlag, S, X, T, R, v) ltcfoutputgt Black-Scholes a Lyme con Donsyah Yudistira io stesso sono un grande fan di Black Scholes Option Pricing Formula. La bellezza della derivazione ha incoraggiato molte persone, io e te compreso, di scrivere in poche lingue, come visto nella vostra pagina. Poche settimane fa, la mia bella moglie mi ha comprato un Sony Clie PDA. Non molto tempo dopo, stavo navigando in rete per cercare la migliore applicazione per calcolare Black Scholes Option. Mi sono imbarcato in Lyme da Calerga (calerga). Lyme è un porto di LME (quotLightweight Math Enginequot, il cuore di sysquake) per dispositivi palmari Palm OS. Questo software freeware mi stupisce molto in quanto è potente come Mathematica, Matlab, acero, e altri software matematico e la cosa migliore è che si può portare ovunque in un dispositivo compatto. Senza ulteriori dovuto, ecco un piccolo script a Lyme per europea Scholes nero Opzione: mbs funzione (cp, s, x, T, R, v) d1 (log (sx) (rvv2) t) (vsqrt (t)) d2d1 - vsqrt (t) se mscdf cpc (normale, d1) - xexp (-rt) CDF (normale, d2) elseif cpp mxexp (-rt) CDF (normale, - D2) - scdf (normale, - d1) fine Black - Scholes in PLSQL da Fernardo Casteras, bunos Aires, Argentina ingegnere elettrico Fernardo Casteras ci dà la formula di Black-Scholes scritto in PLSQL. PLSQL è la programmazione per il linguaggio usato per scrivere stored procedure in database relazionali Oracle e strumenti di front-end, un ambiente ampiamente utilizzato nelle aziende. CREARE O SOSTITUIRE BLACKSCHOLES FUNZIONE (CALLPUTFLAG IN VARCHAR2, S IN NUMERO, X IN NUMERO, T in numero, R IN NUMERO, V IN NUMERO) RETURN numero è - D1 NUMERO D2 NUMERO PI NUMERO: 3,141592653589793238462643 RISULTATO NUMERO - FUNZIONE CND ( X NUMERO) RITORNO numero è - L NUMERO K NUMERO A1 NUMERO: ,31,938153 millions A2 NUMERO: -0,356563782 A3 NUMERO: 1,781,477937 millions A4 NUMERO: -1,821255978 A5 NUMERO: 1,330,274429 millions RISULTATO NUMERO - BEGIN - L: ABS (X) K: 1 (1 0.2316419 L) RISULTATO: 1 - 1 SQRT (2 PI) EXP (-POWER (L, 2) 2) (A1 K A2 POWER (K, 2) A3 POWER (K, 3) A4 POWER (K, 4) A5 POWER (K, 5)) IF (X lt 0) poi risultato: (1 - RISULTATO) End If - RITORNO RISULTATO - FINALE CND - BEGIN - RISULTATO: 0 D1: (LN (SX) (R POWER (V, 2) 2) T) (V SQRT (T)) D2: D1 - V SQRT (T) IF (CALLPUTFLAG C) poi risultato: S CND (D1) - X EXP (RT) CND (D2) ELSIF (CALLPUTFLAG P) poi risultato: X EXP (RT) CND (-D2) - S CND (-d1) End If - RITORNO rISULTATO - FINALE Black-Scholes in Prolog da Lou Odette, mA USA ho provato a Arity Prolog, ma dovrebbe funzionare in qualsiasi standard Prolog. chiamare casi blackscholes (chiamata, S, X, T, R, V, prezzo): - D1 è (ln (SX) (RVV2) T) (Vsqrt (T)), D2 è D1 - (Vsqrt (T)), cumulativenormal (D1, CND1), cumulativenormal (D2, CND2), il prezzo è SCND1 - Xexp (RT) CND2. mettere caso blackscholes (parole, S, X, T, R, V, prezzo): - D1 è (ln (SX) (RVV2) T) Vsqrt (T), D2 è D1 - Vsqrt (T), cumulativenormal (-d1 , CND1), cumulativenormal (-D2, CND2), il prezzo è Xexp (RT) CND2 - SCND1. Cumulativa normale cumulativenormal Distribution (X, CND): - X lt 0, A1 è ,31,938153 millions, A2 è -,356563782, A3 è 1,781,477937 millions, A4 è -1,821255978, A5 è 1,330,274429 millions, L è abs (X), K è 1.0 (1.0 ( 0.2316419 L)), CND è (1.0sqrt (2pi)) exp (-LL2) (A1K A2KK A3 (K3) A4 (K4) A5 (K5)). cumulativenormal (X, CND): - A1 è ,31,938153 millions, A2 è -,356563782, A3 è 1,781,477937 millions, A4 è -1,821255978, A5 è 1,330,274429 millions, L è abs (X), K è 1,0 (1,0 (,2316,419 mila L)), CND è 1,0 - (1,0 (sqrt (2pi)) exp (-LL2) (A1K A2KK A3 (K3) A4 (K4) A5 (K5))). Black-Scholes in LISP da Robert Brown ho iniziato con la versione C. Una volta che il mio codice Lisp stava producendo la stessa uscita, ho aggiunto un paio di dichiarazioni di tipo e ha fatto alcuni test di velocità. Il mio punto di riferimento calcola BlackScholes (p, 100.0, 110.0, 10.0, 0.10. 07) un milione di volte. Ecco i miei risultati di temporizzazione. Ho compilato la versione C con quotgcc - O2quot e la versione Lisp per la massima velocità - nessun tipo di controllo in fase di esecuzione. Versione C: 1.69 secondi Versione Lisp: 1.12 secondi Come si può vedere, Common Lisp è competitivo con C e OCaml, in termini di velocità di esecuzione. Il codice Common Lisp è attaccato sotto. (declaim (optimize (debug 0) (safety 0) (speed 3))) (defmacro poly-eval (x coeffs) quotFor COEFFS list (a0 a1 a2. ) produce an expression that evaluates the polynomial a0 a1x a2x2 . quot (if (endp (rest coeffs)) (first coeffs) ( (,x (poly-eval, x ,(rest coeffs))) ,(first coeffs)))) (deftype probability () (double-float 0.0d0 1.0d0)) (deftype nonnegative-double-float () (double-float 0.0d0.most-positive-double-float)) (declaim (ftype (function (double-float) probability) cnd)) (defun cnd (x) (declare (type double-float x)) (let ((l (abs x)) (k ( ( 1.0d0 ( 0.2316419d0 l)))) (w (- 1.0d0 ( ( (sqrt ( 2.0d0 pi))) (exp ( ( (- l) l) 2.0d0)) (poly-eval k (0.0d0 0.31938153d0 -0.356563782d0 1.781477937d0 -1.821255978d0 1.330274429d0)))))) (declare (type double-float l k w)) (if (lt x 0.0d0) (- 1.0d0 w) w))) (defun black-scholes (callput price strike time r vol) (declare (type nonnegative-double-float price strike time r vol)) (let ((d1 ( ( (log ( price strike)) ( ( r ( ( vol vol) 2.0d0)) time)) ( vol (sqrt time)))) (d2 (- d1 ( vol (sqrt time))))) (declare (type double-float d1 d2)) (ecase callput (:call (- ( price (cnd d1)) ( strike (exp (- ( r time))) (cnd d2)))) (:put (- ( strike (exp (- ( r time))) (cnd (- d2))) ( price (cnd (- d1)))))))) Black-Scholes in Ruby gt by Michael Neumann, Germany one-to-one translation from Python example Cumulative normal distribution def cnd(x) a1, a2, a3, a4, a5 0.31938153, -0.356563782, 1.781477937, -1.821255978, 1.330274429 l x. abs k 1.0 (1.0 0.2316419 l) w 1.0 - 1.0 Math. sqrt(2Math::PI)Math. exp(-ll2.0) (a1k a2kk a3(k3) a4(k4) a5(k5)) w 1.0 - w if x lt 0 return w end def BlackScholes(callPutFlag, s, x, t, r, v) d1 (Math. log(sx)(rvv2.0)t)(vMath. sqrt(t)) d2 d1-vMath. sqrt(t) if callPutFlag c scnd(d1)-xMath. exp(-rt)cnd(d2) else xMath. exp(-rt)cnd(-d2)-scnd(-d1) end end Black-Scholes in Clean module BlackScholes import StdReal clean Pure functional language, performance similar to C Start blackscholes Put 100.0 95.0 7.0 0.05 0.47 . Option Call Put The Black and Scholes (1973) Stock option formula blackscholes o s x t r v optionvalue o where optionvalue Call s n(d1) - x exp( rt) n(d2) optionvalue Put x exp( d1) d1 (ln(sx) (rvv2.0)t)(v sqrt t) d2 d1 - v sqrt t The cumulative normal distribution function n x x lt 0.0 1.0 - w otherwise w where w 1.0 - 1.0 sqrt(2.0Pi) exp( ll2.0) poly k 1.0 (1.0 0.2316419 l) l abs x poly A1k A2kk A3 k3.0 A4 k4.0 A5 k5.0 Pi : 3.141592653589793238462643 A1 : 0.31938153 A2 : -0.356563782 A3 : 1.781477937 A4 : -1.821255978 A5 : 1.330274429 Black-Scholes in VB By Marco Sturlese, The Black and Scholes (1973) Stock option formula Public Function BlackScholes(ByVal CallPutFlag As String, ByVal S As Double, ByVal X As Double, ByVal T As Double, ByVal r As Double, ByVal v As Double) As Double Dim d1 As Double, d2 As Double d1 (Math. Log(S X) (r v 2 2) T) (v Math. Sqrt(T)) d2 d1 - v Math. Sqrt(T) If CallPutFlag quotcquot Then BlackScholes S CND(d1) - X Math. Exp(-r T) CND(d2) ElseIf CallPutFlag quotpquot Then BlackScholes X Math. Exp(-r T) CND(-d2) - S CND(-d1) The cumulative normal distribution function Public Function CND(ByVal X As Double) As Double Dim L As Double, K As Double Const a1 0.31938153. Const a2 -0.356563782. Const a3 1.781477937 Const a4 -1.821255978. Const a5 1.330274429 K 1 (1 0.2316419 L) CND 1 - 1 Math. Sqrt(2 Math. PI) Math. Exp(-L 2 2) (a1 K a2 K 2 a3 K 3 a4 K 4 a5 K 5) Black-Scholes in Postscript Language By Dr. Jose Gomes, Black-Scholes formula in Postscript. Started from code at espenhaugblackscholes. html E 2.718281828459045 def PI 3.141592653589793238462643 def The cumulative normal distribution function CND CNDX exch def CNDa1 0.31938153 def CNDa2 -0.356563782 def CNDa3 1.781477937 def CNDa4 -1.821255978 def CNDa5 1.330274429 def CNDL CNDX abs def CNDK 0.2316419 CNDL mul 1 add 1 exch div def CNDK 5 exp CNDa5 mul CNDK 4 exp CNDa4 mul add CNDK 3 exp CNDa3 mul add CNDa2 CNDK CNDK mul mul add CNDa1 CNDK mul add E 0 CNDL sub CNDL mul 2 div exp mul 0 1 sub 2 PI mul sqrt div mul CNDX 0 lt if def The Black and Scholes (1973) Stock option formula BlackScholes v exch def r exch def T exch def X exch def S exch def CallPutFlag exch def d1 v v mul 2 div r add T mul S X div ln add T sqrt v mul div def d2 d1 T sqrt v mul sub def (c) CallPutFlag eq d1 CND S mul d2 CND E 0 r sub T mul exp mul X mul sub if (p) CallPutFlag eq 0 d2 sub CND E 0 r sub T mul exp mul X mul 0 d1 sub CND S mul sub if def S 60 def X 65 def T 0.25 def r 0.08 def v 0.30 def call (c) S X T r v BlackScholes def put (p) S X T r v BlackScholes def Fixed findfont 20 scalefont setfont newpath 100 220 moveto ( S) show S 100 string cvs show 100 200 moveto ( X) show X 100 string cvs show 100 180 moveto ( T) show T 100 string cvs show 100 160 moveto ( r) show r 100 mul 100 string cvs show () show 100 140 moveto ( v) show v 100 mul 100 string cvs show () show 100 120 moveto (call) show call 100 string cvs show 100 100 moveto (put ) show put 100 string cvs show Black-Scholes in MEL By James D. Polk, MEL Mayas Embedded Language. Maya is a 3D animation program used in animated feature films and special effects. quotDinosaurquot, etc. And now also for options global float PI PI 3.141592653589793238462643 global proc float BlackScholes(string CallPutFlag, float S, float X, float T, float r, float v) float d1, d2 float val if(CallPutFlag quotcallquot) val S CumNormDist(d1) - X exp(-r T) CumNormDist(d2) return(val) else if(CallPutFlag quotputquot) val X exp(-r T) CumNormDist(-d2) - S CumNormDist(-d1) return(val) global proc float CumNormDist( float X ) global float PI float L, K, w float a1 0.31938153, a2 -0.356563782, a3 1.781477937 float a4 -1.821255978, a5 1.330274429 L abs(X) K 1.0 (1.0 0.2316419 L) w 1.0 - 1.0 sqrt(2 PI) exp(-L L 2) (a1 K a2 K K a3 pow(K,3) a4 pow(K,4) a5 pow(K,5)) if(X lt 0 ) w 1.0 - w Black-Scholes on TI-89 calculator By Warren Severin, 1) This has been developed on a TI-89 calculator. It should work on many TI-8x models with minor tweaking. 2) This program assumes that the TI statistics and list editor application is installed, which should apply to most people. If you dont have it, download it from education. ti . Black-Scholes in J By Eugene McDonell, I wrote an article on Black-Scholes for the British publication Vector, 19.3, January 2003. I have a regular column there called quotAt Play With Jquot, that deals in things having to do with J, a language developed by the late Ken Iverson and Roger Hui, as a successor to Kens APL. My article is online at : Here is a way to implement it in J: BS is used for either call or put. A call uses a positive v, and a put uses a negative v. I learned this device from Arthur Whitney, but I could have learned it from Espen Haug: see his Wilmott paper quotA Look in the Antimatter Mirrorquot for a discussion of the useful symmetries of put and call that permit this. The phrase (,-) uses a J feature that generalizes the customary mathematical notation (fg) x, meaning (f(x))(g(x)). Thus r (,-) hlf sqr v gives a two-element vector: (rhlf sqr v),(r-hlf sqr v). This allows the two items d1 and d2 to be replaced by the two-element list d. The function diff is used to subtract the second item from the first. The erf and cnd functions appear in Abramowitz and Stegun quotHandbook of Mathematical Functionsquot in the sections shown, and were written in J by Ewart Shaw (J. E.H. Shaw Ewart Shaw Department of Statistics, University of Warwick erf : monad define NB. AampS 7.1.21 (rightmost) ((2 y.) dv (sqrt pi)) (exp - y. 2) (1 H. 1.5) y. 2 ) This erf uses Js hypergeometric function, symbolized by quot H. quot, and thus doesnt need a list of coefficients. cnd : monad define NB. AampS 26.2.29 (solved for P) (1 erf y. sqrt 0.5) dv 2 ) J uses symbols for many functions, instead of names. These are the names and the equivalent J symbols of the ones used above: diff : - NB. difference diff 39 13 is 26 dv : NB. divided by 39 dv 3 is 13 exp : NB. exponential exp 1 is 2.71828 hlf : -: NB. half hlf 39 is 19.5 ln : . NB. natural logarithm ln 2.71828 is 0.999999 pi : 1p1 NB. pi pi is 3.14159 sqr : : NB. square sqr 13 is 169 sqrt : : NB. square root sqrt 169 is 13 Here are examples of put and call uses of BS: yc NB. call argument 60 65 0.25 0.08 0.3 yp NB. put argument 60 65 0.25 0.08 0.3 BS yc NB. call result 2.13337 BS yp NB. put result 5.84628 Black-Scholes in Mathcad v11 By Stuart Bruff, Its written in Mathcad v11 (although it should work in v6 to v13). There is real equivalent of a text source code, as you just type the equations in, using a palette for such things as the square root operator (although there are keyboard shortcuts for most common operators, such as integrals and derivatives). See also mathcad Black-Scholes in SAS By Fabrice Douglas Rouah, For SAS Release 6.12 or higher data BS input S X r v T d1 (log(SX) (rv22)T)vsqrt(T) d2 d1 - vsqrt(T) C Scdf(Normal, d1) - Xexp(-rT)cdf(Normal, d2) P Xexp(-rT)cdf(Normal,-d2) - Scdf(Normal,-d1) label S Spot Price X Strike Price r Risk Free Rate v Volatility T Time Periods C BS Call Price P BS Put Price Input as many input values as needed cards 120 95 0.08 0.2 3 120 100 0.08 0.2 3 120 110 0.08 0.2 3 120 120 0.08 0.2 3 proc print label var S X r v T C P run Black-Scholes in APL By Nick Lobachevsky, APL has the undeserved reputation of being unreadable code. Usually, it has a lot more to do with the program author than the language itself. The code is written in a quotdyalectquot called Dyalog APL. dyalog Black-Scholes in Lua By Thomas Munro, -- quotLua is a powerful light-weight programming language designed for -- extending applications. Lua is also frequently used as a general-purpose, -- stand-alone language. Lua is free software. quot - from lua. org -- -- Black-Scholes option formula put into Lua by Thomas Munro, London, 2007. -- Cumulative normal distribution. function cnd(x) -- taylor series coefficients local a1, a2, a3, a4, a5 0.31938153, -0.356563782, 1.781477937, -1.821255978, 1.330274429 local l math. abs(x) local k 1.0 (1.0 0.2316419 l) local w 1.0 - 1.0 math. sqrt(2 math. pi) math. exp(-l l 2) (a1 k a2 k k a3 math. pow(k, 3) a4 math. pow(k, 4) a5 math. pow(k, 5)) if x lt 0 then w 1.0 - w end return w end -- The Black-Scholes option valuation function (1973). -- iscall: true for call, false for put -- s: current price -- x: strike price -- t: time -- r: interest rate -- v: volatility function blackscholes(iscall, s, x, t, r, v) local d1 (math. log(s x) (r v v 2.0) t) (v math. sqrt(t)) local d2 d1 - v math. sqrt(t) if iscall then return s cnd(d1) - x math. exp(-r t) cnd(d2) else return x math. exp(-r t) cnd(-d2) - s cnd(-d1) end end Black-Scholes in Fortress By Thomas Munro ( The Black-Scholes formula expressed in the unfinished language Fortress. Thomas Munro, London 2007. From Wikipedia: Fortress quotis intended to be a successor to Fortran, with improvements including Unicode support and concrete syntax that is similar to mathematical notation. The language is not designed to be similar to Fortran. Syntactically, it most resembles Scala, Standard ML, and Haskell. quot ) Black-Scholes in AutoIt By Russell Lazarus AutoIt is a freeware Windows automation language which is particularly adept at manipulation of GUI windows and controls. AutoIt scripts can be compiled with a run-time interpreter that allows users to run on most Windows platforms without requiring software installation. For more information, visit the AutoIt web sit at: autoitscript . BlackScholes stock option function Func BlackScholes() Local CallPutFlag, S, w, T, r, v, d1 (Log(S w) (r v 2 2) T) (v Sqrt(T)), d2 d1 - v Sqrt(T) If CallPutFlag quotcquot Then Local callval (S CND(d1) - w Exp(-r T) CND(d2)) ElseIf CallPutFlag quotpquot Then Local putval (w Exp(-r T) CND(-d2) - S CND(-d1)) EndIf EndFunc gtBlackScholes The cumulative normal distribution function Func CND(w) Const a1 0.31938153, a2 -0.356563782, a3 1.781477937, a4 -1.821255978, a5 1.330274429, Pi 3.14159265 w1 w L Abs(w) K 1 (1 0.2316419 L) w 1 - 1 Sqrt(2 Pi) Exp(-L L 2) (a1 K a2 K 2 a3 K 3 a4 K 4 a5 K 5) If w1 lt 0 Then w 1 - w EndIf Return w Black-Scholes in GNU By Dave Prashant Prashant Dave Ph. D. prashant dot dave at alumni dot purdue dot edu Black Scholes Option Pricing Formula Written in bc. Details on bc are available at gnu. orgsoftwarebc This code is based on the C code written by Dr. Espen Gaarder Haug Usage: bc - l lt bsbc. txt define cnd (x) a1 0.31938153 a2 -0.356563782 a3 1.781477937 a4 -1.821255978 a5 1.330274429 if (x gt 0 ) l x else l - x k 1.0 (1.0 0.2316419 l) pi 4a(1) w 1.0 - 1.0 sqrt(2 pi) e(-l l 2) (a1 k a2 k k a3 (k3) a4 (k4) a5 (k5)) if (x lt 0 ) w 1.0 - w return w define blackscholes (f, s, x, t, r, v) d1(l(sx)(rvv2)t)(vsqrt(t)) d2d1-vsqrt(t) if (f 0) return s cnd(d1)-x e(-rt)cnd(d2) else return x e(-r t) cnd(-d2) - s cnd(-d1) First argument is 0 for call and nonzero for put blackscholes(0, 60, 65. 25. 08. 30) Black-Scholes in gnuplot By Dave Prashant Prashant Dave, Ph. D. prashant dot dave at alumni dot purdue dot edu GNUPlot Code Implementation of Black Scholes Usage: gnuplot blackscholes. gnu d1 (S, X, T, r, v) (log(S1.0X1.0)(rvv2.0)T)(vsqrt(T)) d2 (S, X, T, r, v) (log(S1.0X1.0)(r-vv2.0)T)(vsqrt(T)) BlackScholes(CallPutFlag, S, X, T, r, v) (CallPutFlag eq quotcquot). (S norm(d1(S, X,T, r,v))-X exp(-rT)norm(d2(S, X,T, r,v))). (X exp(-r T) norm(-d2(S, X,T, r,v)) - S norm(-d1(S, X,T, r,v))) print BlackScholes(quotcquot, 60, 65, 0.25, 0.08, 0.30) Black-Scholes in F By Michael de la Maza This code was transliterated from the OCAML code located here espenhaugblackscholes. html let pow x n exp (n log(x) ) let cnd x let a1 0.31938153 let a2 -0.356563782 let a3 1.781477937 let a4 -1.821255978 let a5 1.330274429 let pi 4.0 atan 1.0 let l abs(x) let k 1.0 (1.0 0.2316419 l) let w ref (1.0-1.0sqrt(2.0pi)exp(-ll2.0)(a1ka2kka3(pow k 3.0)a4(pow k 4.0)a5(pow k 5.0))) if (x lt 0.0) then w : 1.0 - w w callputflag: c if call option otherwise put option s: stock price x: strike price of option t: time to expiration in years r: risk free interest rate v: volatility let blackscholes callputflag s x t r v let d1(log(s x) (rvv2.0)t)(vsqrt(t)) let d2d1-vsqrt(t) let res ref 0.0 if (callputflag c) then res : scnd(d1)-xexp(-rt)cnd(d2) else res : xexp(-rt)cnd(-d2)-scnd(-d1) res gt blackscholes c 60.0 65.0 0.25 0.08 0.3 val it. float 2.133371862 gt blackscholes p 60.0 65.0 0.25 0.08 0.3 val it. float 5.846285627 Objective-C is the programming language used for iPhones. With this code as inspiration to thet started I hope we will see a lot of great option software fro iPhones. F or a detailed description of the Black-Scholes-Merton formula see: Haug, E. G. (2007): quotDerivatives Models on Models quot Wiley Publishing, see Chapter 2 in particular Black, F. and Scholes, M. (1973): quotThe Pricing of Options and Corporate Liabilities, quot Journal of Political Economy, 81, 637-654 Merton, R. C. (1973): quotTheory of Rational Option Pricing, quot Bell Journal of Economics and Management Science, 4, 141-144 If you hate computers and computer languages dont give up its still hope What about taking Black-Scholes in your head instead If the option is about at-the-money-forward and it is a short time to maturity then you can use the following approximation: call put StockPrice 0.4 volatility Sqrt( Time )The Framework In this three part series, we introduced the Option Greeks in the first post. In the second post, we discussed the practical Application of Option Greeks with respect to options trading. In this concluding post, we will understand the usage of an option calculator. An option calculator is a tool which helps you calculate the Greeks, i. e. the delta, gamma, theta, vega, and rho of an option. Along with the calculation of the option Greeks, the option calculator can also be used to calculate the theoretical price of an option (also called fair value of an options premium) and the implied volatility of the underlying. The option calculator uses a mathematical formula called the Black-Scholes options pricing formula, also popularly called the Black-Scholes Option Pricing Model. This is probably the most revered valuation model in Economics, so much so that its publishers (Robert C. Metron and Myron Scholes) received a Nobel Prize in Economics in 1997. Briefly, the framework for the pricing model works like this: We feed the model with a bunch of inputs Inputs include: Spot price, Interest rate, Dividend, and the number of days to expiry. Along with these mandatory inputs, we also input either the price of the option or the implied volatility of the underlying, but not both . The pricing model churns out the required mathematical calculation and gives a bunch of outputs The output gives us the value of Option Greeks. Along with the Option Greeks, we also get one of the following: The Implied volatility of the underlying, provided one of the input is the option price or The theoretical value of options premium, provided the input is the implied volatility of the underlying The illustration below gives the schema of a typical options calculator: Let us inspect the input side: Spot Price This is the price at which the underlying is trading. Note, we can even replace the spot price by the futures price. We use the futures price when the option contract is based on futures as its underlying. Usually, commodity and in some cases currency options are based on futures. For equity option contacts, always use the spot price. Interest Rate This is the risk-free rate prevailing in the economy. Use the RBI 91 day Treasury bill rate for this purpose. As of September 2014, the prevailing rate is 8.6038 per annum. Dividend This is the dividend expected per share in the stock, provided the stock goes ex-dividend within the expiry period. For example, today is September 11 and you wish to calculate the option Greeks for the ICICI Bank option contract. Assume ICICI Bank is going ex-dividend on September 18 with a dividend of Rs. 4. The expiry for September series is September 25. In this situation you need to give an input of Rs. 4. Number of days to expiry This the number of calendar days left to expiry. Volatility This is where it gets a little confusing, so I suggest you pay extra attention. As mentioned earlier, along with option Greeks you can use the option calculator to calculate either the implied volatility of the underlying or the theoretical option price but not both at the same time If you wish to calculate the theoretical option price as one of the desired outputs, then volatility has to be one of the inputs. For Nifty option contracts, use the India VIX index value. Alternatively, if you have a view on volatility from today to expiry, you can input that as well. You can do the same thing for stocks. Option Price, also called the Actual Market Value If you wish to calculate the implied volatility of the underlying you need to input actual market value data. The actual market data is simply the price at which the option is trading in the market. Once these inputs are fed to Black-Scholes option pricing model, the model churns out the math to give us the required output. The logic on which Black-Scholes model works is quant heavy involving concepts of stochastic calculus. For a quick introduction on the working of a Black-Scholes model, Id encourage you to watch this video . We get the following values on the output side: Along with the Greeks, the output includes either the implied volatility of the underlying or the theoretical option price. Option Calculator on Zerodha Trader (ZT) Keeping the above framework in perspective, let us explore the Option Calculator on Zerodha Trader (ZT). To invoke the option calculator, click Tools 8211gt Option Calculator as shown below. Or you can simply place your cursor on an option scrip and use the shortcut key ShiftO. This is how the calculator appears on the terminal: The calculator can be broken down into three sections as shown in the image below: The top section highlighted in blue is used to select the option contract, this is fairly straightforward. The left section highlighted in red is the input field. Let us look into this. We begin by selecting either the Underlying or the Futures price. Id suggest you select underlying as the default option. Once the underlying has been selected, you need to manually enter the value of the underlying in the Spot Price (in Rupees) field. The next two input fields are Actual Market Value and Volatility . At this stage you need to decide what the option calculator should calculate for you. If you want to calculate the fair value of the option premium also called the Theoretical Option Price then leave the Actual Market Value field blank and proceed to enter the volatility data. As I mentioned earlier, for Nifty options use the India VIX index value for the volatility field. Alternatively, if you want to calculate the volatility of the underlying leave the Volatility blank, but make sure you input the market price of the option in Actual Market Value. For the interest rate , take the 91 day T-bill rate data from the RBI website . Dividends (in Rupees) would be for the index and the actual dividend value in case of a stock. Also, in case dividends are expected within the expiry of the contract, make sure you enter the ex-dividend date. The last input field is the number of days left to expiry. Input the total number of calendar days here. Note, Zerodha Trader (ZT) has two models based on which the Greeks can be calculated, i. e. Black-Scholes Pricing Model and another model called the Cox-Ross-Rubinstein Binomial Method. The binomial method is also popularly used, however, Id advocate the Black-Scholes model as it is more advanced and precise. It is worth mentioning that the difference in output values between the two models is not really much. Lastly, look at the bottom section of the Output field (highlighted in green ). Just besides the Calculate button you have two options: Select Volatility if you want the option calculator to calculate the volatility for you. If you want to calculate the theoretical option price, select the Option Price. Have a look at the image below with all the input data loaded: Notice two things: Along with the Greeks, I intend to calculate the Option price (highlighted in blue). Also Actual Market Value is left blank (highlighted in red). I8217ve taken the volatility value from the India VIX index. The dividend field is blank since I have selected 8100 Nifty Call option ( index option), hence the value in ex-dividend date field is irrelevant. Once the input values are loaded, click Calculate to generate the output. The following image shows the output: The first field in the output field is the theoretical option price (also called the fair value) of the call and put option. The calculator is suggesting the fair value of 8100 call option should be 81.14 and the fair value of 8100 put option is 71.35. However, the call option value as seen on the NSE option chain is 83.85. The difference, though not significant, mainly occurs due to factors such as wrong volatility assumptions, bid-ask spread, liquidity, transaction charges, and taxes. Following the theoretical option price you can find the data on Greek values. As of today Nifty spot is 8085, and the closest ATM option is 8100. As we had discussed in the previous post, the ATM option should have a delta of approximately 0.5. In fact, the calculator is telling us that the delta is 0.525 for the call option and -0.475 for the put option. This is in line with our discussion on delta in the previous post. Following the delta value we find other Greek values such as Gamma, Theta, Vega, and Rho. Also, by default the calculator calculates the Greeks of: Put option of the same strike, same expiry A simple long straddle Option Calculator to calculate volatility Let us now use the option calculator to calculate the volatility of the underlying. To do this, I leave the Volatility field blank (highlighted in blue) and select Volatility (highlighted in red) option. Further, I input the Actual Market Value of the 8100 Call option as observed on NSE, which in this case happens to be 83.85 (see the NSE Quote image above). After selecting this click calculate: It turns out that the volatility of Nifty is 12.96 as opposed to 12.5175 as India VIX suggested. Well, the difference is less than 50 basis points this should also explain why the calculator calculated the Theoretical Option Price as 81.14 as opposed to 83.84. In fact, instead of 12.5175 if we now give Volatility input as 12.96 we will get the accurate Option price. See the image below: Conclusion: Option calculators are mainly used to calculate the option Greeks, volatility of the underlying, and the theoretical option price. Sometimes small differences arise owing to variations in input assumptions. Hence for this reason, it is good to have room for the inevitable modeling errors. However, by and large, the option calculators are fairly accurate. Lastly, we hope you enjoyed this three-part series on Option Greeks. Stay connected, stay profitable. Ive been trading and investing in the Indian markets for over a decade. I strongly believe that trading is not a gift that you are born with but a skill that you can develop over time. At Zerodha, Im involved in Equity Research amp Education initiative. I hold a Masters Degree in Risk amp Asset Management from EDHEC Business School, France and a Bachelor of Engineering from Bangalore University. 128 comments

No comments:

Post a Comment