コード例 #1
0
 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.
コード例 #2
0
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
コード例 #3
0
ファイル: main.py プロジェクト: crypto-chassis/ccapi
        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')
コード例 #4
0
ファイル: main.py プロジェクト: crypto-chassis/ccapi
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')