dxFeed Graal CXX API
Loading...
Searching...
No Matches
CandleSymbol Struct Reference

Symbol that should be used with DXFeedSubscription class to subscribe for Candle events. More...

#include <CandleSymbol.hpp>

Public Member Functions

const std::string & getBaseSymbol () const &noexcept
 Returns base market symbol without attributes.
 
const std::optional< CandleExchange > & getExchange () const &noexcept
 Returns exchange attribute of this symbol.
 
const std::optional< CandlePrice > & getPrice () const &noexcept
 Returns price type attribute of this symbol.
 
const std::optional< CandleSession > & getSession () const &noexcept
 Returns session attribute of this symbol.
 
const std::optional< CandlePeriod > & getPeriod () const &noexcept
 Returns aggregation period of this symbol.
 
const std::optional< CandleAlignment > & getAlignment () const &noexcept
 Returns alignment attribute of this symbol.
 
const std::optional< CandlePriceLevel > & getPriceLevel () const &noexcept
 Returns price level attribute of this symbol.
 
const std::string & toString () const &noexcept
 Returns string representation of this symbol.
 
virtual void * toGraal () const
 Allocates memory for the dxFeed Graal SDK structure (recursively if necessary).
 

Static Public Member Functions

static void freeGraal (void *graalNative)
 Releases the memory occupied by the dxFeed Graal SDK structure (recursively if necessary).
 
static CandleSymbol fromGraal (void *graalNative)
 Creates an object of the current type and fills it with data from the the dxFeed Graal SDK structure.
 
static CandleSymbol valueOf (std::string symbol) noexcept
 Converts the given string symbol into the candle symbol object.
 
static CandleSymbol valueOf (std::string symbol, const CandleSymbolAttributeVariant &attribute) noexcept
 Converts the given string symbol into the candle symbol object with the specified attribute set.
 
static CandleSymbol valueOf (std::string symbol, std::initializer_list< CandleSymbolAttributeVariant > attributes) noexcept
 Converts the given string symbol into the candle symbol object with the specified attributes set.
 

Detailed Description

Symbol that should be used with DXFeedSubscription class to subscribe for Candle events.

DXFeedSubscription also accepts a string representation of the candle symbol for subscription.

String representation

The string representation of the candle symbol consist of a baseSymbol followed by an optional '&' with an exchange code letter and followed by an optional list of comma-separated key=value pairs in curly braces:

