{"id":43030847,"url":"https://github.com/cyberjunky/3commas-cyber-bots","last_synced_at":"2026-01-31T07:35:49.048Z","repository":{"id":37527971,"uuid":"416436031","full_name":"cyberjunky/3commas-cyber-bots","owner":"cyberjunky","description":"3Commas bot helpers, AltRank, GalaxyScore, Watchlists, Auto-Compound, TrailingStopLoss, TakeProfitIncrement","archived":false,"fork":false,"pushed_at":"2025-02-11T13:31:55.000Z","size":2880,"stargazers_count":213,"open_issues_count":7,"forks_count":68,"subscribers_count":24,"default_branch":"main","last_synced_at":"2025-02-11T14:33:13.211Z","etag":null,"topics":["3commas","bitcoin","bot","compounding","cryptocurrency","dca","lunarcrush","stoploss-takeprofit","trading"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyberjunky.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-10-12T17:34:41.000Z","updated_at":"2025-02-11T13:31:59.000Z","dependencies_parsed_at":"2023-11-03T15:26:35.905Z","dependency_job_id":null,"html_url":"https://github.com/cyberjunky/3commas-cyber-bots","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/cyberjunky/3commas-cyber-bots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberjunky%2F3commas-cyber-bots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberjunky%2F3commas-cyber-bots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberjunky%2F3commas-cyber-bots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberjunky%2F3commas-cyber-bots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyberjunky","download_url":"https://codeload.github.com/cyberjunky/3commas-cyber-bots/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberjunky%2F3commas-cyber-bots/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28933471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T04:05:25.756Z","status":"ssl_error","status_checked_at":"2026-01-31T04:02:35.005Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3commas","bitcoin","bot","compounding","cryptocurrency","dca","lunarcrush","stoploss-takeprofit","trading"],"created_at":"2026-01-31T07:35:48.966Z","updated_at":"2026-01-31T07:35:49.036Z","avatar_url":"https://github.com/cyberjunky.png","language":"Python","funding_links":["https://www.paypal.me/cyberjunkynl/"],"categories":[],"sub_categories":[],"readme":"# 3Commas Cyber Bot Helpers \u003ca href=\"https://github.com/cyberjunky/3commas-cyber-bots/blob/main/README.md#donate\"\u003e\u003cimg src=\"https://img.shields.io/badge/Donate-PayPal-green.svg\" height=\"40\" align=\"right\"\u003e\u003c/a\u003e \n\nA collection of 3Commas bot helper scripts I wrote. (collection will grow over time)\n\n\u003cimg src=\"images/robots.jpg\"\u003e\u003c/a\u003e \n\n## Disclaimer\n```\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\u003e My code is [MIT Licensed](LICENSE), read it please.\n\n\u003e Always test your setup and settings with your PAPER ACCOUNT first!\n\n## Overview\nThis repository contains several Python scripts (bot helpers) which can be used to make your 3Commas bots more powerful -and hopefully more profitable-.\n\nYou can find a small description of each one below. They have their own documentation page in the wiki describing what it can do and how to use it in more detail.\n\nAn image with the most used scripts and how they work together can be found below.\n![Overview](images/overview.png)\n\n## Why did you build these bot helpers?\n\nSince I rather don't want to pay for Monthly services if this is not needed I started to write some scripts myself, learning more about Crypto along the way.\n\n\n## Overview \u0026 Account management\n\nGet overview and statistics in order to get an overview and manage your account and funds easily.\n\n### Balance Report (balancereport.py)\nA script which examins the connected exchanges, bots and deals on your account. Based on al this data, an overview is generated of funds in use and the amount available.\n\n[BalanceReport Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/BalanceReport)\n\n\n## Bot Pair changers\n\nChange pairs of your bot(s) matching configured rankings and/or thresholds.\n\n### MarketCollector (marketcollector.py)\nMain script which collects data from different sources (CoinMarketCap, LunarCrush, 3c-tools) and serves as database to other script(s).\n\n[MarketCollector Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/MarketCollector)\n\n### BotUpdater (botupdater.py)\nUpdate the pairs, based on multiple filters, of configured bots based on the available data from the MarketCollector database.\n\n[BotUpdater Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/BotUpdater)\n\n### AltRank (altrank.py)\nA script which allows you to change the pairs of your 3Commas bot(s) at regular intervals using [LunarCrush](https://lnr.app/s/o3p1V2) AltRank rankings.\n\nNote; no longer maintained. Use MarketCollector and BotUpdater script.\n\n[AltRank Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/AltRank)\n\n### GalaxyScore (galaxyscore.py)\nA script which allows you to change the pairs of your 3Commas bot(s) at regular intervals using [LunarCrush](https://lnr.app/s/o3p1V2) GalaxyScore rankings.\n\nNote; no longer maintained. Use MarketCollector and BotUpdater script.\n\n[GalaxyScore Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/GalaxyScore)\n\n### CoinMarketCap (coinmarketcap.py)\nA script which allows you to change the pairs of your 3Commas bot(s) at regular intervals using [CoinMarketCap](https://coinmarketcap.com) rankings.\n\nNote; no longer maintained. Use MarketCollector and BotUpdater script.\n\n[CoinMarketCap Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/CoinMarketCap)\n\n### BotAssistExplorer (botassistexplorer.py)\nA script which allows you to change the pairs of your 3Commas bot(s) at regular intervals using [3CTools's BotAssistExplorer](https://www.3c-tools.com/markets/bot-assist-explorer) rankings.\n\nNote; no longer maintained. Use MarketCollector and BotUpdater script.\n\n[BotAssistExplorer Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/BotAssistExplorer)\n\n\n## Stoploss and Profit trailing\n\nChange stoploss and/or takeprofit settings of your bot(s) using their running deals statistics.\n\n### Futures Trailing stoploss (trailingstoploss.py)\nA script which tracks active Future deals from your 3Commas bot(s) and change the stoploss when the profit thresholds are reached.\n\n[TrailingStopLoss Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/TrailingStopLoss)\n\n### DCA Trailing stoploss, Safety Orders and profit (trailingstoploss_tp.py)\nSame for DCA type deals and also including an implementation for trailing Safety Orders and take profit.\n\n[TrailingStopLoss and TakeProfit Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/TrailingStopLoss-and-TakeProfit)\n\n\n## Compounding\n\nAdd any profits made to your bot(s)\n\n### Compound (compound.py)\nThis scripts checks closed deals of specified bot(s) at regular intervals and compounds any profits made, respecting BO/SO ratios or even change Maximum deal settings if configured.\n\n[Compound Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/Compound)\n\n## Watchlists\n\nTrigger starting and/or stopping of bot deals using external trigger messages.\n\n\n### Watchlist (watchlist.py)\nThis will monitor a specific Telegram chat channel (https://t.me/wiseanalize) and sent a 'start new deal' trigger to the linked bot(s) for that pair.\n\n[Watchlist Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/Watchlist)\n\n### Watchlist 100eyes (watchlist_100eyes.py)\nThis will monitor a Telegram chat channels provided by (https://www.100-eyes.com/) and sent a 'start new deal' trigger to the linked bot(s) for that pair.\n\n[Watchlist 100eyes Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/Watchlist-100eyes)\n\n### Watchlist Hodloo (watchlist_hodloo.py)\nIt will monitor a specific Hodloo Telegram chat channel (https://qft.hodloo.com/alerts/) and sent a 'start new deal' trigger to the linked bot for that pair.\n\n[Watchlist Hodloo Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/Watchlist-Hodloo)\n\n### Watchlist Telegram (watchlist_telegram.py)\nCombination of watchlist and watchlist_hodloo script.\n\n[Watchlist Telegram Documentation](https://github.com/cyberjunky/3commas-cyber-bots/wiki/Watchlist-Telegram)\n\n\n## Binance account Setup\n\n-   Create a [Binance account](https://accounts.binance.com/en/register?ref=156153717) (Includes my referral, I'll be super grateful if you use it).\n-   Enable Two-factor Authentication.\n-   Create a new API key.\n-   Get a stable cryptocurrency to trade with.\n\nNOTE: Only needed if you want to trade on Binance, not needed for the functionality of the bot(s).\n\n## 3Commas account Setup\n\n-   Create a [3Commas account](https://3commas.io/?c=tc587527) (Includes my referral, again I'll be super grateful if you use it).\n-   Enable Two-factor Authentication.\n-   Connect your 3Commas account with the Binance or FTX exchange using the key values created above.\n-   Create a new API key with Bot Read, Bot Write and Account Read permissions, enther these key in config.py\n-   Setup a DCA Bot (details will follow)\n\nNOTE: Needed for the bot(s) to work, duh they are 3Commas bot helpers.\n\n## LunarCrush account Setup\nSupport the Project\n-   Create a [LunarCrush account](https://lnr.app/s/o3p1V2) (Includes my referral, again I'll be super grateful if you use it).\n-   Create a API key under https://lunarcrush.com/developers/api/authentication and add it to your altrank.ini or galayscore.ini\n\nThis account is needed for the bot(s) to work, to download the GalaxyScore and/or AltRank information.\n\nNOTE: It seems LunarCrush have phased out their free older API functionality at 1 Nov 2022, and now only allows API v3 access -which the latest scripts support- but API calls are not free anymore.\nWe are investigating options.\n\n## Bot helper setup\n\n### Download and install\n\nYou need run Python 3.7 or higher.\n\nDownload the zip file of the latest release from [here](https://github.com/cyberjunky/3commas-cyber-bots/releases) and unpack it, or do a `git clone` with the steps described below.\n\n```\n$ sudo apt install git\n$ git clone https://github.com/cyberjunky/3commas-cyber-bots.git\n$ cd 3commas-cyber-bots\n$ pip3 install -r requirements.txt\n```\n\n### Configuration of the bot helpers\n\nFor a new install just start the bot helper you want to use like below for altrank, a config file with the name of bot is created (ending in .ini)\n\n```\n$ python3 ./altrank.py\n```\n\nThen you can edit the file and start the bot helper again to use it.\n\nLook at the helper sections above for each layout and description of the settings.\n\n\n### 3Commas API key permissions needed\nThe 3Commas API need to have 'BotsRead, BotsWrite and AccountsRead' permissions, don't give it more than that to be safe.  \nBotsRead: Required to get a list of all bots.  \nBotsWrite: Required to update bot pairs.  \nAccountsRead: Required to get connected exchanges to ensure that pairs are valid.  \n\n### Telegram ID, Hash and Secrets explained\nThere are two sets of Telegram related settings.\n\n#### Watchlist\nOne is used by `watchlist.py`, `watchlist_hodloo` or `watchlist_telegram` to connect to the telegram API.\n\nTo get the Telegram App ID and hash you have to create an application ,\n\nThese are the steps as outlined in below link:\n\n-   Login to your Telegram account [here](https://my.telegram.org/) with the phone number of the developer account to use.\n-   Visit the [API development tools](https://my.telegram.org/apps)\n-   A Create new application window will appear. Fill in your application details. There is no need to enter any URL, and only the first two fields (App title and Short name) can currently be changed later.\n-   Click on Create application at the end. Remember that your API hash is secret and Telegram won’t let you revoke it. Don’t post it anywhere!\n\nFill these in here inside watchlist.ini:\n```\ntgram-api-id = 1234566\ntgram-api-hash = o6la4h1158ylt4mzhnpio6la\n```\n\n#### Notifications\nThe other set of values are used by to sent notifications to Telegram channel of your choice.\nI use Apprise for this, all possible platform to send notifications to are described here [Apprise website](https://github.com/caronc/apprise)\n\nThe Telegram part is described [here](https://github.com/caronc/apprise/wiki/Notify_telegram#account-setup)\n\n-   First you need to create a bot to get a bot_token\n-   Open telegram and search for 'BotFather' start a conversation\n-   Type: /newbot\n-   Answer the questions it asks after doing this (which get the name of it, etc).\n-   When you've completed step 2, you will be provided a bot_token that looks something like this: 123456789:alphanumeric_characters.\n-   Type /start now in the same dialog box to enable and instantiate your brand new bot.\n\nFill in the notify-url like this:\n```\nnotify-urls = [ \"tgram://2097657222:AAFSebMCJF6rQ6l46n21280K8y59Mg6w13112w/\"]\n\n```\nNow you also need a chat_id, don't worry Apprise can get this for you.\n-   First sent a random message to your bot via the Telegram app.\n-   Then start one of the bot helpers with above like notify-url setting.\nand look at the logs, it should contain something like:\n```\n2021-11-11 19:39:02,930 - apprise - INFO - Detected Telegram user R (userid=936303417)\n2021-11-11 19:39:02,930 - apprise - INFO - Update your Telegram Apprise URL to read: tgram://2...w/%40936302121/?image=False\u0026detect=yes\u0026format=text\u0026overflow=upstream\u0026rto=4.0\u0026cto=4.0\u0026verify=yes\n```\n-   Now copy and paste the whole part behind and including the % and paste it behind the notify-url you had configured, to avoid syntax errors you need to put an extra % in between so ...w/%%409... etc...\n\nIf you didn't send a message to your bot first this is what the logs show:\n```\n2021-11-11 19:35:14,682 - apprise - WARNING - Failed to detect a Telegram user; try sending your bot a message first.\n2021-11-11 19:35:14,682 - apprise - WARNING - There were not Telegram chat_ids to notify.\n```\n\n### Running the bot helpers\n\n#### Run Manually\n`$ python3 ./marketcollector.py -s ../`\nand/or\n`$ python3 ./botupdater.py -s ../ -b blacklist.txt`\nand/or\n`$ python3 ./watchlist.py`\nand/or\n`$ python3 ./compound.py`\n\nThey also have some command-line options:\n\n```\n./script.py -h\nusage: script.py [-h] [-d DATADIR] [-s SHAREDIR] [-b BLACKLIST]\n\nCyberjunky's 3Commas bot helper.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -d DATADIR, --datadir DATADIR\n                        directory to use for config and logs files\n  -s SHAREDIR, --sharedir SHAREDIR\n                        directory to use for shared files between scripts\n  -b BLACKLIST, --blacklist BLACKLIST\n                        local blacklist to use instead of 3Commas's\n```\n\nThe blacklist file layout is one pair per line.\n\n### Example output for `altrank`\n```\n2021-10-14 19:05:11,922 - altrank - INFO - 3Commas altrank bot helper!\n2021-10-14 19:05:11,922 - altrank - INFO - Started at Thursday 19:05:11 14-10-2021\n2021-10-14 19:05:11,922 - altrank - INFO - Loaded configuration from 'altrank.ini'\n2021-10-14 19:05:11,922 - altrank - INFO - Using PAPER TRADING account mode\n2021-10-14 19:05:11,922 - altrank - INFO - Notifications are enabled\n2021-10-14 19:05:12,372 - altrank - INFO - Fetched LunarCrush Top X ar OK (50 coins)\n2021-10-14 19:05:12,425 - altrank - INFO - Fetched 3Commas pairs blacklist OK (52 pairs)\n2021-10-14 19:05:12,478 - altrank - INFO - Finding the best pairs for Binance exchange\n2021-10-14 19:05:12,509 - altrank - INFO - Fetched 3Commas market data for binance OK (1262 pairs)\n2021-10-14 19:05:12,510 - altrank - INFO - Bot 'BUSD Bull Long AltRank' with id '1234567' is already using the best pairs\n2021-10-14 19:05:12,510 - altrank - INFO - Next update in 3600 Seconds at 20:05:12\n\n```\n\n#### Start Automatically\n\nExample service files `3commas-galaxyscore-bot.service`, `3commas-altrank-bot.service` (and `3commas-galaxyscore-env-bot.service`, `3commas-altrank-env-bot.service` if you use the .env enviroment described above) are provided,. They can all be found in the `scripts` directory, you need to edit the paths and your user inside them to reflect your install. And install the service you need as describe below.\n\n```\n$ sudo cp scripts/3commas-galaxyscore-bot.service /etc/systemd/system/\n$ sudo systemctl start 3commas-galaxyscore-bot.service\n$ sudo cp scripts/3commas-altrank-bot.service /etc/systemd/system/\n$ sudo systemctl start 3commas-altrank-bot.service\n```\nExample on how to enable starting the bot helper(s) at boot:\n```\n$ sudo systemctl enable 3commas-galaxyscore-bot.service\n$ sudo systemctl enable 3commas-altrank-bot.service\n```\nExample on how to disable starting the bot helper(s) at boot:\n```\n$ sudo systemctl disable 3commas-galaxyscore-bot.service\n$ sudo systemctl disable 3commas-altrank-bot.service\n```\nHow to check status:\n```\n$ systemctl status 3commas-galaxyscore-bot.service \n● 3commas-galaxyscore-bot.service - 3Commas GalaxyScore Daemon\n     Loaded: loaded (/etc/systemd/system/3commas-galaxyscore-bot.service; enabled; vendor preset: enabled)\n     Active: active (running) since Thu 2021-10-14 20:09:43 CEST; 39s ago\n   Main PID: 53347 (python3)\n      Tasks: 2 (limit: 18361)\n     Memory: 29.3M\n     CGroup: /system.slice/3commas-galaxyscore-bot.service\n             └─53347 /usr/bin/python3 /home/ron/development/3commas-cyber-bots/galaxyscore.py\n\nokt 14 20:09:43 laptop-ubuntu python3[53347]: 2021-10-14 20:09:43,713 - galaxyscore - INFO - Using PAPER TRADING account mode\nokt 14 20:09:43 laptop-ubuntu python3[53347]: 2021-10-14 20:09:43,713 - galaxyscore - INFO - Notifications are enabled\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,559 - galaxyscore - INFO - Fetched LunarCrush Top X gs OK (50 coins)\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,637 - galaxyscore - INFO - Fetched 3Commas pairs blacklist OK (52 pairs)\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,721 - galaxyscore - INFO - Finding the best pairs for Binance exchange\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,761 - galaxyscore - INFO - Fetched 3Commas market data for binance OK (1262 pairs)\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,761 - galaxyscore - INFO - Updating your 3Commas bot(s)\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,886 - galaxyscore - INFO - Bot 'BUSD Bull Long TTP - 766 - GalaxyScore' with id '6395939' updated with these pairs:\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,887 - galaxyscore - INFO - ['BUSD_HBAR', 'BUSD_PERP', 'BUSD_RLC', 'BUSD_COTI', 'BUSD_AXS', 'BUSD_QNT', 'BUSD_ETH', 'BUSD_QUICK', 'BUSD_OCEAN', 'BUSD_CRV']\nokt 14 20:09:44 laptop-ubuntu python3[53347]: 2021-10-14 20:09:44,887 - galaxyscore - INFO - Next update in 3600 Seconds at 21:11:44\n\n```\n\nHow to check logs:\n```\n$ sudo journalctl -u 3commas-galaxyscore-bot.service \n```\n\nHow to edit an already installed service file:\n```\n$ sudo systemctl edit --full 3commas-galaxyscore-bot.service \n```\n\n### Need for multiple settings\n\nIf you want a set of bots having 20 pairs of AltRank/GalaxyScore and another set use 10, or want to trigger on multiple Telegram channels, you can simply copy the script and use a descriptive name, it will create and use it's own settings file, and logfile... as long as the original name is in the file name.\n```\ne.g.\n$ cp altrank.py altrank10.py\n$ ./altrank10.py \n2021-11-20 13:22:37 - altrank10.py - 3Commas bot helper altrank10!\n2021-11-20 13:22:37 - altrank10.py - Started at Saturday 13:22:37 20-11-2021.\n2021-11-20 13:22:37 - altrank10.py - Created example config file 'altrank10.ini', edit it and restart the program.\n\n$ cp scripts/3commas-altrank-bot.service script/3commas-altrank10-bot.service\nAnd change ExecStart entryr accordingly\n```\n\n### Options for hosting this\n\n- Intel NUC, install Debian or Ubuntu without GUI.\n  And follow installation steps above.\n  \n- Raspberry Pi, install the Raspberry Pi OS\n  And follow installation steps above.\n\n- Docker find all settings and [documentation here](docker/)\n\n\n\nIn the Cloud, if you are willing to store your config files with your API keys in the Cloud, these are some options:\n\n- PythonAnywhere https://eu.pythonanywhere.com/ Create free account, click on 'Bash' button and do:\n```\n$ git clone https://github.com/cyberjunky/3commas-cyber-bots.git\n$ cd 3commas-cyber-bots\n$ pip3 install -r requirements.txt\n```\n  Then you can run any of the scripts.\n  More instructions can be found here https://www.youtube.com/watch?v=NH2PhXYvrWs, if you want to run multiple bot helpers, create another Bash console by clicking on the 'Bash' button again, cd to the 3commas-cyber-bots folder and start the next.\n  Please visit the wiki for more information [Wiki PythonAnywhere](https://github.com/cyberjunky/3commas-cyber-bots/wiki/PythonAnywhere)\n  \n- Google Cloud https://console.cloud.google.com Login with your gmail adress,goto 'Compute Engine', 'VM instances', create \n  You can create a small sized VM, you need to specify your CC details.\n  More instructions can be found here https://www.youtube.com/watch?v=5OL7fu2R4M8\n  NOTE: From Europe there are no free VM's available as shown in the video, at least I could not find them.\n\n\n### Run from Python Enviroment (optional)\n\nYou can use the install script called setup.sh to create this environment. Simply run it as ./setup.sh and you have the options:\n```\nusage:\n\t-i,--install    Install 3commas-cyber-bots from scratch\n\t-u,--update     Command git pull to update.\n```\nIt creates a .env python enviroment to install the requirements in, and you can run the scripts from there without cluttering your machine.\n\nBefore running any of the scripts manually enter the virtual environment first\n```\ncd 3commas-cyber-bots\nsource .env/bin/activate\n```\n\n### TODO\n- You tell me, I'm open for ideas and requests!\n\n### FAQ\n\n1) I get this when I try to start the bot:\n```\nTraceback (most recent call last):\n  File \"./galaxyscore.py\", line 7, in \u003cmodule\u003e\n    from py3cw.request import Py3CW\nModuleNotFoundError: No module named 'py3cw'\n```\nInstall the python requirements like so:\n``` \n$ pip3 install -r requirements.txt\n```\nOr run `setup.sh` script to install the Python environent with everything in it.\n\n2) I get this error:\n```\nFetching 3Commas pairs blacklist failed with error: {'error': True, 'msg': 'Other error occurred: api_key_invalid_or_expired Unauthorized. Invalid or expired api key. None.'}\n```\n\nSomething is wrong with your 3Commas API keys, check the API key values in your `config.ini` file, you can paste them there without the \" \" \n\n3) I get this error:\n```\n  File \"/usr/lib/python3.7/logging/init.py\", line 1121, in _open\n    return open(self.baseFilename, self.mode, encoding=self.encoding)\nFileNotFoundError: [Errno 2] No such file or directory: '/home/pi/3commas-cyber-bots/logs/galaxyscore.log'\n```\n\nCreate the 'logs' directory inside the bot folder.\n\n4) I use telegram notifications and get the message:\n```\nDetected Telegram user R (userid=123456789)\n2021-10-13 21:20:05,573 INFO - Update your Telegram Apprise URL to read: tgram://2...w/%123456789/?image=False\u0026detect=yes\u0026format=text\u0026overflow=upstream\u0026rto=4.0\u0026cto=4.0\u0026verify=yes\n```\nApply the part behind and including the % to your tgram url in the config, but add another % infront of the % to suppress parse errors like this:\n```\n   raise InterpolationSyntaxError(\nconfigparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%123456789/?image=False\u0026detect=yes\u0026format=text\u0026overflow=upstream\u0026rto=4.0\u0026cto=4.0\u0026verify=yes\" ]'\n```\n\nSo it looks something like this: (strings are bogus)\n```\nnotify-urls = [ \"tgram://9995888120:BoJPor6opeHyxx5VVZPX-BoJPor6opeHyxx5VVZPX/%%123456789/?image=False\u0026detect=yes\u0026format=text\u0026overflow=upstream\u0026rto=4.0\u0026cto=4.0\u0026verify=yes\" ]\n```\n\n5) I get this error running pip3 install step:\n```\n       #include \u003cffi.h\u003e\n                ^~~~~~~\n      compilation terminated.\n      error: command 'x86_64-linux-gnu-gcc' failed with exit status \n```\n\nInstall libffi-dev with `sudo apt install libffi-dev` and try again.\n\n6) I get error 'can't find Rust compiler':\n\nUpdate pip3 like so:\n```\n$ pip3 install --upgrade pip\n```\nAnd try again.\n\n6) After running the watchlist.py script for a few days, the following errors sometimes shows up in the logs:\n```\nError occurred while triggering start_new_deal bot 'Bot name' error: Other error occurred: Unknown error occurred#Exceptions::OpenDealPresentForThisPair None None.\n```\nThis happens when your bot is in a paper trade account, `watchlist` will then ignore the exchange field in the trigger, so when two of the same pairs for different exchanges are triggered, you get the same pair twice, and 3Commas tells you that you already have a trade for this pair, this only happens in paper mode.\n\n7) I get error 'TypeError: object of type 'int' has no len()'\n```\n  File \"./*.py\", line 511, in callback\n    if len(botids) == 0:\nTypeError: object of type 'int' has no len()\n```\nMake sure usdt-botids and btc-botids are defined within [] in your ini files.\n\n8) I get error `for account in data: TypeError: 'NoneType' object is not iterable`\n```\n  File \"./*.py\", line 250, in get_threecommas_account\n    for account in data:\nTypeError: 'NoneType' object is not iterable\n```\nNewer versions of the scripts also need AccountRead permissions for the 3Commas API Keys.\nCreate new ones, with it and paste them in your ini file(s)\n\n9) I get error `Error occurred updating bots: Other error occurred: signature_invalid Provided signature is invalid None.`  \nThe secret key specified for the 3Commas API is invalid, check for possible paste error.\n\n10) I get error `2022-01-11 00:11:00 - altrank - Fetching LunarCrush data failed with error: 401 Client Error: Unauthorized for url: https://api.lunarcrush.com/v2?data=market\u0026type=fast\u0026sort=acr\u0026limit=150\u0026key=Your+LunarCrush+API+Key`\nLunarCrush now expect a valid apikey again, create an account here [LunarCrush](https://lnr.app/s/o3p1V2) and login to https://legacy.lunarcrush.com/, then goto settings and API tab, create key and use this in altrank.ini and/or galaxyscore.ini.\n\n### Debugging\n\nSet debug to True in config.ini and check the appropriate log file under `logs/` for debug information\n```\ndebug = True\n```\n\n## Donate\nIf you enjoyed this project -and want to support further improvement and development- consider sending a small donation using the PayPal button or one of the Crypto Wallets below. :v:\n\u003ca href=\"https://www.paypal.me/cyberjunkynl/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Donate-PayPal-green.svg\" height=\"40\" align=\"right\"\u003e\u003c/a\u003e  \n\nWallets:\n\n- USDT (TRC20): TEQPsmmWbmjTdbufxkJvkbiVHhmL6YWK6R\n- USDT (ERC20): 0x73b41c3996315e921cb38d5d1bca13502bd72fe5\n\n- BTC (BTC)   : 18igByUc1W2PVdP7Z6MFm2XeQMCtfVZJw4\n- BTC (ERC20) : 0x73b41c3996315e921cb38d5d1bca13502bd72fe5\n\nFree crypto:\nOr at least join my Pi mining team, it's free:\n\n\u003cimg src=\"images/pi-icon.png\" height=\"48\" align=\"left\"\u003e 1π! Pi is a new digital currency developed by Stanford PhDs, with over 25 million members worldwide. To claim your Pi, follow this link https://minepi.com/cyberjunky and use my username (cyberjunky) as your invitation code. \n\nClaim free crypto (Hi Dollars) every day by answering a simple daily question. https://hi.com/cyberjunky  \n\nMy referral links: (gives you discount and/or less fees to pay):\n\n- [Prosum Solutions Indicators](https://prosum-solutions.store/ref/ron.klinkien/?campaign=cyberbothelpers) Excellent TradingView indicators QFL Base Breaking, Price Change Scalper, 3Commas DCA, and more.. have a look and try them! Featured in TheTradingParot video's. Use above link and coupon code: DJWNGFHXTI for 15% discount!\n\n  Look here for instruction video(s): [Prosum Solutions YouTube Channel](https://www.youtube.com/channel/UCUoCoHjp67pQwYJQgpsrz1w/videos)\n\n- [LunarCrush](https://lnr.app/s/o3p1V2) Earn points\n- [Binance](https://accounts.binance.com/en/register?ref=156153717)\n- [3Commas](https://3commas.io/?c=tc587527) Get 10% discount for first monthly subscription\n- [Bybit](https://www.bybit.com/en-US/invite?ref=QXGO00) Give $20\n- [Bitvavo](https://bitvavo.com/?a=90A596F835) No fees over €1000 trading in first week\n- [TradingView](https://www.tradingview.com/gopro/?share_your_love=cyberjunkynl) Get up to $30 each after they upgrade to a paid plan\n- [CoinMaketCap](https://coinmarketcap.com/invite?ref=3IYRT0KW) Earn rewards together!\n\n## Disclamer (Reminder)\n```\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\u003e My code is [MIT Licensed](LICENSE), read it please.\n\n\u003e Always test your settings with your PAPER ACCOUNT first!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberjunky%2F3commas-cyber-bots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyberjunky%2F3commas-cyber-bots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberjunky%2F3commas-cyber-bots/lists"}