Skip to content

ECBYieldCurve

QuantConnect.DataSource.ECBYieldCurve

ECBYieldCurve()
ECBYieldCurve(csv: List[str])

Bases: BaseData

The euro area government bond yield curve, estimated daily by the European Central Bank and published as annualised percentage rates. The shape of this curve is what the market thinks the ECB will do with rates, so its slope leads the European cycle the same way the Treasury curve leads the US one.

Ten standard maturities from three months to thirty years. The curve starts at three months, so there is no one month or two month rate to read.

One file per curve, one row per TARGET business day. Subscribe with a curve constant, for example AddData(ECB.YieldCurves.AaaSpot) for the spot curve fitted to triple A rated government bonds.

Signature descriptions:

  • Creates a new default instance.

  • Creates a new instance from the columns of a row produced by the data processor.

Parameters:

Name Type Description Default
csv Optional[List[str]]

Columns of the row: date, release stamp, then one per maturity

None

three_month

three_month: Optional[float]

Three month rate, the short end of the curve.

six_month

six_month: Optional[float]

Six month rate.

one_year

one_year: Optional[float]

One year rate.

two_year

two_year: Optional[float]

Two year rate. The most policy sensitive point on the curve, and the one that moves most on a change in rate expectations.

three_year

three_year: Optional[float]

Three year rate.

five_year

five_year: Optional[float]

Five year rate.

seven_year

seven_year: Optional[float]

Seven year rate.

ten_year

ten_year: Optional[float]

Ten year rate, the benchmark point of the curve. This is also the data point's Value. Against the two year it gives the slope, which is the usual regime signal.

twenty_year

twenty_year: Optional[float]

Twenty year rate.

thirty_year

thirty_year: Optional[float]

Thirty year rate, the long end of the curve.

end_time

end_time: datetime

The moment the ECB released this curve, which is when LEAN makes the data point available. A curve is published around midday Frankfurt time on the business day after the one it describes, so it is never available on the day itself. See https://www.ecb.europa.eu/stats/financial_markets_and_interest_rates/euro_area_yield_curves/

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 Field is protected.

DAILY_RESOLUTION

DAILY_RESOLUTION: List[Resolution] = ...

A list of Resolution.DAILY

This Field is protected.

MINUTE_RESOLUTION

MINUTE_RESOLUTION: List[Resolution] = ...

A list of Resolution.MINUTE

This Field is protected.

HIGH_RESOLUTION

HIGH_RESOLUTION: List[Resolution] = ...

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

This Field is protected.

OPTION_RESOLUTIONS

OPTION_RESOLUTIONS: List[Resolution] = ...

A list of resolutions support by Options

This Field is protected.

is_fill_forward

is_fill_forward: bool

True if this is a fill forward piece of data

clone

clone() -> BaseData

Clones the instance.

Returns:

Type Description
BaseData

A clone of the instance.

data_time_zone

data_time_zone() -> Any

Gets the time zone the data is published in. The ECB publishes on Frankfurt time, which shares the Berlin zone.

Returns:

Type Description
Any

The data time zone.

default_resolution

default_resolution() -> Resolution

Gets the default resolution for this data.

Returns:

Type Description
Resolution

Daily resolution.

get_source

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

Specifies the location of the data and directs LEAN where to load it from.

Parameters:

Name Type Description Default
config SubscriptionDataConfig

Subscription configuration

required
date datetime

Algorithm date

required
is_live_mode bool

Is live mode

required

Returns:

Type Description
SubscriptionDataSource

Subscription data source pointing at this curve's file.

is_sparse_data

is_sparse_data() -> bool

Indicates whether the data is sparse. The curve only prints on TARGET business days, so a daily subscription will ask for days that legitimately have no file entry.

Returns:

Type Description
bool

True.

reader

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

Parses one line of the source file into a data point.

Parameters:

Name Type Description Default
config SubscriptionDataConfig

Subscription configuration

required
line str

Line of the source CSV

required
date datetime

Date the request was made for

required
is_live_mode bool

Is live mode

required

Returns:

Type Description
BaseData

Instance of the class with the parsed data.

requires_mapping

requires_mapping() -> bool

Indicates whether the data source requires mapping. This curve describes the euro area as a whole, not a security whose ticker can change.

Returns:

Type Description
bool

False.

supported_resolutions

supported_resolutions() -> List[Resolution]

Gets the resolutions this data supports.

Returns:

Type Description
List[Resolution]

Daily resolution only.

to_string

to_string() -> str

Formats the instance as a string for logging and debugging.

Returns:

Type Description
str

String describing the data point.

deserialize_message

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

Deserialize the message from the data server

Parameters:

Name Type Description Default
serialized str

The data server's message

required

Returns:

Type Description
Sequence[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.

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