PROBLIEMA:
Corro unos 30 minutos después, el problema del time out, es la cuestión del intercambio, o el problema del ccxt, cómo solucionarlo.
CÓDIGO:
def get_close_prices(self):
close_prices = []
bar_data = np.array(self.exchange.fetch_ohlcv(symbol, '1m'))
for element in bar_data:
close_prices.append(float(element[4]))
return close_prices
if __name__ == '__main__':
while true:
close_prices = self.get_close_prices()
time.sleep(1 * 60)
ERROR:
Archivo "E: /work/test/test.py", línea 44, en handle_bar
close_prices = np.array (self.get_close_prices ())
Archivo "E: /work/test/test.py", línea 24, en get_close_prices
bar_data = np.array (self.exchange.fetch_ohlcv (self.symbol, '1m'))
Archivo "E: \ sorfware \ anaconda3.5 \ lib \ site-packages \ ccxt \ okcoinusd.py", línea 348, en fetch_ohlcv
respuesta = getattr (self, método) (self.extend (solicitud, parámetros))
Archivo "E: \ sorfware \ anaconda3.5 \ lib \ site-packages \ ccxt \ base \ exchange.py", línea 298, en solicitud
return self.fetch2 (ruta, api, método, parámetros, encabezados, cuerpo)
Archivo "E: \ sorfware \ anaconda3.5 \ lib \ site-packages \ ccxt \ base \ exchange.py", línea 295, en fetch2
return self.fetch (solicitud ['url'], solicitud ['método'], solicitud ['encabezados'], solicitud ['cuerpo'])
Archivo "E: \ sorfware \ anaconda3.5 \ lib \ site-packages \ ccxt \ base \ exchange.py", línea 359, en fetch
self.raise_error (RequestTimeout, método, url, e)
Archivo "E: \ sorfware \ anaconda3.5 \ lib \ site-packages \ ccxt \ base \ exchange.py", línea 280, en raise_error
levantar tipo_excepción (salida)
ccxt.base.errors.RequestTimeout: okex GET https://www.okex.com/api/v1/kline.do?symbol=bch_btc&type=1min&since=1521547087487 HTTPSConnectionPool (host = 'www.okex.com', puerto = 443 ): Tiempo de lectura agotado. (tiempo de espera de lectura = 10)
Corro unos 30 minutos después, el problema del tiempo de espera, es la cuestión del intercambio, o el problema del ccxt
Es un problema del intercambio, cualquier intercambio responderá con RequestTimeout ocasionalmente, solo necesita manejarlo correctamente.
Cómo resolverlo.
Solo detecta las excepciones y vuelve a intentarlo más tarde.
Espero eso ayude.
Muchas gracias, lo resolví de acuerdo con sus instrucciones, es decir, para capturar la excepción.
@nashse gracias por informarnos!