Skip to content

Commit 190ec83

Browse files
author
Aleksandr Salynskii
authored
Merge pull request #18 from dxFeed/EN-1454-extend-listeners
En 1454 extend listeners
2 parents 3c513f4 + bbf5f56 commit 190ec83

File tree

7 files changed

+646
-191
lines changed

7 files changed

+646
-191
lines changed

docs/_static/custom.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
table {
1818
display: block;
19-
overflow-x: scroll;
19+
overflow-x: auto;
2020
}
2121

2222
.highlight-text > .highlight > pre {

dxfeed/core/listeners/listener.pyx

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ cdef class FuncWrapper:
1313
return out
1414

1515

16-
TRADE_COLUMNS = ['Symbol', 'Price', 'ExchangeCode', 'Size', 'Tick', 'Change', 'DayVolume', 'Time', 'IsETH']
16+
TRADE_COLUMNS = ['Symbol', 'Sequence', 'Price', 'ExchangeCode', 'Size', 'Tick', 'Change', 'DayVolume',
17+
'DayTurnover', 'Direction', 'Time', 'TimeNanos', 'RawFlags', 'IsETH', 'Scope']
1718
cdef void trade_default_listener(int event_type,
1819
dxf_const_string_t symbol_name,
1920
const dxf_event_data_t*data,
@@ -25,17 +26,23 @@ cdef void trade_default_listener(int event_type,
2526
for i in range(data_count):
2627

2728
py_data.cython_internal_update_method([unicode_from_dxf_const_string_t(symbol_name),
29+
trades[i].sequence,
2830
trades[i].price,
2931
unicode_from_dxf_const_string_t(&trades[i].exchange_code),
3032
trades[i].size,
3133
trades[i].tick,
3234
trades[i].change,
3335
trades[i].day_volume,
36+
trades[i].day_turnover,
37+
trades[i].direction,
3438
trades[i].time,
35-
trades[i].is_eth])
39+
trades[i].time_nanos,
40+
trades[i].raw_flags,
41+
trades[i].is_eth,
42+
trades[i].scope])
3643

37-
QUOTE_COLUMNS = ['Symbol', 'BidTime', 'BidExchangeCode', 'BidPrice', 'BidSize', 'AskTime', 'AskExchangeCode',
38-
'AskPrice', 'AskSize', 'Scope']
44+
QUOTE_COLUMNS = ['Symbol', 'Sequence', 'Time', 'TimeNanos', 'BidTime', 'BidExchangeCode', 'BidPrice', 'BidSize',
45+
'AskTime', 'AskExchangeCode', 'AskPrice', 'AskSize', 'Scope']
3946
cdef void quote_default_listener(int event_type,
4047
dxf_const_string_t symbol_name,
4148
const dxf_event_data_t*data,
@@ -47,6 +54,9 @@ cdef void quote_default_listener(int event_type,
4754

4855
for i in range(data_count):
4956
py_data.cython_internal_update_method([unicode_from_dxf_const_string_t(symbol_name),
57+
quotes[i].sequence,
58+
quotes[i].time,
59+
quotes[i].time_nanos,
5060
quotes[i].bid_time,
5161
unicode_from_dxf_const_string_t(&quotes[i].bid_exchange_code),
5262
quotes[i].bid_price,
@@ -57,8 +67,9 @@ cdef void quote_default_listener(int event_type,
5767
quotes[i].ask_size,
5868
<int> quotes[i].scope])
5969

60-
SUMMARY_COLUMNS = ['Symbol', 'DayId', 'DayHighPrice', 'DayLowPrice', 'DayClosePrice', 'PrevDayId', 'PrevDayClosePrice',
61-
'PrevDayVolume', 'OpenInterest', 'ExchangeCode']
70+
SUMMARY_COLUMNS = ['Symbol', 'DayId', 'DayOpenPrice', 'DayHighPrice', 'DayLowPrice', 'DayClosePrice', 'PrevDayId',
71+
'PrevDayClosePrice', 'PrevDayVolume', 'OpenInterest', 'RawFlags', 'ExchangeCode',
72+
'DayClosePriceType', 'PrevDayClosePriceType', 'Scope']
6273
cdef void summary_default_listener(int event_type, dxf_const_string_t symbol_name,
6374
const dxf_event_data_t*data, int data_count, void*user_data) nogil:
6475
cdef dxf_summary_t*summary = <dxf_summary_t*> data
@@ -68,17 +79,23 @@ cdef void summary_default_listener(int event_type, dxf_const_string_t symbol_nam
6879
for i in range(data_count):
6980
py_data.cython_internal_update_method([unicode_from_dxf_const_string_t(symbol_name),
7081
summary[i].day_id,
82+
summary[i].day_open_price,
7183
summary[i].day_high_price,
7284
summary[i].day_low_price,
7385
summary[i].day_close_price,
7486
summary[i].prev_day_id,
7587
summary[i].prev_day_close_price,
7688
summary[i].prev_day_volume,
7789
summary[i].open_interest,
78-
unicode_from_dxf_const_string_t(&summary[i].exchange_code)])
90+
summary[i].raw_flags,
91+
unicode_from_dxf_const_string_t(&summary[i].exchange_code),
92+
summary[i].day_close_price_type,
93+
summary[i].prev_day_close_price_type,
94+
summary[i].scope])
7995

8096
PROFILE_COLUMNS = ['Symbol', 'Beta', 'EPS', 'DivFreq', 'ExdDivAmount', 'ExdDivDate', '52HighPrice', '52LowPrice',
81-
'Shares', 'Description', 'RawFlags', 'StatusReason']
97+
'Shares', 'FreeFloat', 'HighLimitPrice', 'LowLimitPrice', 'HaltStartTime', 'HaltEndTime',
98+
'Description', 'RawFlags', 'StatusReason', 'TradingStatus', 'ShortSaleRestriction']
8299
cdef void profile_default_listener(int event_type,
83100
dxf_const_string_t symbol_name,
84101
const dxf_event_data_t*data,
@@ -97,13 +114,20 @@ cdef void profile_default_listener(int event_type,
97114
p[i]._52_high_price,
98115
p[i]._52_low_price,
99116
p[i].shares,
117+
p[i].free_float,
118+
p[i].high_limit_price,
119+
p[i].low_limit_price,
120+
p[i].halt_start_time,
121+
p[i].halt_end_time,
100122
unicode_from_dxf_const_string_t(p[i].description),
101123
p[i].raw_flags,
102-
unicode_from_dxf_const_string_t(p[i].status_reason)])
124+
unicode_from_dxf_const_string_t(p[i].status_reason),
125+
p[i].trading_status,
126+
p[i].ssr])
103127

