Skip to content

kevindkeogh/opt-pricer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Demonstration of a Black-Scholes Model in C

Note that there are two models, a pure Monte Carlo implementation
and the closed form Black-Scholes equation. Note that the code runs
multi-threaded and the random numbers are a sobol sequence.

To install:
	$ git clone https://github.com/kevindkeogh/opt-pricer.git
	$ cd opt-pricer
	$ make && sudo make install
	$ opt-pricer --spot 100 \
		     --strike 100 \
		     --rfr 0.03 \
		     --implied-volatility 0.2 \
		     --effective-date 2017-12-30 \
		     --expiry-date 2019-06-30 \
		     --call \
		     -N 10000000


	   Valuation date: 2017-12-30

		     	         | BS Analytic | BS Monte Carlo |
		    ---------------------------------------------
		    |Type:       |       Call  |          Call  |
		    |Spot:       |     100.00  |        100.00  |
		    |Expiry:     | 2019-06-30  |    2019-06-30  |
		    |Strike:     |     100.00  |        100.00  |
		    |Risk-free:  |       3.00% |          3.00% |
		    |Implied Vol:|      20.00% |         20.00% |
		    ---------------------------------------------
		    |Fair value: |    11.8866  |       11.8866  |
		    |Delta:      |     0.6202  |        0.6202  |
		    |Gamma:      |     0.0253  |        0.0157  |
		    |Vega:       |     0.4660  |        0.4660  |
		    |Theta:      |    -4.6138  |       -4.6154  |
		    |Rho:        |     0.7513  |        0.7630  |
		    |Simulations:|             |   100,000,000  |
		    ---------------------------------------------


Recommended number of simulations is 100,000,000 for Gamma convergence, the
other Greeks converge by 1,000,000.

LICENSE:
	My code, which comprises most of the routine functionality, is MIT.
	There are two functions,
		i8_sobol_generate - generate sobol sequence
		r8_normal_01_cdf_inverse - calculate inverse normal cdf
	which are LGPL. The Makefile compiles them as a separate shared object
	and dynamically links them. The files are included (with minor
	adjustments to make it compile) in src.

TODO:
	1. Tests...
	2. Update windows cross-compilation, currently broken

About

Black-Scholes and Monte-Carlo Option Pricer in C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published