@@ -41,17 +41,22 @@ def check_delivery_start(
4141 raise ValueError ("Delivery period must be a multiple of `duration`." )
4242
4343
44- async def list_public_trades (url : str , key : str , * , delivery_start : datetime ) -> None :
44+ async def receive_public_trades (
45+ url : str ,
46+ key : str ,
47+ * ,
48+ delivery_start : datetime | None = None ,
49+ start : datetime | None = None ,
50+ end : datetime | None = None ,
51+ ) -> None :
4552 """List trades and stream new public trades.
4653
47- If delivery_start is provided, list historical trades and stream new trades
48- for the 15 minute delivery period starting at delivery_start.
49- If no delivery_start is provided, stream new trades for any delivery period.
50-
5154 Args:
5255 url: URL of the trading API.
5356 key: API key.
5457 delivery_start: Start of the delivery period or None.
58+ start: First execution time to list trades from.
59+ end: Last execution time to list trades until.
5560 """
5661 client = Client (server_url = url , auth_key = key )
5762
@@ -65,16 +70,12 @@ async def list_public_trades(url: str, key: str, *, delivery_start: datetime) ->
6570 start = delivery_start ,
6671 duration = timedelta (minutes = 15 ),
6772 )
68- lst = client .list_public_trades (delivery_period = delivery_period )
69-
70- async for trade in lst :
71- print_public_trade (trade )
72-
73- if delivery_start <= datetime .now (timezone .utc ):
74- return
75-
76- stream = client .public_trades_stream (delivery_period = delivery_period ).new_receiver ()
77- async for trade in stream :
73+ stream = client .receive_public_trades (
74+ delivery_period = delivery_period ,
75+ start_time = start ,
76+ end_time = end ,
77+ )
78+ async for trade in stream .new_receiver ():
7879 print_public_trade (trade )
7980
8081
0 commit comments