{"id":21995194,"url":"https://github.com/alex-bormotov/axe-bot","last_synced_at":"2025-04-30T17:23:01.405Z","repository":{"id":50185144,"uuid":"209964443","full_name":"alex-bormotov/AXE-Bot","owner":"alex-bormotov","description":"Cryptocurrency trading bot for Binance exchange","archived":false,"fork":false,"pushed_at":"2021-06-02T00:27:43.000Z","size":723,"stargazers_count":16,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T18:12:12.349Z","etag":null,"topics":["algorithmic-trading","binance","bitcoin","cryptocurrency","python","telegram-bot","trading-bot"],"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/alex-bormotov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-21T10:16:59.000Z","updated_at":"2024-03-15T13:52:48.000Z","dependencies_parsed_at":"2022-09-15T18:21:18.386Z","dependency_job_id":null,"html_url":"https://github.com/alex-bormotov/AXE-Bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-bormotov%2FAXE-Bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-bormotov%2FAXE-Bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-bormotov%2FAXE-Bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex-bormotov%2FAXE-Bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alex-bormotov","download_url":"https://codeload.github.com/alex-bormotov/AXE-Bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251749394,"owners_count":21637532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["algorithmic-trading","binance","bitcoin","cryptocurrency","python","telegram-bot","trading-bot"],"created_at":"2024-11-29T21:12:42.013Z","updated_at":"2025-04-30T17:23:01.373Z","avatar_url":"https://github.com/alex-bormotov.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AXE Bot - Crypto Trading Bot for Binance.com\n![AXE BOT](data/diagram.png)\n\n## Disclaimer\n\n\u003e USE THE SOFTWARE AT YOUR OWN RISK. THE AUTHOR AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.\n\n### Features\n\n\u003e [Ignore signals](FAQ.md#what-means-ignore-buy-sell-signals)\n\n\u003e [Ready strategies](#ready-strategies)\n\n\u003e [Creating own strategy](#creating-own-strategy)\n\n\u003e BUY Trailing stop\n\n\u003e SELL Trailing stop\n\n\u003e Dynamic Trailing SELL\n\n\u003e Market or limit orders\n\n\u003e Indicators RSI, Bollinger Bands\n\n\u003e Notifications Telegram, Discord\n\n\u003e Facility to use different indicators for BUY and SELL\n\n\u003e Facility to use different timeframe for BUY and SELL indicators\n\n\u003e Saving trading results to Firebase or/and SQLite, for future visualization\n\n---\n\n\u003e [Install](#install)\n\n\u003e [Config](#Config)\n\n\u003e [Update](#Update)\n\n---\n\n#### Important\n\n\u003e After installing in Docker and first launch you MUST edit config.json and put there \"bot_id\", then [rebuild an image](#Update), because Docker doesn't save \"bot_id\" in config file while first run and will generate a new one for each run.\n\n\u003e Example code that you must put to the end of config.json: \"bot_id\": \"YOUR BOT_ID\"\n\n\u003e Note: after the previous line before \"bot_id\": \"YOUR BOT_ID\" you must put \",\". After \"bot_id\": \"YOUR BOT_ID\" don't need put \",\". Also, you need to mount \"data\" folder to your image, for saving results to SQLite or using Firebase.\n\n#### Install\n\n* [Docker](#docker)\n* [Ubuntu](#ubuntu)\n* [Windows](FAQ.md#i-want-to-install-the-bot-on-windows)\n\n#### Docker\n\n\u003e Buy Ubuntu VPS near by exchange\n\n```bash\nsudo apt-get update\n```\n\n```bash\nsudo apt-get install \\\n    apt-transport-https \\\n    ca-certificates \\\n    curl \\\n    gnupg-agent \\\n    software-properties-common\n```\n\n```bash\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -\n```\n\n```bash\nsudo add-apt-repository \\\n   \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \\\n   $(lsb_release -cs) \\\n   stable\"\n```\n\n```bash\nsudo apt-get update\n```\n\n```bash\nsudo apt-get install docker.io git\n```\n\n```bash\ngit clone https://github.com/alex-bormotov/AXE-Bot\n```\n\n```bash\ncd AXE-Bot/config\n```\n\n```bash\ncp config.json.sample config.json\n```\n\n\u003e Edit config.json, it an IMPORTANT to create and edit config.json before docker build!\n\n```bash\ncd ..\n```\n\n```bash\nsudo docker build -t axe-bot .\n```\n\n```bash\nsudo docker run axe-bot \u0026\n```\n\n\u003e If you want change something in config.json you will need to [rebuild the docker image after changes](#Update)!\n\n#### Ubuntu\n\n```bash\nsudo apt install python3-pip git\n```\n\n```bash\ngit clone https://github.com/alex-bormotov/AXE-Bot\n```\n\n```bash\ncd AXE-Bot\n```\n\n```bash\npip3 install -r requirements.txt\n```\n\n```bash\ncd config\n```\n\n```bash\ncp config.json.sample config.json\n```\n\n```bash\nnano config.json\n```\n\n```bash\ncd ..\n```\n\n``` bash\npython3 bot.py \u0026\n```\n\n---\n\n#### Update\n\n\u003e For Docker:\n\n```bash\ncd AXE-Bot\n```\n\n```bash\nsudo docker ps\n```\n\n```bash\nsudo docker stop CONTAINER ID\n```\n\n```bash\nsudo docker rm CONTAINER ID\n```\n\n```bash\nsudo docker rmi axe-bot\n```\n\n```bash\ngit pull origin master\n```\n\n```bash\nsudo docker build -t axe-bot .\n```\n\n```bash\nsudo docker run axe-bot \u0026\n```\n\n\u003e For Ubuntu, without Docker:\n\n```bash\ncd AXE-Bot\n```\n\n```bash\ngit pull origin master\n```\n\n```bash\nps ax | grep bot.py\n```\n\n```bash\nkill -9 PROCESS ID\n```\n\n```bash\npython3 bot.py \u0026\n```\n\n---\n\n#### Config\n\n\u003e key and value must be into \"\", for instance \"exchange_fee\": \"0.1\"\n\nkey|value|description\n|:--------------------|:-----------------------:|-------------------------------:|\nexchange_for_trade|binance|Currently supports Binance only\nrequests_frequency|number|Frequency of requests (get price, get balances, check indicators, check orders, etc ...), in seconds, default 1\nkey|text|Binance API key\nsecret|text|Binance API secret\nexchange_fee|number|0.1, on Binance (without using BNB)\nuse_bnb_for_fee|YES/NO|If YES - enable BNB fee on your Binance account\ncoin|text|First currency, \"ETH\" for instance\ncoin_2|text|Second (base) currency, \"BTC\" for instance\nuse_limit_orders|YES/NO|YES\ncancel_order_by_time|YES/NO|YES\ntime_to_cancel_order_by_inactivity_minutes|number|In minutes. If limit order don't executed through this time it will be canceled. 7, for instance\nuse_all_balance|YES/NO|YES\nbuy_trail_step|number|If you do not want use trail buy - set very small number here, for instance 0.000001. Then bot will buy instantly\nstake_per_trade|number|100\nsell_trail_step|number|If you don't using SELL signal - from start stop loss will be equal 'sell_trail_step', after, as the price moves, it will change, because it is trailing stop loss\ndynamic_trail_enable|YES/NO|If YES - It will be dynamically change value of sell_trail_step\ndyn_change_percent_for_trail_1|number|For instance, if price now \u003e 1% (set 1.0 here) - set trail to dyn_trail_step_1, that be equal 0.1\ndyn_change_percent_for_trail_2|number|For instance, if price now \u003e 1.2% (set 1.2 here) - set trail to dyn_trail_step_2, that be equal 0.09\ndyn_change_percent_for_trail_3|number|For instance, if price now \u003e 1.5% (set 1.5 here) - set trail to dyn_trail_step_3, that be equal 0.07\ndyn_change_percent_for_trail_4|number|For instance, if price now \u003e 1.7% (set 1.7 here) - set trail to dyn_trail_step_4, that be equal 0.06\ndyn_change_percent_for_trail_5|number|For instance, if price now \u003e 1.9% (set 1.9 here) - set trail to dyn_trail_step_5, that be equal 0.05\ndyn_trail_step_1|number|0.1, for instance\ndyn_trail_step_2|number|0.09, for instance\ndyn_trail_step_3|number|0.07, for instance\ndyn_trail_step_4|number|0.06, for instance\ndyn_trail_step_5|number|0.05, for instance\nindicators_bb_period|number|20, for instance\nindicators_rsi_period|number|14, for instance\nbuy_indicators_type|RSI+BB/RSI/BB|RSI+BB, for instance\nbuy_indicators_timeframe|period (m/h/d)|15m, for instance. Must be like 15m, means with 'm'\nrsi_buy_level|number|35, for instance\nstart_buy_trail_on_buy_signal|YES/NO|If set to 'NO' bot will start buy instantly, if 'YES' - only on a signal\nignore_buy_signal_enable|YES/NO|[FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_buy_signal_type|times/time|[FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_buy_signal_times|number|4, for instance [FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_buy_signal_time_sec|number|In seconds, 120 (2m), for instance [FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_buy_cooldown_sec|number|In seconds, 30, for instance [FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nsell_indicators_type|RSI+BB/RSI/BB|RSI+BB, for instance\nsell_indicators_timeframe|period (m/h/d)|15m, for instance. Must be like 15m, means with 'm'\nrsi_sell_level|number|77, for instance\nstart_sell_trail_on_sell_signal|YES/NO|If set to 'NO' bot will start sell according with 'sell_trail_step', if YES - only on a sell signal\nignore_sell_signal_enable|YES/NO|[FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_sell_signal_type|times/time|[FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_sell_signal_times|number|3, for instance [FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_sell_signal_time_sec|number|In seconds, 300 (5m), for instance [FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nignore_sell_cooldown_sec|number|In seconds, 30, for instance [FAQ](FAQ.md#what-means-ignore-buy-sell-signals)\nprice_buffer_for_start_sell_on_sell_signal|number|0.7, for instance. It like insurance, if was receive sell signal, but price now \u003c price buy. In this case bot will be ignore sell signals until price now \u003e= price buy + 0.7%\nuse_stop_loss_while_start_sell_on_sell_signal|YES/NO|If 'YES' - sell if price now \u003c price buy + 'stop_loss_percent_for_start_sell_on_sell_signal'\nstop_loss_percent_for_start_sell_on_sell_signal|number|7.0, for instance\ncommon_cooldown_time_sec|number|In seconds, 1200 (20m), for instance. It means time which bot will be sleep in the end of each cycle (buy - sell), before starting a new cycle. It you want to disable this feature - set 0 here.\nsave_to_sqlite|YES/NO|save trade result\nsave_to_firebase|YES/NO|save trade result\nfirebase_credentials_file_name|text|\"config/filename.json\"\nfirebase_databaseURL|text|\"https://your-url.firebaseio.com/\"\ntelegram_enable|YES/NO|YES\nchat_id|number|Telegram chat [id](https://www.reddit.com/r/Telegram/comments/7znf6s/how_do_i_find_my_telegram_id/)\ntoken|text|Telegram [bot](https://core.telegram.org/bots#3-how-do-i-create-a-bot) token\ndiscord_enable|YES/NO|YES\ndiscord_webhook_url|text|Discord [WEBHOOK_URL](https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks)|\nbot_id |text|your unique id, DON'T CHANGE IT!\n\n---\n\n#### Ready Strategies\n\n\nStrategy | Config file\n|----------|:-------------:|\n[Indicators only](data/strategy-1.png) | config.json.sample\nTested and make profit | YES\nExchange | Binance (spot)\nPair | BNB/BTC\nUse all balance | YES\nFee in BNB | YES\nTimeframe | 15m\nOrder type | limit\nCancel by inactivity | YES (7m)\nStop loss | NO\nDynamic trailing | NO\nTrailing Buy | YES (0.007)\nTrailing Sell | YES (0.007)\nStart Buy on signal | YES\nStart Sell on signal | YES\nIndicators | RSI+BB\nBB period | 20\nRSI period | 14\nRSI Buy | 35\nRSI Sell | 77\nSell with profit only | YES (0.7% min)\n\n---\n\nStrategy | Config file\n|----------|:-------------:|\n[Indicators and \"ignore indicators\" feature](FAQ.md#what-means-ignore-buy-sell-signals) | config.json.sample_2\nTested and make profit | YES\nExchange | Binance (spot)\nPair | BNB/BTC\nUse all balance | YES\nFee in BNB | YES\nTimeframe | 15m\nOrder type | market\nStop loss | NO\nDynamic trailing | NO\nTrailing Buy | YES (0.1)\nTrailing Sell | YES (0.2)\nStart Buy on signal | YES\nIgnore Buy signal | YES\nIgnore Buy signal type | times\nIgnore Buy signal times | 6\nIgnore Buy cooldown (sec) | 900\nStart Sell on signal | YES\nIgnore Sell signal | YES\nIgnore Sell signal type | times\nIgnore Sell signal times | 4\nIgnore Sell cooldown (sec) | 900\nIndicators | RSI+BB\nBB period | 20\nRSI period | 14\nRSI Buy | 29\nRSI Sell | 79\nSell with profit only | YES (0.7% min)\nCommon cooldown (sec) | 7200\n\n##### Creating own strategy\n\n\u003e Before do it, please, read the [Docs](#config) and [FAQ](FAQ.md)\n\n##### Example strategy\n\n\u003e BUY on signal, RSI\u003c=35 or/and price\u003e=BB_LOW (timeframe 15m), then start trailing SELL, or wait SELL signal and start trail sell after\n\n\u003e SELL on signal, RSI\u003e=77 or/and price\u003e=BB_UP (timeframe 15m), with minimal or more guaranteed (0.7%) `price_buffer_for_start_sell_on_sell_signal` profit, if price goes up, of course ;)\n\n\u003e While using SELL on sell signal you may insurance risk and set stop loss `use_stop_loss_while_start_sell_on_sell_signal`,  `stop_loss_percent_for_start_sell_on_sell_signal` - WATCH OUT!\n\n\u003e If you don't using SELL signal - stop loss will be equal (sell_trail_step), and will be changed after with `dynamic_trail_enable` help\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex-bormotov%2Faxe-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falex-bormotov%2Faxe-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex-bormotov%2Faxe-bot/lists"}