Categories

## Black-Scholes in R

Here is a simple implementation of the Black-Scholes pricing formula in R. This will return a two-element vector containing the calculated call and put price, respectively.

[source lang=”r”]
# Black-Scholes Option Value
# Call value is returned in values, put in values
blackscholes <- function(S, X, rf, T, sigma) {
values <- c(2)

d1 <- (log(S/X)+(rf+sigma^2/2)*T)/(sigma*sqrt(T))
d2 <- d1 – sigma * sqrt(T)

values <- S*pnorm(d1) – X*exp(-rf*T)*pnorm(d2)
values <- X*exp(-rf*T) * pnorm(-d2) – S*pnorm(-d1)

values
}
[/source]

Example use:

> blackscholes(100,110,.05,1,.2)  6.040088 10.675325 

Categories

## Useful Regular Expressions, Part 2

Some useful regexes here that I have used recently here, saved in case I ever lose them (especially the last two). Firstly, an expression that parses NTLM credentials from HTTP BASIC authentication responses. Note the non-capturing groups  ?: to keep indexing simple.

/* DOMAIN\\user(:pass)? or DOMAIN/user(:pass)? */
private static final Pattern CREDENTIALS_PATT = Pattern.compile("(?:(\\w+)(?:\\\\{1,2}|/))?(\\w+)(?::(\\w+))?");

Next, a regular expression to parse verbose garbage collection logs from JRockit GC log files:

s/^$memory$$$$[^]]\+$$$.*GC $$[0-9]\+$$K->$$[0-9]\+$$K ($$[0-9]\+$$K), $$[0-9]\+\.[0-9]\+$$ ms/\1,\2,\3,\4,\5/

This will return various columns including memory before and after collection, max heap size, and collection duration.

Similarly, for Sun JVMs:

s/.*GC $$[0-9]\+$$K->$$[0-9]\+$$K($$[0-9]\+$$K), $$[0-9]\+\.[0-9]\+$$ secs]/\1,\2,\3,\4/

Verbose GC logging is usually enabled via the -XXloggc option, e.g. -Xloggc:gc.log

Categories

## WordPress 2.5

I just upgraded to WordPress 2.5 and it was super easy. It took about four minutes. And the new admin interface is excellent!