Skip to content

Commit 5317f2c

Browse files
author
Shlomi Kushchi
authored
Merge pull request #311 from alpacahq/extend_websocket_example
Extend the websocket usage example
2 parents 8944547 + 88048cb commit 5317f2c

File tree

1 file changed

+68
-18
lines changed

1 file changed

+68
-18
lines changed

examples/websocket_example.py

Lines changed: 68 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,79 @@
2323
async def on_status(conn, channel, data):
2424
print('polygon status update', data)
2525

26-
@conn.on(r'^A*$')
27-
async def on_second_bars(conn, channel, bar):
28-
print('bars', bar)
26+
sec_agg_count = 0 # don't print too much quotes
27+
@conn.on(r'A.*')
28+
async def on_agg(conn, channel, bars):
29+
global sec_agg_count
30+
if sec_agg_count % 1000 == 0:
31+
print('sec bars', bars)
32+
sec_agg_count += 1
33+
34+
quote_count = 0 # don't print too much quotes
35+
@conn.on(r'Q.*')
36+
async def on_quotes(conn, channel, quote):
37+
global quote_count
38+
if quote_count % 1000 == 0:
39+
print('quote', quote)
40+
quote_count += 1
2941

30-
@conn.on(r'^AM\..+$')
31-
async def on_minute_bars(conn, channel, bar):
32-
print('bars', bar)
42+
agg_count = 0 # don't print too much quotes
43+
@conn.on(r'AM.*')
44+
async def on_agg(conn, channel, bars):
45+
global agg_count
46+
if agg_count % 1000 == 0:
47+
print('bars', bars)
48+
agg_count += 1
3349

34-
quote_count = 0 # don't print too much quotes
35-
@conn.on(r'Q\..+', ['AAPL'])
36-
async def on_quotes(conn, channel, quote):
37-
global quote_count
38-
if quote_count % 10 == 0:
39-
print('bars', quote)
40-
quote_count += 1
50+
trade_count = 0 # don't print too much quotes
51+
@conn.on(r'T.*')
52+
async def on_trades(conn, channel, trade):
53+
global trade_count
54+
if trade_count % 1000 == 0:
55+
print('trade', trade)
56+
trade_count += 1
57+
58+
else:
59+
@conn.on(r'^AM\..+$')
60+
async def on_minute_bars(conn, channel, bar):
61+
print('bars', bar)
4162

63+
quote_count = 0 # don't print too much quotes
64+
@conn.on(r'Q\..+')
65+
async def on_quotes(conn, channel, quote):
66+
global quote_count
67+
if quote_count % 10 == 0:
68+
print('quote', quote)
69+
quote_count += 1
4270

43-
@conn.on(r'T\..+', ['AAPL'])
44-
async def on_trades(conn, channel, trade):
45-
print('trade', trade)
71+
@conn.on(r'T\..+')
72+
async def on_trades(conn, channel, trade):
73+
print('trade', trade)
4674

4775

4876
if USE_POLYGON:
49-
conn.run(['trade_updates', 'AM.AAPL', 'Q.AA', 'T.*'])
77+
# you could use either one of these:
78+
# conn.run(['trade_updates', 'AM.AAPL', 'Q.AA', 'T.*'])
79+
# conn.run(['trade_updates', 'AM.AAPL', 'Q.AA', 'T.*'])
80+
# conn.run(['trade_updates', 'AM.*', 'A.*', 'Q.*', 'T.*'])
81+
# conn.run(['trade_updates', 'Q.*', 'T.*'])
82+
# conn.run(['trade_updates', 'AM.*', 'A.*'])
83+
conn.run(['trade_updates', 'AM.*', 'A.*', 'Q.*', 'T.*'])
84+
# conn.run(['Q.AAPL'])
5085
else:
51-
conn.run(['trade_updates', 'alpacadatav1/AM.AAPL'])
86+
# these won't work:
87+
# conn.run(['T.*'])
88+
# conn.run(['Q.*'])
89+
# conn.run(['alpacadatav1/Q.*'])
90+
# conn.run(['T.TSLA'])
91+
# conn.run(['Q.TSLA'])
92+
93+
# these are fine:
94+
# conn.run(['AM.*'])
95+
# conn.run(['alpacadatav1/AM.*'])
96+
97+
# conn.run(['alpacadatav1/AM.TSLA'])
98+
# conn.run(['alpacadatav1/Q.GOOG'])
99+
# conn.run(['trade_updates', 'alpacadatav1/Q.GOOG', 'alpacadatav1/AM.TSLA'])
100+
conn.run(['alpacadatav1/T.TSLA'])
101+

0 commit comments

Comments
 (0)