dxFeed Graal CXX API
Loading...
Searching...
No Matches
TheoPrice Class Referencefinal

Theo price is a snapshot of the theoretical option price computation that is periodically performed by dxPrice model-free computation. More...

#include <TheoPrice.hpp>

+ Inheritance diagram for TheoPrice:

Public Types

using Ptr = std::shared_ptr<TheoPrice>
 The alias to a type of shared pointer to the TheoPrice object.
 
using Unique = std::unique_ptr<TheoPrice>
 The alias to a type of unique pointer to the TheoPrice object.
 
- Public Types inherited from MarketEvent
using Ptr = std::shared_ptr<MarketEvent>
 The alias to a type of shared pointer to the MarketEvent object.
 
- Public Types inherited from EventTypeWithSymbol< std::string >
using Ptr
 The alias to a type of shared pointer to the EventTypeWithSymbol's child object.
 
- Public Types inherited from EventType
using Ptr = std::shared_ptr<EventType>
 The alias to a type of shared pointer to the EventType object.
 
- Public Types inherited from SharedEntity
using Ptr = std::shared_ptr<SharedEntity>
 The alias to a type of shared pointer to the SharedEntity object.
 
- Public Types inherited from TimeSeriesEvent
using Ptr = std::shared_ptr<TimeSeriesEvent>
 The alias to a type of shared pointer to the TimeSeriesEvent object.
 
- Public Types inherited from IndexedEvent
using Ptr = std::shared_ptr<IndexedEvent>
 The alias to a type of shared pointer to the IndexedEvent object.
 
- Public Types inherited from LastingEvent
using Ptr = std::shared_ptr<LastingEvent>
 The alias to a type of shared pointer to the LastingEvent object.
 

Public Member Functions

void * toGraal () const override
 Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
 
 TheoPrice () noexcept=default
 Creates new theoprice event with default values.
 
 TheoPrice (std::string eventSymbol) noexcept
 Creates new theoprice event with the specified event symbol.
 
const IndexedEventSourcegetSource () const &noexcept override
 Returns the source of this event.
 
std::int32_t getEventFlags () const noexcept override
 Returns transactional event flags.
 
EventFlagsMask getEventFlagsMask () const noexcept override
 Returns transactional event flags.
 
void setEventFlags (std::int32_t eventFlags) noexcept override
 Changes transactional event flags.
 
void setEventFlags (const EventFlagsMask &eventFlags) noexcept override
 Changes transactional event flags.
 
std::int64_t getIndex () const noexcept override
 Returns unique per-symbol index of this event.
 
void setIndex (std::int64_t index) override
 Changes unique per-symbol index of this event.
 
std::int64_t getTime () const noexcept override
 Returns timestamp of the event in milliseconds.
 
void setTime (std::int64_t time) noexcept
 Changes timestamp of the event in milliseconds.
 
std::int32_t getSequence () const noexcept
 Returns the sequence number of this event to distinguish events that have the same time.
 
void setSequence (std::int32_t sequence)
 Changes sequence number of this event.
 
double getPrice () const noexcept
 Returns theoretical option price.
 
void setPrice (double price) noexcept
 Changes theoretical option price.
 
double getUnderlyingPrice () const noexcept
 Returns underlying price at the time of theo price computation.
 
void setUnderlyingPrice (double underlyingPrice) noexcept
 Changes underlying price at the time of theo price computation.
 
double getDelta () const noexcept
 Returns delta of the theoretical price.
 
void setDelta (double delta) noexcept
 Changes delta of the theoretical price.
 
double getGamma () const noexcept
 Returns gamma of the theoretical price.
 
void setGamma (double gamma) noexcept
 Changes gamma of the theoretical price.
 
double getDividend () const noexcept
 Returns implied simple dividend return of the corresponding option series.
 
void setDividend (double dividend) noexcept
 Changes implied simple dividend return of the corresponding option series.
 
double getInterest () const noexcept
 Returns implied simple interest return of the corresponding option series.
 
void setInterest (double interest) noexcept
 Changes implied simple interest return of the corresponding option series.
 
std::string toString () const noexcept override
 Returns a string representation of the current object.
 
- Public Member Functions inherited from MarketEvent
const std::string & getEventSymbol () const &noexcept override
 Returns symbol of this event.
 
const std::optional< std::string > & getEventSymbolOpt () const &noexcept override
 Returns symbol of this event.
 
void setEventSymbol (const std::string &eventSymbol) noexcept override
 Changes symbol of this event.
 
std::int64_t getEventTime () const noexcept override
 Returns time when event was created or zero when time is not available.
 
void setEventTime (std::int64_t eventTime) noexcept override
 Changes event creation time.
 
- Public Member Functions inherited from SharedEntity
template<typename T >
bool is () const noexcept
 Checks that pointer to the current type could be converted to type T* In other words: whether type T belongs to the type hierarchy in which the current type resides.
 
template<typename T >
std::shared_ptr< T > sharedAs () noexcept
 Returns a pointer to the current object wrapped in a smart pointer to type T.
 