104128
TIME_AND_SALE_COLUMNS = ['Symbol', 'EventFlags', 'Index', 'Time', 'ExchangeCode', 'Price', 'Size', 'BidPrice',
105129
'AskPrice', 'ExchangeSaleConditions', 'RawFlags', 'Buyer', 'Seller', 'Side', 'Type',
106-
'IsValidTick', 'IsEthTrade', 'TradeThroughExempt', 'IsSpreadLeg']
130+
'IsValidTick', 'IsEthTrade', 'TradeThroughExempt', 'IsSpreadLeg', 'Scope']
107131
cdef void time_and_sale_default_listener(int event_type,
108132
dxf_const_string_t symbol_name,
109133
const dxf_event_data_t*data,
@@ -131,10 +155,11 @@ cdef void time_and_sale_default_listener(int event_type,
131155
tns[i].is_valid_tick,
132156
tns[i].is_eth_trade,
133157
tns[i].trade_through_exempt,
134-
tns[i].is_spread_leg])
158+
tns[i].is_spread_leg,
159+
tns[i].scope])
135160

136-
CANDLE_COLUMNS = ['Symbol', 'Index', 'Time', 'Sequence', 'Count', 'Open', 'High', 'Low', 'Close', 'Volume', 'VWap',
137-
'BidVolume', 'AskVolume', 'OpenInterest', 'ImpVolatility']
161+
CANDLE_COLUMNS = ['Symbol', 'EventFlags', 'Index', 'Time', 'Sequence', 'Count', 'Open', 'High', 'Low', 'Close',
162+
'Volume', 'VWap', 'BidVolume', 'AskVolume', 'OpenInterest', 'ImpVolatility']
138163
cdef void candle_default_listener(int event_type,
139164
dxf_const_string_t symbol_name,
140165
const dxf_event_data_t*data,
@@ -145,6 +170,7 @@ cdef void candle_default_listener(int event_type,
145170
py_data = <EventHandler> user_data
146171
for i in range(data_count):
147172
py_data.cython_internal_update_method([unicode_from_dxf_const_string_t(symbol_name),
173+
candle[i].event_flags,
148174
candle[i].index,
149175
candle[i].time,
150176
candle[i].sequence,
@@ -160,8 +186,8 @@ cdef void candle_default_listener(int event_type,
160186
candle[i].open_interest,
161187
candle[i].imp_volatility])
162188

163-
ORDER_COLUMNS = ['Symbol', 'EventFlags', 'Index', 'Time', 'Nanos', 'Sequence', 'Price', 'Size', 'Count', 'Scope',
164-
'Side', 'ExchangeCode', 'MarketMaker', 'SpreadSymbol']
189+
ORDER_COLUMNS = ['Symbol', 'EventFlags', 'Index', 'Time', 'TimeNanos', 'Sequence', 'Price', 'Size', 'Count', 'Scope',
190+
'Side', 'ExchangeCode', 'Source', 'MarketMaker', 'SpreadSymbol']
165191
cdef void order_default_listener(int event_type,
166192
dxf_const_string_t symbol_name,
167193
const dxf_event_data_t*data,
@@ -183,6 +209,8 @@ cdef void order_default_listener(int event_type,
183209
order[i].scope,
184210
order[i].side,
185211
unicode_from_dxf_const_string_t(&order[i].exchange_code),
212+
unicode_from_dxf_const_string_t(
213+
&order[i].source[DXF_RECORD_SUFFIX_SIZE]),
186214
unicode_from_dxf_const_string_t(order[i].market_maker),
187215
unicode_from_dxf_const_string_t(order[i].spread_symbol)])
188216

@@ -244,7 +272,7 @@ cdef void underlying_default_listener(int event_type,
244272
underlying[i].back_volatility,
245273
underlying[i].put_call_ratio])
246274

247-
SERIES_COLUMNS = ['Symbol', 'EventFlags', 'Index', 'Time', 'Sequence', 'Sequence', 'Expiration', 'Volatility',
275+
SERIES_COLUMNS = ['Symbol', 'EventFlags', 'Index', 'Time', 'Sequence', 'Expiration', 'Volatility',
248276
'PutCallRatio', 'ForwardPrice', 'Dividend', 'Interest']
249277
cdef void series_default_listener(int event_type,
250278
dxf_const_string_t symbol_name,
@@ -260,7 +288,6 @@ cdef void series_default_listener(int event_type,
260288
series[i].index,
261289
series[i].time,
262290
series[i].sequence,
263-
series[i].sequence,
264291
series[i].expiration,
265292
series[i].volatility,
266293
series[i].put_call_ratio,
@@ -280,4 +307,4 @@ cdef void configuration_default_listener(int event_type,
280307
for i in range(data_count):
281308
py_data.cython_internal_update_method([unicode_from_dxf_const_string_t(symbol_name),
282309
config[i].version,
283-
unicode_from_dxf_const_string_t(config[i].object)])
310+
unicode_from_dxf_const_string_t(config[i].object)])

0 commit comments

Comments
 (0)