https://github.com/saniales/golang-crypto-trading-bot
  
  
    A golang implementation of a console-based trading bot for cryptocurrency exchanges 
    https://github.com/saniales/golang-crypto-trading-bot
  
binance bittrex cryptocurrency-exchanges exchange go golang poloniex simulation-mode strategy trading-bot trading-strategies yobit
        Last synced: 6 months ago 
        JSON representation
    
A golang implementation of a console-based trading bot for cryptocurrency exchanges
- Host: GitHub
 - URL: https://github.com/saniales/golang-crypto-trading-bot
 - Owner: saniales
 - License: gpl-3.0
 - Created: 2017-05-14T22:11:41.000Z (over 8 years ago)
 - Default Branch: main
 - Last Pushed: 2025-04-22T19:36:27.000Z (7 months ago)
 - Last Synced: 2025-05-11T08:52:53.070Z (6 months ago)
 - Topics: binance, bittrex, cryptocurrency-exchanges, exchange, go, golang, poloniex, simulation-mode, strategy, trading-bot, trading-strategies, yobit
 - Language: Go
 - Homepage:
 - Size: 3.14 MB
 - Stars: 1,120
 - Watchers: 40
 - Forks: 257
 - Open Issues: 5
 - 
            Metadata Files:
            
- Readme: README.md
 - Funding: .github/FUNDING.yml
 - License: LICENSE
 
 
Awesome Lists containing this project
- awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building)
 - awesome-Char - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building / Contents)
 - awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building)
 - fucking-awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building)
 - awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building)
 - awesome-go - Golang CryptoTrading Bot - based trading bot for cryptocurrency exchanges. | 181 | 41 | 10 | (Bot Building)
 - awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. Stars:`1.1K`. (Bot Building)
 - awesome-golang-repositories - golang-crypto-trading-bot - based trading bot for cryptocurrency exchanges (Repositories)
 - awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building)
 - awesome-go - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. - :arrow_down:0 - :star:67 (Bot Building)
 - awesome-go-cn - Golang CryptoTrading Bot
 - awesome-go-extra - golang-crypto-trading-bot - based trading bot for cryptocurrency exchanges|813|213|11|2017-05-14T22:11:41Z|2022-05-18T08:07:42Z| (Bot Building / Free e-books)
 - awesome-go-with-stars - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. (Bot Building)
 - awesome-go-cn - Golang CryptoTrading Bot - crypto-trading-bot) (Bot建设)
 - awesome-go-plus - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges.  (Bot Building)
 - awesome-go-plus - Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges.  (Bot Building)
 
README
          
# Golang Crypto Trading Bot
A golang implementation of a console-based trading bot for cryptocurrency exchanges.
## Usage
Download a release or directly build the code from this repository.
``` bash
go get github.com/saniales/golang-crypto-trading-bot
```
If you need to, you can create a strategy and bind it to the bot:
``` go
import bot "github.com/saniales/golang-crypto-trading-bot/cmd"
func main() {
    bot.AddCustomStrategy(examples.MyStrategy)
    bot.Execute()
}
```
For strategy reference see the [Godoc documentation](https://godoc.org/github.com/saniales/golang-crypto-trading-bot).
## Simulation Mode
If enabled, the bot will do paper trading, as it will execute fake orders in a sandbox environment.
A Fake balance for each coin must be specified for each exchange if simulation mode is enabled.
## Supported Exchanges
| Exchange Name | REST Supported    | Websocket Support |
| ------------- |------------------ | ----------------- |
| Bittrex       | Yes               | No                |
| Poloniex      | Yes               | Yes               |
| Kraken        | Yes (no withdraw) | No                |
| Bitfinex      | Yes               | Yes               |
| Binance       | Yes               | Yes               |
| Kucoin        | Yes               | No                |
| HitBtc        | Yes               | Yes               |
## Configuration file template
Create a configuration file from this example or run the `init` command of the compiled executable.
``` yaml
simulation_mode: true # if you want to enable simulation mode.
exchange_configs:
  - exchange: bitfinex
    public_key: bitfinex_public_key
    secret_key: bitfinex_secret_key
    deposit_addresses:
      BTC: bitfinex_deposit_address_btc
      ETH: bitfinex_deposit_address_eth
      ZEC: bitfinex_deposit_address_zec
    fake_balances: # used only if simulation mode is enabled, can be omitted if not enabled.
      BTC: 100
      ETH: 100
      ZEC: 100
      ETC: 100
  - exchange: hitbtc
    public_key: hitbtc_public_key
    secret_key: hitbtc_secret_key
    deposit_addresses:
      BTC : hitbtc_deposit_address_btc
      ETH: hitbtc_deposit_address_eth
      ZEC: hitbtc_deposit_address_zec
    fake_balances:
      BTC: 100
      ETH: 100
      ZEC: 100
      ETC: 100
strategies:
  - strategy: strategy_name
    markets:
      - market: ETH-BTC
        bindings:
        - exchange: bitfinex
          market_name: ETHBTC
        - exchange: hitbtc
          market_name: ETHBTC
      - market: ZEC-BTC
        bindings:
        - exchange: bitfinex
          market_name: ZECBTC
        - exchange: hitbtc
          market_name: ZECBTC
      - market: ETC-BTC
        bindings:
        - exchange: bitfinex
          market_name: ETCBTC
        - exchange: hitbtc
          market_name: ETCBTC
```
## Donate
Feel free to donate:
| METHOD  | ADDRESS                                     |
|-------- |-------------------------------------------- |
| Paypal  | https://paypal.me/AlessandroSanino          |
| BTC     | 1DVgmv6jkUiGrnuEv1swdGRyhQsZjX9MT3          |
| XVG     | DFstPiWFXjX8UCyUCxfeVpk6JkgaLBSNvS          |
| ETH     | 0x2fe7bd8a41e91e9284aada0055dbb15ecececf02  |
| USDT    | 18obCEVmbT6MHXDcPoFwnUuCmkttLbK5Xo          |