From 53ba720cd1c53d792e65387dd3a24149f07981a9 Mon Sep 17 00:00:00 2001 From: Afiz Momin Date: Sat, 2 Mar 2024 15:53:47 -0800 Subject: [PATCH] fix: Coinbase missing API key and secret when starting scanner --- README.md | 8 ++++---- scanner.py | 32 +++++++++++++++++++++++--------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index fae7d3b4..90fb48f8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Python Crypto Bot v8.2.3 (pycryptobot) +# Python Crypto Bot v8.2.4 (pycryptobot) [![Docker](https://github.com/whittlem/pycryptobot/actions/workflows/container.yml/badge.svg)](https://github.com/whittlem/pycryptobot/actions/workflows/container.yml/badge.svg) [![Tests](https://github.com/whittlem/pycryptobot/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/whittlem/pycryptobot/actions/workflows/unit-tests.yml/badge.svg) @@ -38,10 +38,10 @@ Follow my Medium publication for PyCryptoBot articles For information about installing, using, and getting the most out of the bot... please refer to the articles on Medium! Install and Setup of PyCryptoBot 7 -https://trading-data-analysis.pro/install-and-setup-of-pycryptobot-7-f1b2c832e795 + PyCryptoBot 7 Live Test Results -https://trading-data-analysis.pro/pycryptobot-7-live-test-results-b56316e0995c + PyCryptoBot 7 Configuration -https://trading-data-analysis.pro/pycryptobot-7-configuration-e314931f94 + diff --git a/scanner.py b/scanner.py index 7109f5f5..a2970e7b 100644 --- a/scanner.py +++ b/scanner.py @@ -8,6 +8,7 @@ from models.Trading import TechnicalAnalysis from models.exchange.binance import PublicAPI as BPublicAPI from models.exchange.coinbase import AuthAPI as CBAuthAPI +from models.config.coinbase_parser import parser as coinbaseParser from models.exchange.coinbase_pro import PublicAPI as CPublicAPI from models.exchange.kucoin import PublicAPI as KPublicAPI from models.exchange.Granularity import Granularity @@ -16,13 +17,13 @@ GRANULARITY = Granularity(Granularity.ONE_HOUR) try: - with open("scanner.json", encoding='utf8') as json_file: + with open("scanner.json", encoding="utf8") as json_file: config = json.load(json_file) except IOError as err: print(err) try: - with open("config.json", encoding='utf8') as json_file: + with open("config.json", encoding="utf8") as json_file: bot_config = json.load(json_file) except IOError as err: print(err) @@ -30,11 +31,18 @@ for exchange in config: ex = Exchange(exchange) app = PyCryptoBot(exchange=ex) + for quote in config[ex.value]["quote_currency"]: if ex == Exchange.BINANCE: api = BPublicAPI(bot_config[ex.value]["api_url"]) elif ex == Exchange.COINBASE: - api = CBAuthAPI(bot_config[ex.value]["api_key"], bot_config[ex.value]["api_secret"], bot_config[ex.value]["api_url"]) + # Read config from key file + coinbaseParser(app, bot_config[ex.value]) + api = CBAuthAPI( + bot_config[ex.value]["api_key"], + bot_config[ex.value]["api_secret"], + bot_config[ex.value]["api_url"], + ) elif ex == Exchange.COINBASEPRO: api = CPublicAPI() elif ex == Exchange.KUCOIN: @@ -85,10 +93,14 @@ ROW = 1 for market, data in df_markets.T.items(): - print(f"[{ROW}/{len(df_markets)}] {market} {round((ROW/len(df_markets))*100, 2)}%") + print( + f"[{ROW}/{len(df_markets)}] {market} {round((ROW/len(df_markets))*100, 2)}%" + ) try: if int(data["volume"]) > 0: - ta = TechnicalAnalysis(api.get_historical_data(market, GRANULARITY, None), app=app) + ta = TechnicalAnalysis( + api.get_historical_data(market, GRANULARITY, None), app=app + ) ta.add_ema(12) ta.add_ema(26) ta.add_atr(72) @@ -97,13 +109,15 @@ df_1h_last = df_1h.tail(1) # volatility over the last 72 hours - df_markets.at[market, "atr72"] = float(df_1h_last[["atr72"]].values[0][0]) + df_markets.at[market, "atr72"] = float( + df_1h_last[["atr72"]].values[0][0] + ) df_markets["atr72_pcnt"] = ( df_markets["atr72"] / df_markets["price"] * 100 ).round(2) - df_markets.at[market, "buy_next"] = df_1h_last[df_1h_last["market"] == market][ - "ema12ltema26" - ].values[0] + df_markets.at[market, "buy_next"] = df_1h_last[ + df_1h_last["market"] == market + ]["ema12ltema26"].values[0] except Exception as err: print(err)