{"id":13713281,"url":"https://github.com/thrasher-corp/gocryptotrader","last_synced_at":"2025-05-16T08:03:47.444Z","repository":{"id":22527789,"uuid":"25868356","full_name":"thrasher-corp/gocryptotrader","owner":"thrasher-corp","description":"A cryptocurrency trading bot and framework supporting multiple exchanges written in Golang.","archived":false,"fork":false,"pushed_at":"2025-05-09T04:52:11.000Z","size":60290,"stargazers_count":3194,"open_issues_count":73,"forks_count":839,"subscribers_count":148,"default_branch":"master","last_synced_at":"2025-05-09T05:29:40.058Z","etag":null,"topics":["algorithmic-trading","algorithmic-trading-library","cryptocurrency","cryptocurrency-trading-bot","exchange","go","golang","trading-bot","trading-framework","trading-platform"],"latest_commit_sha":null,"homepage":"","language":"Go","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/thrasher-corp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-10-28T12:32:15.000Z","updated_at":"2025-05-09T04:52:15.000Z","dependencies_parsed_at":"2025-05-09T05:36:04.650Z","dependency_job_id":null,"html_url":"https://github.com/thrasher-corp/gocryptotrader","commit_stats":{"total_commits":1911,"total_committers":94,"mean_commits":"20.329787234042552","dds":0.7237048665620094,"last_synced_commit":"afb6f75d8845f1de093ca5a7ba90f45962b1e3c9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thrasher-corp%2Fgocryptotrader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thrasher-corp%2Fgocryptotrader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thrasher-corp%2Fgocryptotrader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thrasher-corp%2Fgocryptotrader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thrasher-corp","download_url":"https://codeload.github.com/thrasher-corp/gocryptotrader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493381,"owners_count":22080126,"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","algorithmic-trading-library","cryptocurrency","cryptocurrency-trading-bot","exchange","go","golang","trading-bot","trading-framework","trading-platform"],"created_at":"2024-08-02T23:01:31.424Z","updated_at":"2025-05-16T08:03:47.395Z","avatar_url":"https://github.com/thrasher-corp.png","language":"Go","funding_links":[],"categories":["Go","Trading Bots and Bot Frameworks","Repositories","Golang","Crypto Quant"],"sub_categories":["Derivative Exchanges","Trading \u0026 Backtesting"],"readme":"\u003cimg src=\"/common/gctlogo.png?raw=true\" width=\"350px\" height=\"350px\" hspace=\"70\"\u003e\n\n[![Build Status](https://github.com/thrasher-corp/gocryptotrader/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/thrasher-corp/gocryptotrader/actions/workflows/tests.yml)\n[![Software License](https://img.shields.io/badge/License-MIT-orange.svg?style=flat-square)](https://github.com/thrasher-corp/gocryptotrader/blob/master/LICENSE)\n[![GoDoc](https://godoc.org/github.com/thrasher-corp/gocryptotrader?status.svg)](https://godoc.org/github.com/thrasher-corp/gocryptotrader)\n[![Coverage Status](https://codecov.io/gh/thrasher-corp/gocryptotrader/graph/badge.svg?token=41784B23TS)](https://codecov.io/gh/thrasher-corp/gocryptotrader)\n[![Go Report Card](https://goreportcard.com/badge/github.com/thrasher-corp/gocryptotrader)](https://goreportcard.com/report/github.com/thrasher-corp/gocryptotrader)\n\nA cryptocurrency trading bot supporting multiple exchanges written in Golang.\n\n**Please note that this bot is under development and is not ready for production!**\n\n## Community\n\nJoin our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://join.slack.com/t/gocryptotrader/shared_invite/enQtNTQ5NDAxMjA2Mjc5LTc5ZDE1ZTNiOGM3ZGMyMmY1NTAxYWZhODE0MWM5N2JlZDk1NDU0YTViYzk4NTk3OTRiMDQzNGQ1YTc4YmRlMTk)\n\n## Exchange Support Table\n\n| Exchange | REST API | Streaming API | FIX API |\n|----------|------|-----------|-----|\n| Alphapoint | Yes  | Yes        | NA  |\n| Binance.US| Yes  | Yes        | NA  |\n| Binance| Yes  | Yes        | NA  |\n| Bitfinex | Yes  | Yes        | NA  |\n| Bitflyer | Yes  | No      | NA  |\n| Bithumb | Yes  | Yes       | NA  |\n| BitMEX | Yes | Yes | NA |\n| Bitstamp | Yes  | Yes       | No  |\n| BTCMarkets | Yes | Yes       | NA  |\n| BTSE | Yes | Yes | NA |\n| Bybit | Yes | Yes | NA |\n| CoinbasePro | Yes | Yes | No|\n| COINUT | Yes | Yes | NA |\n| Deribit | Yes | Yes | No |\n| Exmo | Yes | NA | NA |\n| GateIO | Yes | Yes | NA |\n| Gemini | Yes | Yes | No |\n| HitBTC | Yes | Yes | No |\n| Huobi.Pro | Yes | Yes | NA |\n| Kraken | Yes | Yes | NA |\n| Kucoin | Yes | Yes | NA |\n| Lbank | Yes | No | NA |\n| Okx | Yes | Yes | NA |\n| Poloniex | Yes | Yes | NA |\n| Yobit | Yes | NA | NA |\n\nWe are aiming to support the top 30 exchanges sorted by average liquidity as [ranked by CoinMarketCap](https://coinmarketcap.com/rankings/exchanges/). \nHowever, we welcome pull requests for any exchange which does not match this criterion. If you need help with this, please join us on [Slack](https://join.slack.com/t/gocryptotrader/shared_invite/enQtNTQ5NDAxMjA2Mjc5LTc5ZDE1ZTNiOGM3ZGMyMmY1NTAxYWZhODE0MWM5N2JlZDk1NDU0YTViYzk4NTk3OTRiMDQzNGQ1YTc4YmRlMTk).\n\n** NA means not applicable as the exchange does not support the feature.\n\n## Current Features\n\n+ Support for all exchange fiat and digital currencies, with the ability to individually toggle them on/off.\n+ AES256 encrypted config file.\n+ REST API support for all exchanges.\n+ Websocket support for applicable exchanges.\n+ Ability to turn off/on certain exchanges.\n+ Communication packages (Slack, SMS via SMSGlobal, Telegram and SMTP).\n+ HTTP rate limiter package.\n+ Unified API for exchange usage.\n+ Customisation of HTTP client features including setting a proxy, user agent and adjusting transport settings.\n+ NTP client package.\n+ Database support (Postgres and SQLite3). See [database](/database/README.md).\n+ OTP generation tool. See [gen otp](/cmd/gen_otp).\n+ Connection monitor package.\n+ gRPC service and JSON RPC proxy. See [gRPC service](/gctrpc/README.md).\n+ gRPC client. See [gctcli](/cmd/gctcli/README.md).\n+ Forex currency converter packages (CurrencyConverterAPI, CurrencyLayer, Exchange Rates, Fixer.io, OpenExchangeRates, Exchange Rate Host).\n+ Packages for handling currency pairs, tickers and orderbooks.\n+ Portfolio management tool; fetches balances from supported exchanges and allows for custom address tracking.\n+ Basic event trigger system.\n+ OHLCV/Candle retrieval support. See [OHLCV](/docs/OHLCV.md).\n+ Scripting support. See [gctscript](/gctscript/README.md).\n+ Recent and historic trade processing. See [trades](/exchanges/trade/README.md).\n+ Backtesting application. An event-driven backtesting tool to test and iterate trading strategies using historical or custom data. See [backtester](/backtester/README.md).\n+ WebGUI (discontinued).\n+ Exchange HTTP mock testing. See [mock](/exchanges/mock/README.md).\n+ Exchange multichain deposits and withdrawals for specific exchanges. See [multichain transfer support](/docs/MULTICHAIN_TRANSFER_SUPPORT.md).\n\n## Development Tracking\n\nOur [Kanban board](https://github.com/orgs/thrasher-corp/projects/3) provides updates on:\n\n+ New feature development\n+ Bug fixes in progress\n+ Recently completed work\n+ Contribution opportunities\n\nFollow our progress as we continuously improve GoCryptoTrader.\n\n## Contribution\n\nPlease feel free to submit any pull requests or suggest any desired features to be added.\n\nWhen submitting a PR, please abide by our coding guidelines:\n\n+ Code must adhere to the official Go [formatting](https://golang.org/doc/effective_go.html#formatting) guidelines (i.e. uses [gofmt](https://golang.org/cmd/gofmt/)).\n+ Code must be documented adhering to the official Go [commentary](https://golang.org/doc/effective_go.html#commentary) guidelines.\n+ Code must adhere to our [coding style](https://github.com/thrasher-corp/gocryptotrader/blob/master/.github/CONTRIBUTING.md).\n+ Pull requests need to be based on and opened against the `master` branch.\n\n## Compiling and Running instructions\n\nDownload and install Go from [Go Downloads](https://golang.org/dl/) for your platform.\n\n### Linux/macOS\n\n```bash\ngit clone https://github.com/thrasher-corp/gocryptotrader.git\ncd gocryptotrader\ngo build\nmkdir ~/.gocryptotrader\ncp config_example.json ~/.gocryptotrader/config.json\n```\n\n### Windows\n\n```bash\ngit clone https://github.com/thrasher-corp/gocryptotrader.git\ncd gocryptotrader\ngo build\nmkdir %AppData%\\GoCryptoTrader\ncopy config_example.json %APPDATA%\\GoCryptoTrader\\config.json\n```\n\n+ Make any necessary changes to the `config.json` file.\n+ Run the `gocryptotrader` binary file.\n\n### Sonic JSON handling\n\nGoCryptoTrader can optionally use the [Sonic](https://github.com/bytedance/sonic) JSON library for improved performance, as a drop in replacement for golang.org/encoding/json.\nPlease see sonic [Requirements](https://github.com/bytedance/sonic/#requirement) for supported platforms.\n\nTo enable sonic, build with the sonic_on tag:\n\n```bash\ngo build -tags=sonic_on\n```\n\n## Donations\n\n\u003cimg src=\"https://github.com/thrasher-corp/gocryptotrader/blob/master/web/src/assets/donate.png?raw=true\" hspace=\"70\"\u003e\n\nIf this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:\n\n***bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc***\n\n## Binaries\n\nBinaries will be published once the codebase reaches a stable condition.\n\n## Contributor List\n\n### A very special thank you to all who have contributed to this program:\n\n|User|Contribution Amount|\n|--|--|\n| [thrasher-](https://github.com/thrasher-) | 711 |\n| [dependabot[bot]](https://github.com/apps/dependabot) | 369 |\n| [shazbert](https://github.com/shazbert) | 362 |\n| [gloriousCode](https://github.com/gloriousCode) | 237 |\n| [gbjk](https://github.com/gbjk) | 125 |\n| [dependabot-preview[bot]](https://github.com/apps/dependabot-preview) | 88 |\n| [xtda](https://github.com/xtda) | 47 |\n| [lrascao](https://github.com/lrascao) | 27 |\n| [Beadko](https://github.com/Beadko) | 24 |\n| [ydm](https://github.com/ydm) | 15 |\n| [vazha](https://github.com/vazha) | 15 |\n| [Rots](https://github.com/Rots) | 15 |\n| [ermalguni](https://github.com/ermalguni) | 14 |\n| [MadCozBadd](https://github.com/MadCozBadd) | 13 |\n| [samuael](https://github.com/samuael) | 11 |\n| [vadimzhukck](https://github.com/vadimzhukck) | 10 |\n| [geseq](https://github.com/geseq) | 8 |\n| [marcofranssen](https://github.com/marcofranssen) | 8 |\n| [140am](https://github.com/140am) | 8 |\n| [junnplus](https://github.com/junnplus) | 8 |\n| [TaltaM](https://github.com/TaltaM) | 6 |\n| [cranktakular](https://github.com/cranktakular) | 6 |\n| [dackroyd](https://github.com/dackroyd) | 5 |\n| [khcchiu](https://github.com/khcchiu) | 5 |\n| [yangrq1018](https://github.com/yangrq1018) | 4 |\n| [woshidama323](https://github.com/woshidama323) | 3 |\n| [crackcomm](https://github.com/crackcomm) | 3 |\n| [azhang](https://github.com/azhang) | 2 |\n| [if1live](https://github.com/if1live) | 2 |\n| [lozdog245](https://github.com/lozdog245) | 2 |\n| [Asalei](https://github.com/Asalei) | 2 |\n| [soxipy](https://github.com/soxipy) | 2 |\n| [tk42](https://github.com/tk42) | 2 |\n| [herenow](https://github.com/herenow) | 2 |\n| [mshogin](https://github.com/mshogin) | 2 |\n| [andreygrehov](https://github.com/andreygrehov) | 2 |\n| [bretep](https://github.com/bretep) | 2 |\n| [Christian-Achilli](https://github.com/Christian-Achilli) | 2 |\n| [dsinuela-taurus](https://github.com/dsinuela-taurus) | 2 |\n| [cornelk](https://github.com/cornelk) | 2 |\n| [gam-phon](https://github.com/gam-phon) | 2 |\n| [MarkDzulko](https://github.com/MarkDzulko) | 2 |\n| [romanornr](https://github.com/romanornr) | 2 |\n| [mortensorensen](https://github.com/mortensorensen) | 1 |\n| [cavapoo2](https://github.com/cavapoo2) | 1 |\n| [tongxiaofeng](https://github.com/tongxiaofeng) | 1 |\n| [tonywangcn](https://github.com/tonywangcn) | 1 |\n| [varunbhat](https://github.com/varunbhat) | 1 |\n| [idealhack](https://github.com/idealhack) | 1 |\n| [hannut91](https://github.com/hannut91) | 1 |\n| [vyloy](https://github.com/vyloy) | 1 |\n| [arttobe](https://github.com/arttobe) | 1 |\n| [shoman4eg](https://github.com/shoman4eg) | 1 |\n| [cangqiaoyuzhuo](https://github.com/cangqiaoyuzhuo) | 1 |\n| [whilei](https://github.com/whilei) | 1 |\n| [yuhangcangqian](https://github.com/yuhangcangqian) | 1 |\n| [phieudu241](https://github.com/phieudu241) | 1 |\n| [snipesjr](https://github.com/snipesjr) | 1 |\n| [snussik](https://github.com/snussik) | 1 |\n| [taewdy](https://github.com/taewdy) | 1 |\n| [threehonor](https://github.com/threehonor) | 1 |\n| [xiiiew](https://github.com/xiiiew) | 1 |\n| [antonzhukov](https://github.com/antonzhukov) | 1 |\n| [blombard](https://github.com/blombard) | 1 |\n| [CodeLingoBot](https://github.com/CodeLingoBot) | 1 |\n| [CodeLingoTeam](https://github.com/CodeLingoTeam) | 1 |\n| [Daanikus](https://github.com/Daanikus) | 1 |\n| [daniel-cohen](https://github.com/daniel-cohen) | 1 |\n| [merkeld](https://github.com/merkeld) | 1 |\n| [shanhuhai5739](https://github.com/shanhuhai5739) | 1 |\n| [DirectX](https://github.com/DirectX) | 1 |\n| [dnldd](https://github.com/dnldd) | 1 |\n| [Juneezee](https://github.com/Juneezee) | 1 |\n| [fclairamb](https://github.com/fclairamb) | 1 |\n| [frankzougc](https://github.com/frankzougc) | 1 |\n| [gemscng](https://github.com/gemscng) | 1 |\n| [Jdpurohit](https://github.com/Jdpurohit) | 1 |\n| [jimexist](https://github.com/jimexist) | 1 |\n| [lookfirst](https://github.com/lookfirst) | 1 |\n| [zeldrinn](https://github.com/zeldrinn) | 1 |\n| [mattkanwisher](https://github.com/mattkanwisher) | 1 |\n| [mgravitt](https://github.com/mgravitt) | 1 |\n| [mKurrels](https://github.com/mKurrels) | 1 |\n| [m1kola](https://github.com/m1kola) | 1 |\n| [idoall](https://github.com/idoall) | 1 |\n| [starit](https://github.com/starit) | 1 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthrasher-corp%2Fgocryptotrader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthrasher-corp%2Fgocryptotrader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthrasher-corp%2Fgocryptotrader/lists"}