From 9d0ed876ac1fe7566599221ef4776b788ec70dbf Mon Sep 17 00:00:00 2001 From: Kevin Keogh Date: Sat, 29 Jul 2017 14:39:02 -0400 Subject: [PATCH] Update README for usage instructions --- README | 35 +++++++++++++++++++++++++++++++++++ build/opt-pricer | Bin 18720 -> 18600 bytes 2 files changed, 35 insertions(+) diff --git a/README b/README index 13cd3b2..e479c07 100644 --- a/README +++ b/README @@ -3,6 +3,41 @@ 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. +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.8941 | + |Delta: | 0.6202 | 0.6206 | + |Gamma: | 0.0253 | 0.0134 | + |Vega: | 0.4660 | 0.4668 | + |Theta: | -4.6138 | -4.6235 | + |Rho: | 0.7513 | 0.7699 | + |Simulations:| | 100,000,000 | + --------------------------------------------- + + Recommended number of simulations is 100,000,000 for Gamma convergence, the other Greeks converge by 1,000,000. diff --git a/build/opt-pricer b/build/opt-pricer index 152ac7613cd53c6af15188b2f5135ccee8a1b198..d091c94f807476e8c4f9f93b91c9554699d5d4ef 100755 GIT binary patch delta 6041 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 delta 6560 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