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 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:
|
key
|
API key.
TYPE:
|
gridpool_id
|
Gridpool ID.
TYPE:
|
order_id
|
Order ID to cancel or None to cancel all orders.
TYPE:
|
Source code in 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 frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.create_order
async
¤
create_order(
url: str,
key: str,
*,
gid: int,
delivery_start: datetime,
delivery_area: str,
price: str,
quantity_mw: str,
currency: str,
duration: timedelta
) -> 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:
|
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:
|
Source code in frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.list_gridpool_orders
async
¤
List orders and stream new gridpool orders.
If delivery_start is provided, list historical orders and stream new orders for the 15 minute delivery period starting at delivery_start. If no delivery_start is provided, stream new orders for any 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:
|
key
|
API key.
TYPE:
|
delivery_start
|
Start of the delivery period or None.
TYPE:
|
gid
|
Gridpool ID.
TYPE:
|
Source code in frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.list_gridpool_trades
async
¤
List gridpool trades and stream new gridpool trades.
Optionally a delivery_start can be provided to filter the trades by delivery period.
PARAMETER | DESCRIPTION |
---|---|
url
|
URL of the trading API.
TYPE:
|
key
|
API key.
TYPE:
|
gid
|
Gridpool ID.
TYPE:
|
delivery_start
|
Start of the delivery period or None.
TYPE:
|
Source code in frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.list_public_trades
async
¤
List trades and stream new public trades.
If delivery_start is provided, list historical trades and stream new trades for the 15 minute delivery period starting at delivery_start. If no delivery_start is provided, stream new trades for any delivery period.
PARAMETER | DESCRIPTION |
---|---|
url
|
URL of the trading API.
TYPE:
|
key
|
API key.
TYPE:
|
delivery_start
|
Start of the delivery period or None.
TYPE:
|
Source code in frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_order ¤
print_order(order: OrderDetail) -> 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:
|
Source code in 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 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 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 frequenz/client/electricity_trading/cli/etrading.py
frequenz.client.electricity_trading.cli.etrading.print_trade ¤
print_trade(trade: Trade) -> None
Print trade details to stdout in CSV format.
Source code in 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 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. |