ECBPolicyRates
QuantConnect.DataSource.ECBPolicyRates
ECBPolicyRates()
ECBPolicyRates(csv: List[str])
Bases: BaseData
The rates the European Central Bank sets for the euro area, alongside the overnight rate the market actually trades at. The three policy rates form a corridor the ECB steers liquidity within: the deposit facility is its floor, the marginal lending facility its ceiling, and the main refinancing operations rate sits between them. The euro short-term rate is where unsecured overnight borrowing settles inside that corridor, so the gap between it and the deposit facility is a direct read on how loose funding conditions are.
One row per weekday, from 1999, including the TARGET holidays the system closes on. Weekends are dropped: an administered rate stays in force until the ECB changes it, so a weekend row would only repeat the Friday. The euro short-term rate only exists on TARGET business days and only from October 2019, so it is empty before then and on closures.
One file for the euro area. Subscribe with
AddData
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 rate |
None
|
main_refinancing_rate
main_refinancing_rate: Optional[float]
The main refinancing operations rate, the headline policy rate of the euro area and the one quoted when the ECB is said to have raised or cut. This is also the data point's Value.
deposit_facility_rate
deposit_facility_rate: Optional[float]
The deposit facility rate, paid on funds banks park at the ECB overnight. It is the floor of the corridor and, since 2014, the rate that actually steers euro money markets.
marginal_lending_rate
marginal_lending_rate: Optional[float]
The marginal lending facility rate, charged on overnight credit from the ECB against collateral. It is the ceiling of the corridor.
euro_short_term_rate
euro_short_term_rate: Optional[float]
The euro short-term rate, the volume-weighted rate at which euro area banks borrow unsecured overnight from financial counterparties. Unlike the three rates above it is measured from real transactions rather than set by the ECB. Empty before October 2019 and on days the TARGET system is closed.
end_time
end_time: datetime
The moment these rates became available, which is when LEAN makes the data point available. The policy rates are known in advance, but the euro short-term rate for a given day is only published at 08:00 Frankfurt time on the next TARGET business day, so the row is not complete until then. A row that never carries one, which is every row before October 2019 and every row inside a TARGET closure, is stamped at the next weekday instead, unless the row before it is waiting on a later print: the stamps are held at a running maximum so the column never steps backwards, which is why 25 December 2019 reads 27 December rather than 26.
Rows around a TARGET closure can share a release. LEAN keeps one data point per symbol per slice, so only the most recent of them arrives, and that is the row inside the closure, whose overnight rate is empty. Check it against null rather than assuming the reopening delivers the rate that printed that morning. See https://www.ecb.europa.eu/stats/financial_markets_and_interest_rates/euro_short-term_rate/
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
data_time_zone
data_time_zone() -> Any
Specifies the data time zone for this data type.
Returns:
| Type | Description |
|---|---|
Any
|
The Frankfurt time zone the ECB publishes in. |
default_resolution
default_resolution() -> Resolution
Gets the default resolution for this data and security type.
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 the policy rates file. |
is_sparse_data
is_sparse_data() -> bool
Indicates whether the data is sparse.
Returns:
| Type | Description |
|---|---|
bool
|
False: a single file holds every day of the history. |
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 can undergo rename proof standardization.
Returns:
| Type | Description |
|---|---|
bool
|
False: the rates are not tied to a tradable security. |
supported_resolutions
supported_resolutions() -> List[Resolution]
Gets the supported resolution for this data and security type.
Returns:
| Type | Description |
|---|---|
List[Resolution]
|
Daily resolution. |
to_string
to_string() -> str
Converts the instance to a string.
Returns:
| Type | Description |
|---|---|
str
|
A string containing the corridor and the overnight rate. |
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 |