Skip to content

Commit abcc307

Browse files
committed
[EN-1939] Custom handler example correction
1 parent a12bd07 commit abcc307

File tree

2 files changed

+65
-63
lines changed

2 files changed

+65
-63
lines changed

docs/custom_handler.rst

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -65,38 +65,39 @@ you should also provide time to start subscription from.
6565
self.volume_changes = DequeWithLock()
6666
self.counter = 0
6767
68-
def update(self, event):
69-
if not np.isnan(event.ask_volume): # AskVolume not nan
70-
self.counter += 1
71-
print(f'Symbol: {event.symbol}')
72-
if self.counter == 1:
73-
self.__prev_open = event.open
74-
self.__prev_high = event.high
75-
self.__prev_low = event.low
76-
self.__prev_close = event.close
77-
self.__prev_volume = event.ask_volume
78-
print('First event processed')
79-
print('-------------------')
80-
else:
81-
print(f'Open changed by: {event.open - self.__prev_open}')
82-
self.__prev_open = event.open
83-
print(f'High changed by: {event.high - self.__prev_high}')
84-
self.__prev_high = event.high
85-
print(f'Open changed by: {event.low - self.__prev_low}')
86-
self.__prev_low = event.low
87-
print(f'Close changed by: {event.close - self.__prev_close}')
88-
self.__prev_close = event.close
89-
# Volume logic
90-
vol_change = event.ask_volume - self.__prev_volume
91-
self.volume_changes.safe_append(vol_change)
92-
print(f'Volume changed by: {vol_change}, from {self.__prev_volume}, to {event.ask_volume}')
93-
self.__prev_volume = event.ask_volume
94-
print(f'Ask events prcessed: {self.counter}')
95-
print('-------------------')
96-
if self.counter % 10 == 0:
97-
print(f'Average volume change for 10 past ask events is: {sum(self.volume_changes) / len(self.volume_changes)}')
98-
self.volume_changes.clear()
68+
def update(self, events):
69+
for event in events:
70+
if not np.isnan(event.ask_volume): # AskVolume not nan
71+
self.counter += 1
72+
print(f'Symbol: {event.symbol}')
73+
if self.counter == 1:
74+
self.__prev_open = event.open
75+
self.__prev_high = event.high
76+
self.__prev_low = event.low
77+
self.__prev_close = event.close
78+
self.__prev_volume = event.ask_volume
79+
print('First event processed')
9980
print('-------------------')
81+
else:
82+
print(f'Open changed by: {event.open - self.__prev_open}')
83+
self.__prev_open = event.open
84+
print(f'High changed by: {event.high - self.__prev_high}')
85+
self.__prev_high = event.high
86+
print(f'Open changed by: {event.low - self.__prev_low}')
87+
self.__prev_low = event.low
88+
print(f'Close changed by: {event.close - self.__prev_close}')
89+
self.__prev_close = event.close
90+
# Volume logic
91+
vol_change = event.ask_volume - self.__prev_volume
92+
self.volume_changes.safe_append(vol_change)
93+
print(f'Volume changed by: {vol_change}, from {self.__prev_volume}, to {event.ask_volume}')
94+
self.__prev_volume = event.ask_volume
95+
print(f'Ask events prcessed: {self.counter}')
96+
print('-------------------')
97+
if self.counter % 10 == 0:
98+
print(f'Average volume change for 10 past ask events is: {sum(self.volume_changes) / len(self.volume_changes)}')
99+
self.volume_changes.clear()
100+
print('-------------------')
100101
101102
For Candle event type along with base symbol, you should specify an
102103
aggregation period. You can also set price type. More details:

examples/CustomHandlerExample.ipynb

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -85,38 +85,39 @@
8585
" self.volume_changes = DequeWithLock()\n",
8686
" self.counter = 0\n",
8787
" \n",
88-
" def update(self, event):\n",
89-
" if not np.isnan(event.ask_volume): # AskVolume not nan\n",
90-
" self.counter += 1\n",
91-
" print(f'Symbol: {event.symbol}')\n",
92-
" if self.counter == 1:\n",
93-
" self.__prev_open = event.open\n",
94-
" self.__prev_high = event.high\n",
95-
" self.__prev_low = event.low\n",
96-
" self.__prev_close = event.close\n",
97-
" self.__prev_volume = event.ask_volume\n",
98-
" print('First event processed')\n",
99-
" print('-------------------')\n",
100-
" else:\n",
101-
" print(f'Open changed by: {event.open - self.__prev_open}')\n",
102-
" self.__prev_open = event.open\n",
103-
" print(f'High changed by: {event.high - self.__prev_high}')\n",
104-
" self.__prev_high = event.high\n",
105-
" print(f'Open changed by: {event.low - self.__prev_low}')\n",
106-
" self.__prev_low = event.low\n",
107-
" print(f'Close changed by: {event.close - self.__prev_close}')\n",
108-
" self.__prev_close = event.close\n",
109-
" # Volume logic\n",
110-
" vol_change = event.ask_volume - self.__prev_volume\n",
111-
" self.volume_changes.safe_append(vol_change)\n",
112-
" print(f'Volume changed by: {vol_change}, from {self.__prev_volume}, to {event.ask_volume}')\n",
113-
" self.__prev_volume = event.ask_volume\n",
114-
" print(f'Ask events prcessed: {self.counter}')\n",
115-
" print('-------------------')\n",
116-
" if self.counter % 10 == 0:\n",
117-
" print(f'Average volume change for 10 past ask events is: {sum(self.volume_changes) / len(self.volume_changes)}')\n",
118-
" self.volume_changes.clear()\n",
119-
" print('-------------------')"
88+
" def update(self, events):\n",
89+
" for event in events:\n",
90+
" if not np.isnan(event.ask_volume): # AskVolume not nan\n",
91+
" self.counter += 1\n",
92+
" print(f'Symbol: {event.symbol}')\n",
93+
" if self.counter == 1:\n",
94+
" self.__prev_open = event.open\n",
95+
" self.__prev_high = event.high\n",
96+
" self.__prev_low = event.low\n",
97+
" self.__prev_close = event.close\n",
98+
" self.__prev_volume = event.ask_volume\n",
99+
" print('First event processed')\n",
100+
" print('-------------------')\n",
101+
" else:\n",
102+
" print(f'Open changed by: {event.open - self.__prev_open}')\n",
103+
" self.__prev_open = event.open\n",
104+
" print(f'High changed by: {event.high - self.__prev_high}')\n",
105+
" self.__prev_high = event.high\n",
106+
" print(f'Open changed by: {event.low - self.__prev_low}')\n",
107+
" self.__prev_low = event.low\n",
108+
" print(f'Close changed by: {event.close - self.__prev_close}')\n",
109+
" self.__prev_close = event.close\n",
110+
" # Volume logic\n",
111+
" vol_change = event.ask_volume - self.__prev_volume\n",
112+
" self.volume_changes.safe_append(vol_change)\n",
113+
" print(f'Volume changed by: {vol_change}, from {self.__prev_volume}, to {event.ask_volume}')\n",
114+
" self.__prev_volume = event.ask_volume\n",
115+
" print(f'Ask events prcessed: {self.counter}')\n",
116+
" print('-------------------')\n",
117+
" if self.counter % 10 == 0:\n",
118+
" print(f'Average volume change for 10 past ask events is: {sum(self.volume_changes) / len(self.volume_changes)}')\n",
119+
" self.volume_changes.clear()\n",
120+
" print('-------------------')"
120121
]
121122
},
122123
{

0 commit comments

Comments
 (0)