com.dxfeed.event.option
Class TheoPrice

java.lang.Object
  extended by com.dxfeed.event.market.MarketEvent
      extended by com.dxfeed.event.option.TheoPrice
All Implemented Interfaces:
LastingEvent, Serializable

public class TheoPrice
extends MarketEvent
implements LastingEvent

Theo price is a snapshot of the theoretical option price computation that is periodically performed by dxPrice model-free computation. It represents the most recent information that is available about the corresponding values at any given moment of time. The values include first and second order derivative of the price curve by price, so that the real-time theoretical option price can be estimated on real-time changes of the underlying price in the vicinity.

Call-Put Parity

European call and put options of the same series and strike satisfy call-put parity equality of the following form: \[ C - P = {U \over Q(\tau) + 1} - {K \over R(\tau) + 1} \] where:

Non-standard or adjusted options (when the number of underlying deliverables per contract is different from the option price dollar value multiplier) strike price and/or option prices may be represented in different units that underlying price. For the purposes of the above formulae both strike price, call price, and put price has to be represented in the same units as the underlying price using an appropriate additional multipliers.

Here, the simple dividend return and interest return are related to the annualized continuously compounded dividend yield \(q\) and the annualized continuously compounded interest rate \(r\) via simple formulae: \[ Q(\tau) = e^{q \tau} - 1 \] \[ R(\tau) = e^{r \tau} - 1 \] where \(\tau\) is the duration of the option represented in fractions of a year.

Note, that Black-Scholes formula can be directly expressed in the terms of simple returns \( Q(\tau) \) and \( R(\tau) \) \[ C = {U N(d_+) \over Q(\tau) + 1} - {K N(d_-) \over R(\tau) + 1} \] \[ P = {K N(-d_-) \over R(\tau) + 1} - {U N(-d_+) \over Q(\tau) + 1} \] \[ d_\pm = {1 \over \sigma(\tau)} ln \left[ {U (R(\tau) + 1) \over K (Q(\tau) + 1)} \right] \pm {1 \over 2} \sigma(\tau) \] where:

Here, the time-depended volatility \( \sigma(\tau) \) is related to the annualized volatility \(\sigma\) via a simple formula: \[ \sigma(\tau) = \sigma \sqrt{\tau} \]

Implied \( Q(\tau) \) and \( R(\tau) \) are computed by dxPrice for each option series and are distributed in this TheoPrice event for each option. Both of these values are not necessarily non-negative, because they represent a mix of different factors and correspond to effective dividends and interests experienced by option market makers, while include such factors as cost of carry for both the underlying instrument and for the underlying currency.

Implied simple dividend rate \( Q(\tau) \) and interest rate \( R(\tau) \) are available via getDividend() and getInterest() methods correspondingly.

Call-put parity for American options is an inequality of the following form: \[ C - P \ge U - K \]

Implied simple dividend return \( Q(\tau) \) and simple interest return \( R(\tau) \) are considered to be zero for American options.

Implementation details

This event is implemented on top of QDS records TheoPrice.

See Also:
Serialized Form

Constructor Summary
TheoPrice()
          Creates new theo price object with default values.
TheoPrice(String eventSymbol)
          Creates new theo price object with the specified event symbol.
 
Method Summary
 double getDelta()
          Returns delta of the theoretical price.
 double getDividend()
          Returns implied simple dividend return of the corresponding option series.
 double getGamma()
          Returns gamma of the theoretical price.
 double getInterest()
          Returns implied simple interest return of the corresponding option series.
 double getPrice()
          Returns theoretical option price.
 long getTime()
          Returns time of the last theo price computation.
 double getUnderlyingPrice()
          Returns underlying price at the time of theo price computation.
 void setDelta(double delta)
          Changes delta of the theoretical price.
 void setDividend(double dividend)
          Changes implied simple dividend return of the corresponding option series.
 void setGamma(double gamma)
          Changes gamma of the theoretical price.
 void setInterest(double interest)
          Changes implied simple interest return of the corresponding option series.
 void setPrice(double price)
          Changes theoretical option price.
 void setTime(long time)
          Changes time of the last theo price computation.
 void setUnderlyingPrice(double underlyingPrice)
          Changes underlying price at the time of theo price computation.
 String toString()
           
 
Methods inherited from class com.dxfeed.event.market.MarketEvent
getEventSymbol, setEventSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TheoPrice

public TheoPrice()
Creates new theo price object with default values.


TheoPrice

public TheoPrice(String eventSymbol)
Creates new theo price object with the specified event symbol.

Parameters:
eventSymbol - event symbol.
Method Detail

getTime

public long getTime()
Returns time of the last theo price computation. Time is measured in milliseconds between the current time and midnight, January 1, 1970 UTC.

Returns:
time of the last theo price computation.

setTime

public void setTime(long time)
Changes time of the last theo price computation.

Parameters:
time - time of the last theo price computation.

getPrice

public double getPrice()
Returns theoretical option price.

Returns:
theoretical option price.

setPrice

public void setPrice(double price)
Changes theoretical option price.

Parameters:
price - theoretical option price.

getUnderlyingPrice

public double getUnderlyingPrice()
Returns underlying price at the time of theo price computation.

Returns:
underlying price at the time of theo price computation.

setUnderlyingPrice

public void setUnderlyingPrice(double underlyingPrice)
Changes underlying price at the time of theo price computation.

Parameters:
underlyingPrice - underlying price at the time of theo price computation.

getDelta

public double getDelta()
Returns delta of the theoretical price. Delta is the first derivative of the theoretical price by the underlying price.

Returns:
delta of the theoretical price.

setDelta

public void setDelta(double delta)
Changes delta of the theoretical price.

Parameters:
delta - delta of the theoretical price.

getGamma

public double getGamma()
Returns gamma of the theoretical price. Gamma is the second derivative of the theoretical price by the underlying price.

Returns:
gamma of the theoretical price.

setGamma

public void setGamma(double gamma)
Changes gamma of the theoretical price.

Parameters:
gamma - gamma of the theoretical price.

getDividend

public double getDividend()
Returns implied simple dividend return of the corresponding option series. See Call-Put Parity section for an explanation this simple dividend return \( Q(\tau) \).

Returns:
implied simple dividend return of the corresponding option series.

setDividend

public void setDividend(double dividend)
Changes implied simple dividend return of the corresponding option series. See Call-Put Parity section for an explanation this simple dividend return \( Q(\tau) \).

Parameters:
dividend - implied simple dividend return of the corresponding option series.

getInterest

public double getInterest()
Returns implied simple interest return of the corresponding option series. See Call-Put Parity section for an explanation this simple interest return \( R(\tau) \).

Returns:
implied simple interest return of the corresponding option series.

setInterest

public void setInterest(double interest)
Changes implied simple interest return of the corresponding option series. See Call-Put Parity section for an explanation this simple interest return \( R(\tau) \).

Parameters:
interest - implied simple interest return of the corresponding option series.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2013 Devexperts. All Rights Reserved.