Skip to content

PythonData

QuantConnect.Python.PythonData

PythonData(python_data: Any)
PythonData()

Bases: DynamicData

Dynamic data class for Python algorithms. Stores properties of python instances in DynamicData dictionary

Signature descriptions:

  • Constructor for initializing the PythonData class with wrapped PyObject

  • Constructor for initializing the PythonData class

Parameters:

Name Type Description Default
python_data Optional[Any]
None

end_time

end_time: datetime

The end time of this data. Some data covers spans (trade bars) and as such we want to know the entire time span covered

symbol

symbol: Symbol

Symbol representation for underlying Security

data_type

data_type: MarketDataType

Market Data Type of this data - does it come in individual price packets or is it grouped into OHLC.

time

time: datetime

Current time marker of this data packet.

value

value: float

Value representation of this data packet. All data requires a representative value for this moment in time. For streams of data this is the price now, for OHLC packets this is the closing price.

price

price: float

As this is a backtesting platform we'll provide an alias of value as price.

ALL_RESOLUTIONS

ALL_RESOLUTIONS: List[Resolution] = ...

A list of all Resolution

This codeEntityType is protected.

DAILY_RESOLUTION

DAILY_RESOLUTION: List[Resolution] = ...

A list of Resolution.DAILY

This codeEntityType is protected.

MINUTE_RESOLUTION

MINUTE_RESOLUTION: List[Resolution] = ...

A list of Resolution.MINUTE

This codeEntityType is protected.

HIGH_RESOLUTION

HIGH_RESOLUTION: List[Resolution] = ...

A list of high Resolution, including minute, second, and tick.

This codeEntityType is protected.

OPTION_RESOLUTIONS

OPTION_RESOLUTIONS: List[Resolution] = ...

A list of resolutions support by Options

This codeEntityType is protected.

is_fill_forward

is_fill_forward: bool

True if this is a fill forward piece of data

__getitem__

__getitem__(index: str) -> Any

Indexes into this PythonData, where index is key to the dynamic property

Parameters:

Name Type Description Default
index str

the index

required

Returns:

Type Description
Any

Dynamic property of a given index.

__setitem__

__setitem__(index: str, value: Any) -> None

Indexes into this PythonData, where index is key to the dynamic property

Parameters:

Name Type Description Default
index str

the index

required

Returns:

Type Description
None

Dynamic property of a given index.

default_resolution

default_resolution() -> Resolution

Gets the default resolution for this data and security type

get_source

get_source(
    config: SubscriptionDataConfig,
    date: datetime,
    is_live_mode: bool,
) -> SubscriptionDataSource

Source Locator for algorithm written in Python.

Parameters:

Name Type Description Default
config SubscriptionDataConfig

Subscription configuration object

required
date datetime

Date of the data file we're looking for

required
is_live_mode bool

true if we're in live mode, false for backtesting mode

required

Returns:

Type Description
SubscriptionDataSource

STRING API Url.

is_of_type

is_of_type(type: Type) -> bool

Helper method to determine if the current instance is of the provided type

Parameters:

Name Type Description Default
type Type

Target type to check against

required

Returns:

Type Description
bool

True if this instance is of the provided type.

is_sparse_data

is_sparse_data() -> bool

Indicates that the data set is expected to be sparse

Returns:

Type Description
bool

True if the data set represented by this type is expected to be sparse.

reader

reader(
    config: SubscriptionDataConfig,
    line: str,
    date: datetime,
    is_live_mode: bool,
) -> BaseData

Generic Reader Implementation for Python Custom Data.

Parameters:

Name Type Description Default
config SubscriptionDataConfig

Subscription configuration

required
line str

CSV line of data from the source

required
date datetime

Date of the requested line

required
is_live_mode bool

true if we're in live mode, false for backtesting mode

required

requires_mapping

requires_mapping() -> bool

Indicates if there is support for mapping

Returns:

Type Description
bool

True indicates mapping should be used.

supported_resolutions

supported_resolutions() -> List[Resolution]

Gets the supported resolution for this data and security type

clone

clone() -> BaseData

Return a new instance clone of this object, used in fill forward

Returns:

Type Description
BaseData

A clone of the current object.

data_time_zone

data_time_zone() -> Any

Specifies the data time zone for this data type. This is useful for custom data types

Returns:

Type Description
Any

The DateTimeZone of this data type.

deserialize_message

deserialize_message(serialized: str) -> Iterable[BaseData]

Deserialize the message from the data server

Parameters:

Name Type Description Default
serialized str

The data server's message

required

Returns:

Type Description
Iterable[BaseData]

An enumerable of base data, if unsuccessful, returns an empty enumerable.

should_cache_to_security

should_cache_to_security() -> bool

Indicates whether this contains data that should be stored in the security cache

Returns:

Type Description
bool

Whether this contains data that should be stored in the security cache.

to_string

to_string() -> str

Formats a string with the symbol and value.

Returns:

Type Description
str

string - a string formatted as SPY: 167.753.

update

update(
    last_trade: float,
    bid_price: float,
    ask_price: float,
    volume: float,
    bid_size: float,
    ask_size: float,
) -> None

Update routine to build a bar/tick from a data update.

Parameters:

Name Type Description Default
last_trade float

The last trade price

required
bid_price float

Current bid price

required
ask_price float

Current asking price

required
volume float

Volume of this trade

required
bid_size float

The size of the current bid, if available

required
ask_size float

The size of the current ask, if available

required

update_ask

update_ask(ask_price: float, ask_size: float) -> None

Updates this base data with the new quote ask information

Parameters:

Name Type Description Default
ask_price float

The current ask price

required
ask_size float

The current ask size

required

update_bid

update_bid(bid_price: float, bid_size: float) -> None

Updates this base data with the new quote bid information

Parameters:

Name Type Description Default
bid_price float

The current bid price

required
bid_size float

The current bid size

required

update_quote

update_quote(
    bid_price: float,
    bid_size: float,
    ask_price: float,
    ask_size: float,
) -> None

Updates this base data with new quote information

Parameters:

Name Type Description Default
bid_price float

The current bid price

required
bid_size float

The current bid size

required
ask_price float

The current ask price

required
ask_size float

The current ask size

required

update_trade

update_trade(last_trade: float, trade_size: float) -> None

Updates this base data with a new trade

Parameters:

Name Type Description Default
last_trade float

The price of the last trade

required
trade_size float

The quantity traded

required

get_meta_object

get_meta_object(parameter: Any) -> Any

Get the metaObject required for Dynamism.

get_property

get_property(name: str) -> Object

Gets the property's value with the specified name. This is a case-insensitve search.

Parameters:

Name Type Description Default
name str

The property name to access

required

Returns:

Type Description
Object

object value of BaseData.

get_storage_dictionary

get_storage_dictionary() -> IDictionary[str, Object]

Gets the storage dictionary Python algorithms need this information since DynamicMetaObject does not work

Returns:

Type Description
IDictionary[str, Object]

Dictionary that stores the paramenters names and values.

has_property

has_property(name: str) -> bool

Gets whether or not this dynamic data instance has a property with the specified name. This is a case-insensitve search.

Parameters:

Name Type Description Default
name str

The property name to check for

required

Returns:

Type Description
bool

True if the property exists, false otherwise.

set_property

set_property(name: str, value: Any) -> Object

Sets the property with the specified name to the value. This is a case-insensitve search.

Parameters:

Name Type Description Default
name str

The property name to set

required
value Any

The new property value

required

Returns:

Type Description
Object

Returns the input value back to the caller.