{"id":35227930,"url":"https://github.com/kieran-mackle/cryptobots","last_synced_at":"2026-04-08T14:32:35.079Z","repository":{"id":226857259,"uuid":"766332916","full_name":"kieran-mackle/cryptobots","owner":"kieran-mackle","description":"A collection of command-line deployable trading bots","archived":false,"fork":false,"pushed_at":"2024-03-25T10:18:24.000Z","size":427,"stargazers_count":34,"open_issues_count":0,"forks_count":12,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-17T20:36:24.391Z","etag":null,"topics":["bot","crypto","python","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/kieran-mackle.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,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-03T00:52:15.000Z","updated_at":"2025-11-10T17:49:40.000Z","dependencies_parsed_at":"2024-03-10T07:30:07.298Z","dependency_job_id":"fe21a32c-d5f2-4c88-9fbf-b0916445cc42","html_url":"https://github.com/kieran-mackle/cryptobots","commit_stats":null,"previous_names":["kieran-mackle/cryptobots"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/kieran-mackle/cryptobots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kieran-mackle%2Fcryptobots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kieran-mackle%2Fcryptobots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kieran-mackle%2Fcryptobots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kieran-mackle%2Fcryptobots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kieran-mackle","download_url":"https://codeload.github.com/kieran-mackle/cryptobots/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kieran-mackle%2Fcryptobots/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31559808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["bot","crypto","python","trading"],"created_at":"2025-12-30T01:43:54.316Z","updated_at":"2026-04-08T14:32:34.977Z","avatar_url":"https://github.com/kieran-mackle.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://pypi.org/project/cryptobots\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/kieran-mackle/cryptobots/main/docs/logo.png\" alt=\"CryptoBots logo\"\u003e\n\u003c/a\u003e\n\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://pypi.org/project/cryptobots\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/cryptobots.svg?color=blue\u0026style=plastic\" alt=\"Latest version\" width=95 height=20\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/project/cryptobots\"\u003e\n    \u003cimg src=\"https://pepy.tech/badge/cryptobots\" alt=\"Total downloads\" \u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/psf/black\"\u003e\n    \u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nDon't pay for a crypto algo-trading service when you can do the same thing for free \nwith CryptoBots! CryptoBots is an open-source Python package with pre-built trading \nstrategies ready to be deployed on your favourite crypto exchanges.\nIt is built on [AutoTrader](https://github.com/kieran-mackle/AutoTrader) and designed\nprimarily to be used as a command-line tool, making it easy to configure and deploy\ntrading bots on your very own computer.\n\n\u003cimg src=\"https://github.com/kieran-mackle/cryptobots/assets/60687606/47b88dea-5d67-4d28-b5b8-3872e734181b\" width=100%\u003e\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eContents\u003c/b\u003e\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#trading-strategies\"\u003eStrategies\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#frequently-asked-questions\"\u003eFAQ\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#supporting-cryptobots\"\u003eSupporting CryptoBots\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#disclaimer\"\u003eDisclaimer\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n## Trading Strategies\nCryptoBots currently includes the strategies listed below.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eCash and carry bot\u003c/b\u003e\u003c/summary\u003e\n    This bot seeks to earn perpetual futures funding rates whilst in a hedged position, by\n    buying a token on the spot market, and shorting the perpetual future of the token. This\n    protects against price volatility, whilst capturing the funding rate paid out by the\n    perpetual futures market.\u003cbr\u003e\n    To identify potential tokens to trade with this strategy, use \u003ccode\u003ecryptobots cash-and-carry\u003c/code\u003e.\n    You will see something like this:\u003cbr\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/kieran-mackle/cryptobots/development/docs/cash-and-carry.png\" alt=\"CryptoBots cash and carry command\"\u003e\n    \u003cbr\u003eFrom here, you will be asked if you want to deploy a bot to take advantage of these opportunities!\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eBreakout bot\u003c/b\u003e\u003c/summary\u003e\n    This bot is perfect for trading trending tokens using a breakout strategy.\u003cbr\u003e\u003cbr\u003e\n    The strategy works by making an initial trade in the direction of the trend, \n    determined using an exponential moving average. However, if price moves against the \n    open position by a certain amount, the position direction will be reversed. This \n    makes the assumption that a trend is coming up, and price will not remain within the \n    bounds set by the stop loss distance.\u003cbr\u003e\u003cbr\u003e\n    If you are feeling extra certain about an impending trend, you can increase the size\n    multilpier, so that losses are recovered quicker.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eEMA crossover trading bot\u003c/b\u003e\u003c/summary\u003e\n    This bot will trade trends by using the EMA crossover strategy. Below are some backtest\n    results on ETH.\u003cbr\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/kieran-mackle/cryptobots/main/docs/emac-backtest.png\" alt=\"CryptoBots EMA crossover backtest chart\"\u003e\n    \u003cpre\u003e\n    ----------------------------------------------\n                  Trading Results\n    ----------------------------------------------\n    Start date:              Jan 01 2024 01:00:00\n    End date:                Mar 04 2024 00:00:00\n    Duration:                62 days 23:00:00\n    Starting balance:        $1000.0\n    Ending balance:          $1034.91\n    Ending NAV:              $1036.92\n    Total return:            $34.91 (3.5%)\n    Maximum drawdown:        -1.86%\n    Total no. trades:        40\n    No. long trades:         20\n    No. short trades:        20\n    Total fees paid:         $0.0\n    Total volume traded:     $4021.61\n    Average daily volume:    $64.86\n    Positions still open:    1\n    \u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eGrid Bot\u003c/b\u003e\u003c/summary\u003e\n    This bot will buy and/or sell at set grid levels. When you expect market conditions\n    to be choppy and sideways-moving, a long/short grid works best. In this scenario, the\n    bot will buy when price dips, and sell when price rises. When you expect the market to\n    be trending (up or down!), a one-directional grid works best. In this case, the bot \n    will act as a trend-follower with a trailing stop loss at each new grid level.\n    Below is a backtest from running the grid bot in long trend mode on ETH/USDT \n    perpetual from February 1st to March 9th 2024.\u003cbr\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/kieran-mackle/cryptobots/main/docs/grid-backtest.png\" alt=\"CryptoBots grid bot backtest chart\"\u003e\n    \u003cpre\u003e\n    ----------------------------------------------\n                  Trading Results\n    ----------------------------------------------\n    Start date:              Feb 01 2024 00:01:00\n    End date:                Mar 09 2024 00:00:00\n    Duration:                36 days 23:59:00\n    Starting balance:        $1000.0\n    Ending balance:          $1243.92\n    Ending NAV:              $1242.28\n    Total return:            $243.92 (24.4%)\n    Maximum drawdown:        -13.12%\n    Total no. trades:        238\n    No. long trades:         120\n    No. short trades:        118\n    Total fees paid:         $0.0\n    Total volume traded:     $34782.46\n    Average daily volume:    $966.18\n    \u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eRange Bound Grid Bot\u003c/b\u003e\u003c/summary\u003e\n    This is similar to the grid bot above, but it is configured by specifying the\n    upper and lower price bounds of the grid directly. It is also only for neutral grids (long\n    and short trading about a reference price). Since this is a mean reversion strategy,\n    only limit orders are used for trade entries. It is a bit more intuitive to set up, and\n    allows you to specify the maximum position size and total number of grid levels.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eTWAP Bot\u003c/b\u003e\u003c/summary\u003e\n    This bot will buy a chunk of tokens every update period until the\n    target position is reached. Useful for splitting up a large position\n    into smaller trades to avoid slippage.\n\u003c/details\u003e\n\n\n### Coming soon\nThe following strategies will be added soon.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eEMA mean reversion bot\u003c/b\u003e\u003c/summary\u003e\n    This bot will use limit orders to trade around a dynamic mean price, capturing\n    market fluctuations on short timeframes.\n\u003c/details\u003e\n\n\n### Suggest a strategy\nHave a strategy idea you think might make a good addition to CryptoBots? Suggest it using the\nrepository's issues.\n\n\u003cp align=\"right\"\u003e[\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e]\u003c/p\u003e\n\n\n## Featured Exchanges\n\nCryptoBots has been tested on the following exchanges. It *should* work on others too, but I am\nyet to do extensive testing on them. More will be added soon!\n\n| Exchange | Referral code |\n| -------- | ------------- |\n| [Bybit](https://www.bybit.com/invite?ref=7NDOBW)    | 7NDOBW |\n\n\n\u003cp align=\"right\"\u003e[\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e]\u003c/p\u003e\n\n\n## Other Features\n\n### User-defined strategies\nCryptoBots can also be used as a convenient tool to deploy your own \n[AutoTrader](https://github.com/kieran-mackle/AutoTrader) bots. To do so, use the \n`cryptobots configure` method to add the path to your project directory. Then, when you\nare ready to deploy a bot, specify the project name using the `--project` argument in\nthe `cryptobots run` command.\n\n\n## Getting Started\n### Installation\nCryptoBots can be installed from [PyPi](https://pypi.org/project/cryptobots) using `pip install`:\n\n```\npip install cryptobots\n```\n\nOnce installed, you will have access to the `cryptobots` command line interface. See the usage \nguide below for more.\n\n\n### Usage\nCryptoBots is primarily a command-line based tool. Once installed, you will be able to use the\n`cryptobots` command line interface from your terminal.\nIf you type `cryptobots`, you will see a list of commands available.\n\n**Configuration**\n\nThe first thing you want to do is run `cryptobots configure`, which will set up your cryptobots\nhome directory and prompt you to add your exchange API keys. You need to do this before you can\ntrade.\n\n**Available strategies**\n\nTo see the strategies cryptobots has available, run the `cryptobots strategies` command. This\nwill list all available strategies and give you a description of what each one does.\n\n**Deploying a strategy**\n\nTo deploy a strategy, use the `cryptobots run` command, and follow the prompts.\n\n\n**Stopping a strategy**\n\nTo stop a strategy, use the `cryptobots stop` command, and follow the prompts.\n\n\n**Backtesting a strategy**\n\nTo backtest a strategy, use the `cryptobots backtest` command, and follow the prompts.\n\n\n\u003cp align=\"right\"\u003e[\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e]\u003c/p\u003e\n\n\n\n## Frequently asked questions\n\nBelow are some common questions you might have about Cryptobots.\nIf you have any other questions, feel free to raise an issue.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eWhy should I use CryptoBots?\u003c/b\u003e\u003c/summary\u003e\nCryptoBots has been designed to be as easy to use as possible. If you want to start\ntrading crypto but aren't sure where to start, CryptoBots is for you. If you want to\nstart algotrading, CryptoBots is for you. If you already know how to trade and how to \nwrite Python code, CryptoBots is for you - it is easy to add your own strategy and use\nCryptoBots as a nice deployment framework.\u003cbr\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eAre my API keys safe?\u003c/b\u003e\u003c/summary\u003e\nYes! When you set up CryptoBots and enter your exchange API keys, they get\nstored on your computer in the `.cryptobots/` folder of your home directory (unless \nyou specify a different location). This is where they stay. Make sure to follow general\ncyber security practices and you should be fine. Never share your keys online!\u003cbr\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eDo I need to know how to code?\u003c/b\u003e\u003c/summary\u003e\nNo! The trading strategies have been written for you! Simply deploy them using the \ncommand line interface as described above.\u003cbr\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eWhere should I run CryptoBots?\u003c/b\u003e\u003c/summary\u003e\nYou can run CryptoBots on any regular computer - you just need to have Python installed.\u003cbr\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eHow much money should I trade with?\u003c/b\u003e\u003c/summary\u003e\nThat is entirely up to you - start with a small amount you are comfortable with, then you can \nincrease it as you see fit. Where possible, the bots will check to make sure you have enough\nmoney in your account before trading, based on the strategy configuration provided.\u003cbr\u003e\n\u003c/details\u003e\n\n\u003cp align=\"right\"\u003e[\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e]\u003c/p\u003e\n\n\n## Supporting CryptoBots\nIf you like this project, please show your support by using any of my referal links\nshown above. \nThe exchanges are running promotional programs most of the time, so by using my code, we \nboth benefit. For example, sign up to Bybit using the referral code above, and receive up to \n25 USDT for free! See [here](https://announcements.bybit.com/article/referral-program-2-0-reloaded-with-up-to-1-025-usdt-in-rewards-and-30-commission--blt79dbff8af04c511a/) for more information.\n\nIf you really like the project, please conisdering sharing it - the more popular it is, the more time I will\ninvest into adding more strategies.\n\n\u003cp align=\"right\"\u003e[\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e]\u003c/p\u003e\n\n\n## Disclaimer\n\nThis software is for educational purposes only. Use it at your own risk. The author assumes no\nresponsibility for your trading results. Do not risk money that you are afraid to lose. There \nmight be bugs in the code - this software does not come with any warranty.\n\n\u003cp align=\"right\"\u003e[\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e]\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkieran-mackle%2Fcryptobots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkieran-mackle%2Fcryptobots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkieran-mackle%2Fcryptobots/lists"}