def processEvent(self, event: Event, session: Session) -> bool: if event.getType() == Event.Type_SUBSCRIPTION_STATUS: print( f'Received an event of type SUBSCRIPTION_STATUS:\n{event.toStringPretty(2, 2)}' ) message = event.getMessageList()[0] if message.getType() == Message.Type_SUBSCRIPTION_STARTED: request = Request(Request.Operation_CREATE_ORDER, 'coinbase', 'BTC-USD') request.appendParam({ 'SIDE': 'BUY', 'LIMIT_PRICE': '20000', 'QUANTITY': '0.001', }) session.sendRequest(request) elif event.getType() == Event.Type_SUBSCRIPTION_DATA: print( f'Received an event of type SUBSCRIPTION_DATA:\n{event.toStringPretty(2, 2)}' ) return True # This line is needed.
from threading import Lock import time from ccapi import Logger, Session, Subscription class MyLogger(Logger): def __init__(self): super().__init__() self._lock = Lock() def logMessage(self, severity: str, threadId: str, timeISO: str, fileName: str, lineNumber: str, message: str) -> None: self._lock.acquire() print( f'{threadId}: [{timeISO}] {{{fileName}:{lineNumber}}} {severity}{" " * 8}{message}' ) self._lock.release() myLogger = MyLogger() Logger.logger = myLogger if __name__ == '__main__': session = Session() subscription = Subscription('coinbase', 'BTC-USD', 'MARKET_DEPTH') session.subscribe(subscription) time.sleep(10) session.stop() Logger.logger = None
super().__init__() def processEvent(self, event: Event, session: Session) -> bool: print(f'Received an event:\n{event.toStringPretty(2, 2)}') return True # This line is needed. if __name__ == '__main__': if not os.environ.get('BINANCE_US_API_KEY'): print('Please set environment variable BINANCE_US_API_KEY', file=sys.stderr) sys.exit(1) if not os.environ.get('BINANCE_US_API_SECRET'): print('Please set environment variable BINANCE_US_API_SECRET', file=sys.stderr) sys.exit(1) eventHandler = MyEventHandler() option = SessionOptions() config = SessionConfigs() session = Session(option, config, eventHandler) request = Request(Request.Operation_CREATE_ORDER, 'binance-us', 'BTCUSD') request.appendParam({ 'SIDE': 'BUY', 'QUANTITY': '0.0005', 'LIMIT_PRICE': '20000', }) session.sendRequest(request) time.sleep(10) session.stop() print('Bye')
import time from ccapi import EventHandler, SessionOptions, SessionConfigs, Session, Subscription, Event class MyEventHandler(EventHandler): def __init__(self): super().__init__() def processEvent(self, event: Event, session: Session) -> bool: if event.getType() == Event.Type_SUBSCRIPTION_DATA: for message in event.getMessageList(): print(f'Best bid and ask at {message.getTimeISO()} are:') for element in message.getElementList(): elementNameValueMap = element.getNameValueMap() for name, value in elementNameValueMap.items(): print(f' {name} = {value}') return True # This line is needed. if __name__ == '__main__': eventHandler = MyEventHandler() option = SessionOptions() config = SessionConfigs() session = Session(option, config, eventHandler) subscription = Subscription('coinbase', 'BTC-USD', 'MARKET_DEPTH') session.subscribe(subscription) time.sleep(10) session.stop() print('Bye')