Skip to content

Commit 2a9f892

Browse files
committed
Add project files
1 parent 90d42d3 commit 2a9f892

File tree

5 files changed

+672
-0
lines changed

5 files changed

+672
-0
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,6 @@ dmypy.json
127127

128128
# Pyre type checker
129129
.pyre/
130+
131+
# KMA:
132+
.DS_Store

Procfile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
main: python main.py

main.py

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import os
2+
from datetime import datetime
3+
4+
from huobi.client.trade import TradeClient
5+
from huobi.constant import *
6+
from huobi.utils import *
7+
8+
9+
access_key = os.environ.get('ACCESS_KEY')
10+
secret_key = os.environ.get('SECRET_KEY')
11+
assert access_key and secret_key, 'ACCESS_KEY or SECRET_KEY env variables not found'
12+
trade_client = TradeClient(api_key=access_key, secret_key=secret_key, init_log=True)
13+
14+
def build_notification_text(order_obj) -> str:
15+
"""
16+
Build notification text
17+
"""
18+
19+
dt_str_format = '%m/%d/%Y, %H:%M:%S'
20+
21+
text = f'{order_obj.symbol.upper()}\n' + \
22+
f'Order Type: {order_obj.type}\n' + \
23+
f'Order State: {order_obj.state}\n' + \
24+
f'Price: {order_obj.price}\n' + \
25+
f'Amount: {order_obj.amount}\n' + \
26+
f'Filled Fees: {order_obj.filled_fees}\n' + \
27+
f'Created at: {datetime.fromtimestamp(order_obj.created_at / 1e3).strftime(dt_str_format)}'
28+
29+
if order_obj.canceled_at:
30+
dt = datetime.fromtimestamp(order_obj.canceled_at / 1e3)
31+
text += f'\nCanceled at: {dt.strftime(dt_str_format)}'
32+
33+
if order_obj.finished_at:
34+
dt = datetime.fromtimestamp(order_obj.finished_at / 1e3)
35+
text += f'\nFinished at: {dt.strftime(dt_str_format)}'
36+
37+
return text
38+
39+
def callback(upd_event: 'OrderUpdateEvent'):
40+
"""
41+
Order update callback
42+
"""
43+
44+
print('---- order update : ----')
45+
upd_event.print_object()
46+
47+
order_id = upd_event.data.orderId
48+
order_obj = trade_client.get_order(order_id=order_id)
49+
LogInfo.output(f'---- get order by order id : {order_id} ----')
50+
order_obj.print_object()
51+
print()
52+
53+
tg_message = build_notification_text(order_obj)
54+
55+
print(f'TG: {tg_message}')
56+
57+
def subscribe():
58+
"""
59+
Subscribe to spot order events
60+
"""
61+
62+
from huobi.client.generic import GenericClient
63+
generic_client = GenericClient()
64+
symbol_objs = generic_client.get_exchange_symbols()
65+
symbols = ','.join([list_obj.symbol for list_obj in symbol_objs])
66+
print(symbols)
67+
trade_client.sub_order_update(symbols=symbols, callback=callback)
68+
69+
if __name__ == "__main__":
70+
subscribe()

0 commit comments

Comments
 (0)