The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Math::Business::BlackScholes::Binaries::Greeks

SYNOPSIS

    use Math::Business::BlackScholes::Binaries::Greeks::Delta;
    use Math::Business::BlackScholes::Binaries::Greeks::Gamma;

    # get the Delta for a call option
    my $delta_call =
        Math::Business::BlackScholes::Binaries::Greeks::Delta::call(
            1.35,       # stock price
            1.36,       # barrier
            (7/365),    # time
            0.002,      # payout currency interest rate (0.05 = 5%)
            0.001,      # quanto drift adjustment (0.05 = 5%)
            0.11,       # volatility (0.3 = 30%)
        );

    # get the Gamma for a put option
    my $gamma_put =
        Math::Business::BlackScholes::Binaries::Greeks::Gamma::put(
            1.35,       # stock price
            1.36,       # barrier
            (7/365),    # time
            0.002,      # payout currency interest rate (0.05 = 5%)
            0.001,      # quanto drift adjustment (0.05 = 5%)
            0.11,       # volatility (0.3 = 30%)
        );

DESCRIPTION

The Greeks modules calculate the sensitivity of the price of binary options to a change in the underlying parameters of the financial asset.

First-order Greeks

  • Math::Business::BlackScholes::Binaries::Greeks::Delta

  • Math::Business::BlackScholes::Binaries::Greeks::Vega

  • Math::Business::BlackScholes::Binaries::Greeks::Theta

Second-order Greeks

  • Math::Business::BlackScholes::Binaries::Greeks::Gamma

  • Math::Business::BlackScholes::Binaries::Greeks::Vanna

  • Math::Business::BlackScholes::Binaries::Greeks::Volga

SUBROUTINES

These can be called for each of the six Greeks modules

vanilla_call

    USAGE
    my $sensitivity = vanilla_call($S, $K, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $K => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

vanilla_put

    USAGE
    my $sensitivity = vanilla_put($S, $K, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $K => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

call

    USAGE
    my $sensitivity = call($S, $K, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $K => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

put

    USAGE
    my $sensitivity = put($S, $K, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $K => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

expirymiss

    USAGE
    my $sensitivity = expirymiss($S, $U, $D, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $U => barrier
    $D => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

expiryrange

    USAGE
    my $sensitivity = expiryrange($S, $U, $D, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $U => barrier
    $D => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

onetouch

    USAGE
    my $sensitivity = onetouch($S, $U, $D, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $U => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

notouch

    USAGE
    my $sensitivity = notouch($S, $U, $D, $t, $r_q, $mu, $sigma)

    PARAMS
    $S => stock price
    $U => barrier
    $t => time (1 = 1 year)
    $r_q => payout currency interest rate (0.05 = 5%)
    $mu => quanto drift adjustment (0.05 = 5%)
    $sigma => volatility (0.3 = 30%)

upordown

    USAGE
    my $sensitivity = upordown($S, $U, $D, $t, $r_q, $mu, $sigma, $w)

    PARAMS
    $S stock price
    $U barrier
    $D barrier
    $t time (1 = 1 year)
    $r_q payout currency interest rate (0.05 = 5%)
    $mu quanto drift adjustment (0.05 = 5%)
    $sigma volatility (0.3 = 30%)
    $w payout at hit=0, at end=1

range

    USAGE
    my $sensitivity = range($S, $U, $D, $t, $r_q, $mu, $sigma, $w)

    PARAMS
    $S stock price
    $t time (1 = 1 year)
    $U barrier
    $D barrier
    $r_q payout currency interest rate (0.05 = 5%)
    $mu quanto drift adjustment (0.05 = 5%)
    $sigma volatility (0.3 = 30%)
    $w payout at hit=0, at end=1

DEPENDENCIES

Math::CDF
Math::Trig
Math::Business::BlackScholesMerton

SOURCE CODE

Github

REFERENCES

Wikipedia

AUTHOR

binary.com, <perl at binary.com>

BUGS

Please report any bugs or feature requests to bug-math-business-blackscholes-binaries-greeks at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Math-Business-BlackScholes-Binaries-Greeks. We will be notified, and then you'll automatically be notified of progress on your bug as we make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Math::Business::BlackScholes::Binaries::Greeks

You can also look for information at: