Class BondFutureOptionSecurity

  • All Implemented Interfaces:
    Security, Serializable, org.joda.beans.Bean, org.joda.beans.ImmutableBean

    public final class BondFutureOptionSecurity
    extends Object
    implements Security, org.joda.beans.ImmutableBean, Serializable
    A security representing a futures contract, based on a basket of fixed coupon bonds.

    A bond future is a financial instrument that is based on the future value of a basket of fixed coupon bonds. The profit or loss of a bond future is settled daily.

    Price

    Strata uses decimal prices for bond futures options in the trade model, pricers and market data. This is coherent with the pricing of BondFuture.
    See Also:
    Serialized Form
    • Method Detail

      • getUnderlyingIds

        public ImmutableSet<SecurityId> getUnderlyingIds()
        Description copied from interface: Security
        Gets the set of underlying security identifiers.

        The set must contain all the security identifiers that this security directly refers to. For example, a bond future will return the identifiers of the underlying basket of bonds, but a bond future option will only return the identifier of the underlying future, not the basket.

        Specified by:
        getUnderlyingIds in interface Security
        Returns:
        the underlying security identifiers
      • createProduct

        public BondFutureOption createProduct​(ReferenceData refData)
        Description copied from interface: Security
        Creates the product associated with this security.

        The product of a security is distinct from the security. The product includes the financial details from this security, but excludes the additional information. The product also includes the products of any underlying securities.

        Specified by:
        createProduct in interface Security
        Parameters:
        refData - the reference data used to find underlying securities
        Returns:
        the product
      • createTrade

        public BondFutureOptionTrade createTrade​(TradeInfo info,
                                                 double quantity,
                                                 double tradePrice,
                                                 ReferenceData refData)
        Description copied from interface: Security
        Creates a trade based on this security.

        This creates a trade of a suitable type for this security.

        Specified by:
        createTrade in interface Security
        Parameters:
        info - the trade information
        quantity - the number of contracts in the trade
        tradePrice - the price agreed when the trade occurred
        refData - the reference data used to find underlying securities
        Returns:
        the trade
      • createPosition

        public BondFutureOptionPosition createPosition​(PositionInfo positionInfo,
                                                       double quantity,
                                                       ReferenceData refData)
        Description copied from interface: Security
        Creates a position based on this security from a net quantity.

        This creates a position of a suitable type for this security.

        Specified by:
        createPosition in interface Security
        Parameters:
        positionInfo - the position information
        quantity - the number of contracts in the position
        refData - the reference data used to find underlying securities
        Returns:
        the position
      • createPosition

        public BondFutureOptionPosition createPosition​(PositionInfo positionInfo,
                                                       double longQuantity,
                                                       double shortQuantity,
                                                       ReferenceData refData)
        Description copied from interface: Security
        Creates a position based on this security from a long and short quantity.

        This creates a position of a suitable type for this security.

        The long quantity and short quantity must be zero or positive, not negative.

        Specified by:
        createPosition in interface Security
        Parameters:
        positionInfo - the position information
        longQuantity - the long quantity in the position
        shortQuantity - the short quantity in the position
        refData - the reference data used to find underlying securities
        Returns:
        the position
      • getInfo

        public SecurityInfo getInfo()
        Gets the standard security information.

        This includes the security identifier.

        Specified by:
        getInfo in interface Security
        Returns:
        the value of the property, not null
      • getCurrency

        public Currency getCurrency()
        Gets the currency that the future is traded in.
        Specified by:
        getCurrency in interface Security
        Returns:
        the value of the property, not null
      • getPutCall

        public PutCall getPutCall()
        Gets whether the option is put or call.

        A call gives the owner the right, but not obligation, to buy the underlying at an agreed price in the future. A put gives a similar option to sell.

        Returns:
        the value of the property
      • getStrikePrice

        public double getStrikePrice()
        Gets the strike price, represented in decimal form.

        This is the price at which the option applies and refers to the price of the underlying future. This must be represented in decimal form, (1.0 - decimalRate). As such, the common market price of 99.3 for a 0.7% rate must be input as 0.993. The rate implied by the strike can take negative values.

        Returns:
        the value of the property
      • getExpiryDate

        public LocalDate getExpiryDate()
        Gets the expiry date of the option.

        The expiry date is related to the expiry time and time-zone. The date must not be after last trade date of the underlying future.

        Returns:
        the value of the property, not null
      • getExpiryTime

        public LocalTime getExpiryTime()
        Gets the expiry time of the option.

        The expiry time is related to the expiry date and time-zone.

        Returns:
        the value of the property, not null
      • getExpiryZone

        public ZoneId getExpiryZone()
        Gets the time-zone of the expiry time.

        The expiry time-zone is related to the expiry date and time.

        Returns:
        the value of the property, not null
      • getPremiumStyle

        public FutureOptionPremiumStyle getPremiumStyle()
        Gets the style of the option premium.

        The two options are daily margining and upfront premium.

        Returns:
        the value of the property, not null
      • getRounding

        public Rounding getRounding()
        Gets the definition of how to round the option price, defaulted to no rounding.

        The price is represented in decimal form, not percentage form. As such, the decimal places expressed by the rounding refers to this decimal form. For example, the common market price of 99.7125 is represented as 0.997125 which has 6 decimal places.

        Returns:
        the value of the property, not null
      • getUnderlyingFutureId

        public SecurityId getUnderlyingFutureId()
        Gets the identifier of the underlying future.
        Returns:
        the value of the property, not null
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object