template<typename T >
std::shared_ptr< T > sharedAs () const noexcept
 Returns a pointer to the current object wrapped in a smart pointer to type T.
 
- Public Member Functions inherited from Entity
virtual ~Entity () noexcept=default
 The default virtual d-tor.
 
- Public Member Functions inherited from TimeSeriesEvent
const IndexedEventSourcegetSource () const &noexcept override
 Returns the source identifier for this event, which is always DEFAULT for time-series events.
 
std::int64_t getIndex () const noexcept override
 Returns unique per-symbol index of this event.
 
virtual std::int64_t getEventId () const noexcept
 Returns unique per-symbol index of this event.
 

Static Public Member Functions

static Ptr fromGraal (void *graalNative)
 Creates an object of the current type and fills it with data from the the dxFeed Graal SDK structure.
 
static void freeGraal (void *graalNative)
 Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
 

Static Public Attributes

static const EventTypeEnumTYPE = EventTypeEnum::THEO_PRICE
 Type identifier and additional information about the current event class.
 
static constexpr std::uint32_t MAX_SEQUENCE = (1U << 22U) - 1U
 Maximum allowed sequence value.
 
- Static Public Attributes inherited from IndexedEvent
static const EventFlag TX_PENDING = EventFlag::TX_PENDING
 0x01 - A bitmask to get transaction pending indicator from the value of eventFlags property.
 
static const EventFlag REMOVE_EVENT = EventFlag::REMOVE_EVENT
 0x02 - A bitmask to get removal indicator from the value of eventFlags property.
 
static const EventFlag SNAPSHOT_BEGIN = EventFlag::SNAPSHOT_BEGIN
 0x04 - A bitmask to get snapshot begin indicator from the value of eventFlags property.
 
static const EventFlag SNAPSHOT_END = EventFlag::SNAPSHOT_END
 0x08 - A bitmask to get snapshot end indicator from the value of eventFlags property.
 
static const EventFlag SNAPSHOT_SNIP = EventFlag::SNAPSHOT_SNIP
 0x10 - A bitmask to get snapshot snip indicator from the value of eventFlags property.
 
static const EventFlag SNAPSHOT_MODE = EventFlag::SNAPSHOT_MODE
 0x40 - A bitmask to set snapshot mode indicator into the value of eventFlags property.
 

Additional Inherited Members

- Protected Member Functions inherited from MarketEvent
 MarketEvent (std::string eventSymbol) noexcept
 Protected constructor for concrete implementation classes that initializes eventSymbol property.
 

Detailed Description

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.

Event flags, transactions and snapshots

Some TheoPrice sources provide a consistent view of the set of known TheoPrice. The corresponding information is carried in eventFlags property. The logic behind this property is detailed in IndexedEvent class documentation. Multiple event sources for the same symbol are not supported for TheoPrice, thus source property is always DEFAULT.

TimeSeriesEventModel class handles all the snapshot and transaction logic and conveniently represents a list current of time-series events order by their time.

Publishing TheoPrice

Publishing of TheoPrice events follows the general rules explained in TimeSeriesEvent class documentation.

Implementation details

This event is implemented on top of QDS records TheoPrice.

Constructor & Destructor Documentation

◆ TheoPrice()

TheoPrice::TheoPrice ( std::string eventSymbol)
inlineexplicitnoexcept

Creates new theoprice event with the specified event symbol.

Parameters
eventSymbolThe event symbol.

Member Function Documentation

◆ freeGraal()

void TheoPrice::freeGraal ( void * graalNative)
static

Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).

Parameters
graalNativeThe pointer to the dxFeed Graal SDK structure.

◆ fromGraal()

std::shared_ptr< TheoPrice > TheoPrice::fromGraal ( void * graalNative)
static

Creates an object of the current type and fills it with data from the the dxFeed Graal SDK structure.

Parameters
graalNativeThe pointer to the dxFeed Graal SDK structure.
Returns
The object of current type.
Exceptions
std::invalid_argument

◆ getDelta()

double TheoPrice::getDelta ( ) const
inlinenoexcept

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.

◆ getDividend()

double TheoPrice::getDividend ( ) const
inlinenoexcept

Returns implied simple dividend return of the corresponding option series.

Returns
implied simple dividend return of the corresponding option series.

◆ getEventFlags()

std::int32_t TheoPrice::getEventFlags ( ) const
inlineoverridevirtualnoexcept

Returns transactional event flags.

See EventFlag "Event Flags" section.

Returns
The transactional event flags.

Implements IndexedEvent.

◆ getEventFlagsMask()

EventFlagsMask TheoPrice::getEventFlagsMask ( ) const
inlineoverridevirtualnoexcept

Returns transactional event flags.

See EventFlag "Event Flags" section.

Returns
The transactional event flags' mask.

Implements IndexedEvent.

◆ getGamma()

double TheoPrice::getGamma ( ) const
inlinenoexcept

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.

◆ getIndex()

std::int64_t TheoPrice::getIndex ( ) const
inlineoverridevirtualnoexcept

