@@ -125,51 +125,49 @@ async def receive_public_orders( # pylint: disable=too-many-arguments
125125 print_public_order (order )
126126
127127
128+ # pylint: disable=too-many-arguments
128129async def list_gridpool_trades (
129130 url : str ,
130131 auth_key : str ,
131132 gid : int ,
132133 * ,
133- delivery_start : datetime ,
134+ delivery_from : datetime | None ,
135+ delivery_to : datetime | None ,
134136 sign_secret : str | None = None ,
135137) -> None :
136138 """List gridpool trades and stream new gridpool trades.
137139
138- Optionally a delivery_start can be provided to filter the trades by delivery period.
140+ Optionally trades can be filtered by delivery period.
139141
140142 Args:
141143 url: URL of the trading API.
142144 auth_key: API key.
143145 gid: Gridpool ID.
144- delivery_start: Start of the delivery period or None.
146+ delivery_from: Start of the delivery period or None.
147+ delivery_to: End of the delivery period or None.
145148 sign_secret: The cryptographic secret to use for HMAC generation.
146149 """
147150 client = Client (server_url = url , auth_key = auth_key , sign_secret = sign_secret )
148151
149152 print_trade_header ()
150153
151- delivery_time_filter = None
152- # If delivery period is selected, list historical trades also
153- if delivery_start is not None :
154- check_delivery_start (delivery_start )
155- delivery_time_filter = DeliveryTimeFilter (
156- time_interval = Interval (
157- start_time = delivery_start ,
158- end_time = delivery_start + timedelta (minutes = 15 ),
159- ),
160- duration_filters = [],
161- )
162- lst = client .list_gridpool_trades (gid , delivery_time_filter = delivery_time_filter )
154+ delivery_time_filter = DeliveryTimeFilter (Interval (delivery_from , delivery_to ))
155+ lst = client .list_gridpool_trades (
156+ gid ,
157+ delivery_time_filter = delivery_time_filter ,
158+ )
159+
160+ # Initialize the stream before printing to minimize the gap between the two
161+ stream = client .gridpool_trades_stream (
162+ gid ,
163+ delivery_time_filter = delivery_time_filter ,
164+ ).new_receiver ()
163165
164166 async for trade in lst :
165167 print_trade (trade , gid )
166168
167- if delivery_start and delivery_start <= datetime .now (timezone .utc ):
168- return
169+ print ("---- Start streaming -----" )
169170
170- stream = client .gridpool_trades_stream (
171- gid , delivery_time_filter = delivery_time_filter
172- ).new_receiver ()
173171 async for trade in stream :
174172 print_trade (trade , gid )
175173
0 commit comments