fmbasics (version 0.3.0)

CurrencyPairMethods: CurrencyPair methods

Description

A collection of methods related to currency pairs.

Usage

is_t1(x)

to_spot(dates, x)

to_spot_next(dates, x)

to_forward(dates, tenor, x)

to_today(dates, x)

to_tomorrow(dates, x)

to_fx_value(dates, tenor, x)

invert(x)

Arguments

x

a CurrencyPair object

dates

a vector of dates from which forward dates are calculated

tenor

the tenor of the value date which can be one of the following: "spot", "spot_next", "today", "tomorrow" and the usual "forward" dates (e.g. lubridate::months(3))

Details

The methods are summarised as follows:

  • is_t1: Returns TRUE if the currency pair settles one good day after trade. This includes the following currencies crossed with the USD: CAD, TRY, PHP, RUB, KZT and PKR

  • to_spot: The spot dates are usually two non-NY good day after today. is_t1() identifies the pairs whose spot dates are conventionally one good non-NYC day after today. In both cases, if those dates are not a good NYC day, they are rolled to good NYC and non-NYC days using the Following convention.

  • to_spot_next: The spot next dates are one good NYC and non-NYC day after spot rolled using the Following convention if necessary.

  • to_forward: Forward dates are determined using the calendar's shift() method rolling bad NYC and non-NYC days using the Following convention. The end-to-end convention applies.

  • to_today: Today is simply dates which are good NYC and non-NYC days. Otherwise today is undefined and returns NA.

  • to_tomorrow: Tomorrow is one good NYC and non-NYC day except where that is on or after spot. In that case, is is undefined and returns NA.

  • to_value: Determine common value dates. The supported value date tenors are: "spot", "spot_next", "today", "tomorrow" and the usual "forward" dates (e.g. lubridate::months(3)).

  • invert: Inverts the currency pair and returns new CurrencyPair object.

  • is.CurrencyPair: Returns TRUE if x inherits from the CurrencyPair class; otherwise FALSE

Examples

Run this code
# NOT RUN {
library(lubridate)
is_t1(AUDUSD())
dts <- lubridate::ymd(20170101) + lubridate::days(0:30)
to_spot(dts, AUDUSD())
to_spot_next(dts, AUDUSD())
to_today(dts, AUDUSD())
to_tomorrow(dts, AUDUSD())
to_fx_value(dts, months(3), AUDUSD())
# }

Run the code above in your browser using DataLab