Returns unique per-symbol index of this event.

The index is composed of time and sequence. Changing either time or sequence changes event index.

Returns
unique index of this event.

Implements IndexedEvent.

◆ getInterest()

double TheoPrice::getInterest ( ) const
inlinenoexcept

Returns implied simple interest return of the corresponding option series.

Returns
implied simple interest return of the corresponding option series.

◆ getPrice()

double TheoPrice::getPrice ( ) const
inlinenoexcept

Returns theoretical option price.

Returns
theoretical option price.

◆ getSequence()

std::int32_t TheoPrice::getSequence ( ) const
inlinenoexcept

Returns the sequence number of this event to distinguish events that have the same time.

This sequence number does not have to be unique and does not need to be sequential. Sequence can range from 0 to MAX_SEQUENCE.

Returns
The sequence number of this event

References MAX_SEQUENCE.

Referenced by setTime().

◆ getSource()

const IndexedEventSource & TheoPrice::getSource ( ) const &
inlineoverridevirtualnoexcept

Returns the source of this event.

Returns
The source of this event.

Implements IndexedEvent.

References IndexedEventSource::DEFAULT.

◆ getTime()

std::int64_t TheoPrice::getTime ( ) const
inlineoverridevirtualnoexcept

Returns timestamp of the event in milliseconds.

Returns
timestamp of the event in milliseconds

Implements TimeSeriesEvent.

◆ getUnderlyingPrice()

double TheoPrice::getUnderlyingPrice ( ) const
inlinenoexcept

Returns underlying price at the time of theo price computation.

Returns
underlying price at the time of theo price computation.

◆ setDelta()

void TheoPrice::setDelta ( double delta)
inlinenoexcept

Changes delta of the theoretical price.

Parameters
deltadelta of the theoretical price.

◆ setDividend()

void TheoPrice::setDividend ( double dividend)
inlinenoexcept

Changes implied simple dividend return of the corresponding option series.

Parameters
dividendimplied simple dividend return of the corresponding option series.

◆ setEventFlags() [1/2]

void TheoPrice::setEventFlags ( const EventFlagsMask & eventFlags)
inlineoverridevirtualnoexcept

Changes transactional event flags.

See EventFlag "Event Flags" section.

Parameters
eventFlagstransactional event flags' mask.

Implements IndexedEvent.

References EventFlagsMask::getMask().

◆ setEventFlags() [2/2]

void TheoPrice::setEventFlags ( std::int32_t eventFlags)
inlineoverridevirtualnoexcept

Changes transactional event flags.

See EventFlag "Event Flags" section.

Parameters
eventFlagstransactional event flags.

Implements IndexedEvent.

◆ setGamma()

void TheoPrice::setGamma ( double gamma)
inlinenoexcept

Changes gamma of the theoretical price.

Parameters
gammagamma of the theoretical price.

◆ setIndex()

void TheoPrice::setIndex ( std::int64_t index)
inlineoverridevirtual

Changes unique per-symbol index of this event.

The index is composed of time and sequence and invocation of this method changes time and sequence. Do not use this method directly. Change time and/or sequence.

Parameters
indexthe event index.
See also
getIndex()

Implements IndexedEvent.

◆ setInterest()

void TheoPrice::setInterest ( double interest)
inlinenoexcept

Changes implied simple interest return of the corresponding option series.

Parameters
interestimplied simple interest return of the corresponding option series.

◆ setPrice()

void TheoPrice::setPrice ( double price)
inlinenoexcept

Changes theoretical option price.

Parameters
pricetheoretical option price.

◆ setSequence()

void TheoPrice::setSequence ( std::int32_t sequence)
inline

Changes sequence number of this event.

Parameters
sequencethe sequence.
See also
getSequence()

References MAX_SEQUENCE.

◆ setTime()

void TheoPrice::setTime ( std::int64_t time)
inlinenoexcept

Changes timestamp of the event in milliseconds.

Parameters
timetimestamp of the event in milliseconds.
See also
getTime()

References getSequence().

◆ setUnderlyingPrice()

void TheoPrice::setUnderlyingPrice ( double underlyingPrice)
inlinenoexcept

Changes underlying price at the time of theo price computation.

Parameters
underlyingPriceunderlying price at the time of theo price computation.

◆ toGraal()

void * TheoPrice::toGraal ( ) const
overridevirtual

Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).

Fills the dxFeed Graal SDK structure's fields by the data of the current entity (recursively if necessary). Returns the pointer to the filled structure.

Returns
The pointer to the filled dxFeed Graal SDK structure

Implements EventType.

◆ toString()

std::string TheoPrice::toString ( ) const
overridevirtualnoexcept

Returns a string representation of the current object.

Returns
a string representation

Reimplemented from EventType.

Member Data Documentation

◆ MAX_SEQUENCE

std::uint32_t TheoPrice::MAX_SEQUENCE = (1U << 22U) - 1U
staticconstexpr

Maximum allowed sequence value.

See also
setSequence()

Referenced by getSequence(), and setSequence().