‘<baseSymbol> [ ’&' <exchange> ] [ '{' <key1>=<value1> [ ',' <key2>=<value2> ] ... '}' ]`

Properties of the candle symbol correspond to the keys in the string representation in the following way:

  • Empty key corresponds to period — aggregation period of this symbol. The period value is composed of an optional value which defaults to 1 when not specified, followed by a type string which is defined by one of the CandleType values and can be abbreviated to first letters. For example, a daily candle of "IBM" base symbol can be specified as "IBM{=d}" and 15 minute candle on it as "IBM{=15m}". The shortest possible abbreviation for CandleType::MONTH is "mo", so the monthly candle can be specified as "IBM{=mo}". When period is not specified, then the CandlePeriod::TICK aggregation period is assumed as default. Note, that tick aggregation may not be available on the demo system which is limited to a subset of symbols and aggregation periods.
  • "price" key corresponds to price — price type attribute of this symbol. The CandlePrice defines possible values with CandlePrice::LAST being default. For legacy backwards-compatibility purposes, most of the price values cannot be abbreviated, so a one-minute candle of "EUR/USD" bid price shall be specified with "EUR/USD{=m,price=bid}" candle symbol string. However, the CandlePrice::SETTLEMENT can be abbreviated to "s", so a daily candle on "/ES" futures settlement prices can be specified with "/ES{=d,price=s}" string.
  • "tho" key with a value of "true" corresponds to session set to CandleSession::REGULAR which limits the candle to trading hours only, so a 133 tick candles on "GOOG" base symbol collected over trading hours only can be specified with "GOOG{=133t,tho=true}" string. Note, that the default daily candles for US equities are special for historical reasons and correspond to the way US equity exchange report their daily summary data. The volume the US equity default daily candle corresponds to the total daily traded volume, while open, high, low, and close correspond to the regular trading hours only.
  • "a" key corresponds to alignment — alignment attribute of this symbol. The CandleAlignment defines possible values with CandleAlignment::MIDNIGHT being default. The alignment values can be abbreviated to the first letter. So, a 1 hour candle on a symbol "AAPL" that starts at the regular trading session at 9:30 am ET can be specified with "AAPL{=h,a=s,tho=true}". Contrast that to the "AAPL{=h,tho=true}" candle that is aligned at midnight and thus starts at 9:00 am.
  • "pl" key corresponds to price level — price level attribute of this symbol. The CandlePriceLevel defines additional axis to split candles within particular price corridor in addition to CandlePeriod attribute with the default value NaN. So a one-minute candles of "AAPL" with price level 0.1 shall be specified with "AAPL{=m,pl=0.1}".

Keys in the candle symbol are case-sensitive, while values are not. The CandleSymbol::valueOf() method parses any valid string representation into a candle symbol object. The result of the candle symbol CandleSymbol::toString() method is always normalized: keys are ordered lexicographically, values are in lower-case and are abbreviated to their shortest possible form.

Member Function Documentation

◆ freeGraal()

void CandleSymbol::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.

Referenced by SymbolWrapper::freeGraal().

◆ fromGraal()

CandleSymbol CandleSymbol::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

Referenced by SymbolWrapper::fromGraal().

◆ getAlignment()

const std::optional< CandleAlignment > & CandleSymbol::getAlignment ( ) const &
inlinenoexcept

Returns alignment attribute of this symbol.

Returns
alignment attribute of this symbol.

◆ getBaseSymbol()

const std::string & CandleSymbol::getBaseSymbol ( ) const &
inlinenoexcept

Returns base market symbol without attributes.

Returns
base market symbol without attributes.

◆ getExchange()

const std::optional< CandleExchange > & CandleSymbol::getExchange ( ) const &
inlinenoexcept

Returns exchange attribute of this symbol.

Returns
exchange attribute of this symbol.

◆ getPeriod()

const std::optional< CandlePeriod > & CandleSymbol::getPeriod ( ) const &
inlinenoexcept

Returns aggregation period of this symbol.

Returns
aggregation period of this symbol.

◆ getPrice()

const std::optional< CandlePrice > & CandleSymbol::getPrice ( ) const &
inlinenoexcept

Returns price type attribute of this symbol.

Returns
price type attribute of this symbol.

◆ getPriceLevel()

const std::optional< CandlePriceLevel > & CandleSymbol::getPriceLevel ( ) const &
inlinenoexcept

Returns price level attribute of this symbol.

Returns
price level attribute of this symbol.

◆ getSession()

const std::optional< CandleSession > & CandleSymbol::getSession ( ) const &
inlinenoexcept

Returns session attribute of this symbol.

Returns
session attribute of this symbol.

◆ toGraal()

DXFCPP_BEGIN_NAMESPACE void * CandleSymbol::toGraal ( ) const
virtual

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

◆ toString()

const std::string & CandleSymbol::toString ( ) const &
inlinenoexcept

Returns string representation of this symbol.

The string representation can be transformed back into symbol object using CandleSymbol::valueOf() method.

Returns
string representation of this symbol.

◆ valueOf() [1/3]

static CandleSymbol CandleSymbol::valueOf ( std::string symbol)
inlinestaticnoexcept

Converts the given string symbol into the candle symbol object.

Parameters
symbolthe string symbol.
Returns
the candle symbol object.

◆ valueOf() [2/3]

static CandleSymbol CandleSymbol::valueOf ( std::string symbol,
const CandleSymbolAttributeVariant & attribute )
inlinestaticnoexcept

Converts the given string symbol into the candle symbol object with the specified attribute set.

Parameters
symbolthe string symbol.
attributethe attribute to set.
Returns
the candle symbol object.

◆ valueOf() [3/3]

static CandleSymbol CandleSymbol::valueOf ( std::string symbol,
std::initializer_list< CandleSymbolAttributeVariant > attributes )
inlinestaticnoexcept

Converts the given string symbol into the candle symbol object with the specified attributes set.

Parameters
symbolthe string symbol.
attributesmore attributes to set.
Returns
the candle symbol object.