The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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: