Ejemplo n.º 1
0
    def process_configuration(self, configuration: Dict[str, str]) -> Dict[str, Union[str, int, Decimal, CandleSize]]:
        configuration_formatted = cast(
            Dict[str, Union[str, int, Decimal, CandleSize]],
            format_data_to_python_types(configuration, self.get_configuration_structure())
        )

        if 'candle_size' not in configuration_formatted:
            configuration_formatted['candle_size'] = DEFAULT_CANDLE_SIZE_CONFIGURATION

        configuration_formatted['candle_size'] = deserialize_candle_size(str(configuration_formatted['candle_size']))

        return configuration_formatted
Ejemplo n.º 2
0
        def candles(sid, data):
            logger.info('RECEIVED: {}, {}'.format(EVENT_GET_CANDLES, data))

            if 'candle_storage' not in data:
                return 'ERROR', {
                    'message': 'Missing "candle_storage" field in request.'
                }

            candle_storage = candle_storage_plugins.get_candle_storage(
                data['candle_storage'])
            result_candles = candle_storage.find_by(
                data['market'],
                deserialize_pair(data['pair']),
                deserialize_datetime_interval(data['interval']),
                candle_size=deserialize_candle_size(data['candle_size']))

            return 'OK', serialize_candles(result_candles)
Ejemplo n.º 3
0
        def on_subscribe(session_id, data):
            if data['event'] == EVENT_LAST_CANDLE_UPDATED:
                subscription = LastCandleSubscription(
                    session_id, data['storage'], data['market'],
                    deserialize_pair(data['pair']),
                    deserialize_candle_size(data['candle_size']))
            elif data['event'] == EVENT_NEW_ORDER:
                subscription = NewOrderSubscription(
                    session_id, data['storage'], data['market'],
                    deserialize_pair(data['pair']),
                    deserialize_datetime_interval(data['interval']))
            elif data['event'] == EVENT_NEW_STRATEGY_RUN:
                subscription = NewStrategyRunSubscription(session_id)
            else:
                raise ValueError('Event "{}" not supported'.format(
                    data['event']))

            self._subscription_storage.subscribe(subscription)
            return 'OK'