Skip to content

Commit b713b7a

Browse files
futures api
1 parent 7923999 commit b713b7a

File tree

5 files changed

+875
-56
lines changed

5 files changed

+875
-56
lines changed

CHANGELOG.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,20 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this p
2020
- `manager.api.spot.get_ui_klines()`
2121
- `manager.api.spot.get_recent_trades()`
2222
- `manager.api.spot.get_unfilled_order_count()`
23-
- Support for `Websocket API Futures`:
24-
- `manager.api.futures.get_account_status()`
23+
- Full Support for `Websocket API Futures`:
2524
- `manager.api.futures.cancel_order()`
2625
- `manager.api.futures.create_order()`
27-
- `manager.api.futures.get_account_status()` (v1+v2)
2826
- `manager.api.futures.get_account_balance()` (v1+v2)
27+
- `manager.api.futures.get_account_position()` (v1+v2)
28+
- `manager.api.futures.get_account_status()` (v1+v2)
29+
- `manager.api.futures.get_listen_key()`
2930
- `manager.api.futures.get_order()`
3031
- `manager.api.futures.get_order_book()`
32+
- `manager.api.futures.get_ticker_order_book()`
33+
- `manager.api.futures.get_ticker_price()`
34+
- `manager.api.futures.get_server_time()`
3135
- `manager.api.futures.modify_order()`
32-
36+
- `manager.api.futures.ping()`
3337
### Changed
3438
- ujson has been replaced by orjson
3539
- Websocket API functions are no longer available under `manager.api` but under `manager.api.spot`. In addition, there

binance_websocket_api_futures.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,23 @@ async def handle_socket_message(stream_id=None):
2929
ubwa.api.futures.get_server_time(stream_id=api_stream)
3030
orig_client_order_id = ubwa.api.futures.create_order(stream_id=api_stream, price=1.0, order_type="LIMIT",
3131
quantity=15.0, side="SELL", symbol=market)
32-
ubwa.api.futures.ping(stream_id=api_stream)
33-
orderbook = ubwa.api.futures.get_order_book(stream_id=api_stream, symbol=market, limit=2, return_response=True)
32+
#ubwa.api.futures.ping(stream_id=api_stream)
33+
order_book = ubwa.api.futures.get_order_book(stream_id=api_stream, symbol=market, limit=2, return_response=True)
34+
print(f"Orderbook, lastUpdateId={order_book['result']['lastUpdateId']}: {order_book['result']['asks']}, "
35+
f"{order_book['result']['bids']}\r\n")
3436
ubwa.api.futures.cancel_order(stream_id=api_stream, symbol=market, orig_client_order_id=orig_client_order_id)
3537
ubwa.api.futures.get_order(stream_id=api_stream, symbol=market, orig_client_order_id=orig_client_order_id)
3638

3739
print(f"Finished! Waiting for responses:")
3840
await asyncio.sleep(5)
39-
4041
print(f"Stopping!")
4142

43+
def process_stream_signal(signal_type=None, stream_id=None, data_record=None, error_msg=None):
44+
# More info about `stream_signals`:
45+
# https://github.com/LUCIT-Systems-and-Development/unicorn-binance-websocket-api/wiki/%60stream_signals%60
46+
print(f"Received stream_signal for stream '{ubwa_manager.get_stream_label(stream_id=stream_id)}': "
47+
f"{signal_type} - {stream_id} - {data_record} - {error_msg}")
48+
4249
if __name__ == "__main__":
4350
logging.basicConfig(level=logging.DEBUG,
4451
filename=os.path.basename(__file__) + '.log',
@@ -48,7 +55,9 @@ async def handle_socket_message(stream_id=None):
4855

4956
# To use this library you need a valid UNICORN Binance Suite License:
5057
# https://shop.lucit.services
51-
with BinanceWebSocketApiManager(exchange='binance.com-futures') as ubwa_manager:
58+
with BinanceWebSocketApiManager(exchange='binance.com-futures',
59+
output_default="dict",
60+
process_stream_signals=process_stream_signal) as ubwa_manager:
5261
try:
5362
asyncio.run(binance_api(ubwa_manager))
5463
except KeyboardInterrupt:

examples/binance_websocket_api_spot/binance_websocket_api_spot.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,14 @@ async def handle_socket_message(stream_id=None):
8181

8282
recent_trades = ubwa.api.spot.get_recent_trades(stream_id=api_stream, symbol=market, return_response=True)
8383
print(f"recent_trades: {recent_trades['result'][:5]}\r\n")
84-
8584
print(f"Stopping!")
8685

86+
def process_stream_signal(signal_type=None, stream_id=None, data_record=None, error_msg=None):
87+
# More info about `stream_signals`:
88+
# https://github.com/LUCIT-Systems-and-Development/unicorn-binance-websocket-api/wiki/%60stream_signals%60
89+
print(f"Received stream_signal for stream '{ubwa_manager.get_stream_label(stream_id=stream_id)}': "
90+
f"{signal_type} - {stream_id} - {data_record} - {error_msg}")
91+
8792
if __name__ == "__main__":
8893
logging.basicConfig(level=logging.DEBUG,
8994
filename=os.path.basename(__file__) + '.log',
@@ -95,7 +100,9 @@ async def handle_socket_message(stream_id=None):
95100

96101
# To use this library you need a valid UNICORN Binance Suite License:
97102
# https://shop.lucit.services
98-
with BinanceWebSocketApiManager(exchange='binance.com', output_default="dict") as ubwa_manager:
103+
with BinanceWebSocketApiManager(exchange='binance.com',
104+
output_default="dict",
105+
process_stream_signals=process_stream_signal) as ubwa_manager:
99106
try:
100107
asyncio.run(binance_api(ubwa_manager))
101108
except KeyboardInterrupt:

0 commit comments

Comments
 (0)