Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sreenivasdoosa
GitHub Repository: sreenivasdoosa/sdoosa-algo-trade-python
Path: blob/master/src/ticker/BaseTicker.py
296 views
1
import logging
2
3
from core.Controller import Controller
4
5
class BaseTicker:
6
def __init__(self, broker):
7
self.broker = broker
8
self.brokerLogin = Controller.getBrokerLogin()
9
self.ticker = None
10
self.tickListeners = []
11
12
def startTicker(self):
13
pass
14
15
def stopTicker(self):
16
pass
17
18
def registerListener(self, listener):
19
# All registered tick listeners will be notified on new ticks
20
self.tickListeners.append(listener)
21
22
def registerSymbols(self, symbols):
23
pass
24
25
def unregisterSymbols(self, symbols):
26
pass
27
28
def onNewTicks(self, ticks):
29
# logging.info('New ticks received %s', ticks)
30
for tick in ticks:
31
for listener in self.tickListeners:
32
try:
33
listener(tick)
34
except Exception as e:
35
logging.error('BaseTicker: Exception from listener callback function. Error => %s', str(e))
36
37
def onConnect(self):
38
logging.info('Ticker connection successful.')
39
40
def onDisconnect(self, code, reason):
41
logging.error('Ticker got disconnected. code = %d, reason = %s', code, reason)
42
43
def onError(self, code, reason):
44
logging.error('Ticker errored out. code = %d, reason = %s', code, reason)
45
46
def onReconnect(self, attemptsCount):
47
logging.warn('Ticker reconnecting.. attemptsCount = %d', attemptsCount)
48
49
def onMaxReconnectsAttempt(self):
50
logging.error('Ticker max auto reconnects attempted and giving up..')
51
52
def onOrderUpdate(self, data):
53
#logging.info('Ticker: order update %s', data)
54
pass
55
56