def __init__(self, exchange_name: str = 'binance', symbol_pair: str = 'BTC/USDT', timeframe: str = '1h', start_date: datetime = None, date_format: ProviderDateFormat = ProviderDateFormat.TIMESTAMP_MS, **kwargs): BaseDataProvider.__init__(self, date_format, **kwargs) self.exchange_name = exchange_name self.symbol_pair = symbol_pair self.timeframe = timeframe self.data_frame = None self.start_date = start_date get_exchange_fn = getattr(ccxt, self.exchange_name) try: self.exchange = get_exchange_fn() except AttributeError: raise ModuleNotFoundError( f'Exchange {self.exchange_name} not found. Please check if the exchange is supported.') if not self.exchange.has['fetchOHLCV']: raise AttributeError( f'Exchange {self.exchange_name} does not support fetchOHLCV') self.exchange.load_markets() self.exchange.enableRateLimit = True if self.symbol_pair not in self.exchange.symbols: raise ModuleNotFoundError( f'The requested symbol {self.symbol_pair} is not available from {self.exchange_name}')
def __init__(self, date_format: ProviderDateFormat, data_frame: pd.DataFrame = None, csv_data_path: str = None, skip_prepare_data: bool = True, **kwargs): BaseDataProvider.__init__(self, date_format, **kwargs) self.kwargs = kwargs if data_frame is not None: self.data_frame = data_frame elif csv_data_path is not None: if not os.path.isfile(csv_data_path): raise ValueError( 'Invalid "csv_data_path" argument passed to StaticDataProvider, file could not be found.' ) self.data_frame = pd.read_csv(csv_data_path, names=[ 'Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume' ]) self.data_frame = self.data_frame.drop(['Time'], axis=1) self.data_frame = self.data_frame.sort_values(['Date']) print(self.data_frame.head()) self.data_frame = add_indicators(self.data_frame.reset_index()) print(self.data_frame.head()) else: raise ValueError( 'StaticDataProvider requires either a "data_frame" or "csv_data_path argument".' ) if not skip_prepare_data: self.data_frame = self.prepare_data(self.data_frame)
def __init__(self, date_format: ProviderDateFormat = ProviderDateFormat.TIMESTAMP_MS, data_frame: pd.DataFrame = None, csv_data_path: str = None, skip_prepare_data: bool = False, variety: str = 'RB', **kwargs): BaseDataProvider.__init__(self, date_format, **kwargs) self.kwargs = kwargs if data_frame is not None: self.data_frame = data_frame elif variety is not None: self.data_frame = self.process_data(variety) elif csv_data_path is not None: if not os.path.isfile(csv_data_path): raise ValueError( 'Invalid "csv_data_path" argument passed to StaticDataProvider, file could not be found.') self.data_frame = pd.read_csv(csv_data_path) else: raise ValueError( 'StaticDataProvider requires either a "data_frame" or "csv_data_path argument".') if not skip_prepare_data: self.data_frame = self.prepare_data(self.data_frame)
def __init__( self, exchange_name: str = 'binance', symbol_pair: str = 'BTC/USDT', timeframe: str = '1m', start_date: datetime = None, date_format: ProviderDateFormat = ProviderDateFormat.TIMESTAMP_MS, data_frame: pd.DataFrame = None, **kwargs): BaseDataProvider.__init__(self, date_format, **kwargs) self.exchange_name = exchange_name self.symbol_pair = symbol_pair self.timeframe = timeframe self.data_frame = data_frame self.start_date = start_date self.kwargs = kwargs self.kline_stream = deque(maxlen=10) api_key = '' api_secret = '' self.client = Client(api_key, api_secret) self.bm = BinanceSocketManager(self.client) # start any sockets here, i.e a trade socket pr = lambda x: print("msg received") self.conn_key = self.bm.start_kline_socket( 'BTCUSDT', self.process_message, interval=KLINE_INTERVAL_1MINUTE) # then start the socket manager self.bm.start() get_exchange_fn = getattr(ccxt, self.exchange_name) try: self.exchange = get_exchange_fn() except AttributeError: raise ModuleNotFoundError( f'Exchange {self.exchange_name} not found. Please check if the exchange is supported.' ) if not self.exchange.has['fetchOHLCV']: raise AttributeError( f'Exchange {self.exchange_name} does not support fetchOHLCV')
def __init__(self, date_format: ProviderDateFormat, data_frame: pd.DataFrame = None, csv_data_path: str = None, skip_prepare_data: bool = False, **kwargs): BaseDataProvider.__init__(self, date_format, **kwargs) self.kwargs = kwargs if data_frame is not None: self.data_frame = data_frame elif csv_data_path is not None: self.data_frame = pd.read_csv(csv_data_path) else: raise ValueError( 'StaticDataProvider requires either a data_frame or csv_data_path argument.' ) if not skip_prepare_data: self.data_frame = self.prepare_data(self.data_frame)