Skip to content

EIAElectricity

QuantConnect.DataSource.EIAElectricity

EIAElectricity()
EIAElectricity(line: str)

Bases: BaseData

U.S. electric grid operating data from EIA Form EIA-930, one record per balancing authority per day: demand, the day-ahead demand forecast, net generation, net interchange with neighbouring authorities, and the generation split across all sixteen fuel types the form reports. Every value is in megawatthours. The daily totals use the Eastern day boundary.

Signature descriptions:

  • Default constructor required by LEAN.

  • Parses one CSV line into a data point.

end_time

end_time: datetime

End of the operating day, one day after the day the record covers. This is when LEAN delivers the data point, once EIA has published the completed day.

demand

demand: Optional[float]

Actual electricity demand on the grid.

demand_forecast

demand_forecast: Optional[float]

Demand the balancing authority forecast a day ahead for this hour.

net_generation

net_generation: Optional[float]

Total net generation. This is also the data point's Value.

total_interchange

total_interchange: Optional[float]

Net interchange with neighbouring authorities. Positive exports, negative imports.

coal

coal: Optional[float]

Net generation from coal.

natural_gas

natural_gas: Optional[float]

Net generation from natural gas.

nuclear

nuclear: Optional[float]

Net generation from nuclear.

hydro

hydro: Optional[float]

Net generation from hydro.

wind

wind: Optional[float]

Net generation from wind.

solar

solar: Optional[float]

Net generation from solar.

geothermal

geothermal: Optional[float]

Net generation from geothermal.

oil

oil: Optional[float]

Net generation from petroleum.

other

other: Optional[float]

Net generation from sources the form groups as other.

unknown

unknown: Optional[float]

Net generation the balancing authority did not classify.

pumped_storage

pumped_storage: Optional[float]

Net generation from pumped storage. Negative while pumping.

battery

battery: Optional[float]

Net generation from battery storage. Negative while charging.

other_storage

other_storage: Optional[float]

Net generation from storage the form groups as other.

unknown_storage

unknown_storage: Optional[float]

Net generation from storage the balancing authority did not classify.

solar_with_storage

solar_with_storage: Optional[float]

Net generation from solar paired with integrated battery storage.

wind_with_storage

wind_with_storage: Optional[float]

Net generation from wind paired with integrated battery storage.

FUEL_COLUMNS

FUEL_COLUMNS: Sequence[ValueTuple[str, str]]

The EIA-930 fuel type codes that feed each generation column, in the exact order the processor writes them (csv<5> onward) and the EIAElectricity(string) parser reads them back. Single source of truth for the column layout, kept next to the parser.

REGION_COLUMNS

REGION_COLUMNS: Sequence[ValueTuple[str, str]]

The region-data type codes that feed the four headline columns, in the order the processor writes them (csv<1> onward).

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

Creates a copy of the instance.

data_time_zone

data_time_zone() -> Any

Data time zone. The daily EIA-930 totals use the Eastern day boundary, matching our other U.S. agency datasets (BEA, CFTC, FINRA).

default_resolution

default_resolution() -> Resolution

Default resolution.

get_source

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

Location of the source file: alternative/eia/electricity/{code}.csv

is_sparse_data

is_sparse_data() -> bool

Sparse: one file per balancing authority, suppress missing-file logs.

reader

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

Parses the data from the line provided and loads it into LEAN.

requires_mapping

requires_mapping() -> bool

Unlinked (keyed by balancing authority, not a mapped equity).

supported_resolutions

supported_resolutions() -> List[Resolution]

Supported resolutions. Daily, the cadence the data fleet processes at.

to_string

to_string() -> str

String representation for debugging.

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