etrading
frequenz.client.electricity_trading.cli.etrading ¤
CLI tool to interact with the trading API.
Classes¤
Functions¤
frequenz.client.electricity_trading.cli.etrading.cancel_order
async
¤
cancel_order(
url: str,
auth_key: str,
*,
gridpool_id: int,
order_id: int | None,
sign_secret: str | None = None
) -> None
Cancel an order by order ID.
If order_id is None, cancel all orders in the gridpool.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
URL of the trading API.
TYPE:
|
auth_key
|
API key.
TYPE:
|
gridpool_id
|
Gridpool ID.
TYPE:
|
order_id
|
Order ID to cancel or None to cancel all orders.
TYPE:
|
sign_secret
|
The cryptographic secret to use for HMAC generation.
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.check_delivery_start ¤
Validate that the delivery start is a multiple of duration.
| PARAMETER | DESCRIPTION |
|---|---|
ts
|
Delivery start timestamp.
TYPE:
|
duration
|
Delivery period duration. |
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
If |
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.create_order
async
¤
create_order(
url: str,
auth_key: str,
*,
gid: int,
delivery_start: datetime,
delivery_area: str,
price: str,
quantity_mw: str,
currency: str,
duration: timedelta,
sign_secret: str | None = None,
tag: str | None = None
) -> None
Create a limit order for a given price and quantity (in MW).
The market side is determined by the sign of the quantity, positive for buy orders and negative for sell orders. The delivery area code is expected to be in EUROPE_EIC format.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
URL of the trading API.
TYPE:
|
auth_key
|
API key.
TYPE:
|
gid
|
Gridpool ID.
TYPE:
|
delivery_start
|
Start of the delivery period.
TYPE:
|
delivery_area
|
Delivery area code.
TYPE:
|
price
|
Price of the order.
TYPE:
|
quantity_mw
|
Quantity in MW, positive for buy orders and negative for sell orders.
TYPE:
|
currency
|
Currency of the price.
TYPE:
|
duration
|
Duration of the delivery period.
TYPE:
|
sign_secret
|
The cryptographic secret to use for HMAC generation.
TYPE:
|
tag
|
Optional tag to attach to the order.
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.list_gridpool_orders
async
¤
list_gridpool_orders(
url: str,
auth_key: str,
*,
delivery_from: datetime | None,
delivery_to: datetime | None,
gid: int,
sign_secret: str | None = None
) -> None
List orders and stream new gridpool orders.
Optionally orders can be filtered by delivery period.
Note that retrieved sort order for listed orders (starting from the newest) is reversed in chunks trying to bring more recent orders to the bottom.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
URL of the trading API.
TYPE:
|
auth_key
|
API key.
TYPE:
|
delivery_from
|
Start timestamp (inclusive) to filter delivery start times or None.
TYPE:
|
delivery_to
|
End timestamp (exclusive) to filter delivery start times or None.
TYPE:
|
gid
|
Gridpool ID.
TYPE:
|
sign_secret
|
The cryptographic secret to use for HMAC generation.
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.list_gridpool_trades
async
¤
list_gridpool_trades(
url: str,
auth_key: str,
gid: int,
*,
delivery_from: datetime | None,
delivery_to: datetime | None,
sign_secret: str | None = None
) -> None
List gridpool trades and stream new gridpool trades.
Optionally trades can be filtered by delivery period.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
URL of the trading API.
TYPE:
|
auth_key
|
API key.
TYPE:
|
gid
|
Gridpool ID.
TYPE:
|
delivery_from
|
Start timestamp (inclusive) to filter delivery start times or None.
TYPE:
|
delivery_to
|
End timestamp (exclusive) to filter delivery start times or None.
TYPE:
|
sign_secret
|
The cryptographic secret to use for HMAC generation.
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_order ¤
print_order(order: OrderDetail, gid: int) -> None
Print order details to stdout in CSV format.
All fields except the following are printed: - order.stop_price - order.peak_price_delta - order.display_quantity - order.execution_option - order.valid_until - order.payload - state_detail.state_reason - state_detail.market_actor - open_quantity
| PARAMETER | DESCRIPTION |
|---|---|
order
|
OrderDetail object
TYPE:
|
gid
|
Gridpool ID
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_order_header ¤
Print order header in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_public_order ¤
print_public_order(order: PublicOrder) -> None
Print public order details to stdout in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_public_orders_header ¤
Print public order header in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_public_trade ¤
print_public_trade(trade: PublicTrade) -> None
Print trade details to stdout in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_public_trade_header ¤
Print trade header in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_trade ¤
Print trade details to stdout in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_trade_header ¤
Print trade header in CSV format.
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.receive_public_orders
async
¤
receive_public_orders(
url: str,
auth_key: str,
*,
delivery_start: datetime | None = None,
start: datetime | None = None,
end: datetime | None = None,
sign_secret: str | None = None
) -> None
List trades and stream new public trades.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
URL of the trading API.
TYPE:
|
auth_key
|
API key.
TYPE:
|
delivery_start
|
Start of the delivery period or None.
TYPE:
|
start
|
First execution time to list trades from.
TYPE:
|
end
|
Last execution time to list trades until.
TYPE:
|
sign_secret
|
The cryptographic secret to use for HMAC generation.
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.receive_public_trades
async
¤
receive_public_trades(
url: str,
auth_key: str,
*,
delivery_start: datetime | None = None,
start: datetime | None = None,
end: datetime | None = None,
sign_secret: str | None = None
) -> None
List trades and stream new public trades.
| PARAMETER | DESCRIPTION |
|---|---|
url
|
URL of the trading API.
TYPE:
|
auth_key
|
API key.
TYPE:
|
delivery_start
|
Start of the delivery period or None.
TYPE:
|
start
|
First execution time to list trades from.
TYPE:
|
end
|
Last execution time to list trades until.
TYPE:
|
sign_secret
|
The cryptographic secret to use for HMAC generation.
TYPE:
|
Source code in src/frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.reverse_iterator
async
¤
reverse_iterator(
iterator: AsyncIterator[OrderDetail],
chunk_size: int = 100000,
) -> AsyncIterator[OrderDetail]
Reverse an async iterator in chunks to avoid loading all elements into memory.
| PARAMETER | DESCRIPTION |
|---|---|
iterator
|
Async iterator to reverse.
TYPE:
|
chunk_size
|
Size of the buffer to store elements.
TYPE:
|
| YIELDS | DESCRIPTION |
|---|---|
AsyncIterator[OrderDetail]
|
Elements of the iterator in reverse order. |