CryptoPump is a cryptocurrency trading bot that focuses on high speed and flexibility

cryptopump

  • CryptoPump is a cryptocurrency trading bot that focuses on extremely high speed and flexibility. The algorithms utilize Go Language and the exchange WebSockets to react in real-time to market movements based on Bollinger statistical analysis and pre-defined profit margins.

  • CryptoPump calculates the Relative Strength Index (3,7,14) and MACD index, allowing users to configure buying, selling, and holding thresholds.

  • CryptoPump also provides different configuration settings for operating in downmarket, such as specifying the amount to buy in the downmarket when to change purchase behavior and thresholds.

  • CryptoPump supports all cryptocurrency pairs and provides the ability to define the exchange commission when calculating profit and when to sell.

  • CryptoPump also provides DryRun mode, the ability to use Binance TestNet for testing, Telegram bot integration, Time enforcement, Sell-to-cover, and much more.

  • Currently, only the Binance API is supported, but I developed the software to allow easy implementation of additional exchanges.

  • Configure the Binance exchange APIKEY and SECRETKEY in config.yml. In addition, the Telegram APIKEY, if in use, has to be configured at TGBOTAPIKEY in the config.yml file.

  • Telegram accepts command /stop /sell /buy /funds /master

  • CryptoPump requires MySQL to persist data and transactions, and the .sql file to create the structure can be found in the MySQL folder (cryptopump.sql). I use MySQL with Docker in the same machine Cryptopump is running, and it performs well. Cloud-based MySQL instances are also supported. The environment variables are in launch.json if Visual Studio Code is in use; optionally, the following environment variables set DB_USER, DB_PASS, DB_TCP_HOST, DB_PORT, DB_NAME.

  • To use Binance TestNet, set launch.json or environment variable TESTNET to True. (https://testnet.binance.vision)

  • I run CryptoPump in Visual Studio Code, but it can be run without an IDE. For each instance of the code, a new HTTP port is opened, starting with 8080, 8081, 8082. Just point your browser to the address, and you should get the session configuration page and the Bollinger and Exchange data.

*** If you feel like contributing to the project, you are very welcome ***

Comments
  • Websocket issues in debug output

    Websocket issues in debug output

    Seeing this issue in 1.8.0, 1.8.1 and 1.8.1.1 with Go 1.17.5. Maybe this is reason why my Binance funds are not reflected in the dashboard?

    2021/12/17 10:33:55 http: panic serving 192.168.5.30:58941: runtime error: slice bounds out of range [:3] with length 0 goroutine 23 [running]: net/http.(*conn).serve.func1() /usr/local/go/src/net/http/server.go:1802 +0xb9 panic({0x913120, 0xc000029fe0}) /usr/local/go/src/runtime/panic.go:1047 +0x266 github.com/aleibovici/cryptopump/loader.LoadSessionDataAdditionalComponents(0x905cc0, 0xc0001f5860, 0x952ecb) /home/marcus/cryptopump/loader/loader.go:83 +0x12b2 main.(*myHandler).handler(0xc00000e2b8, {0xa05698, 0xc0000f4700}, 0xc0000f3400) /home/marcus/cryptopump/main.go:164 +0x597 net/http.HandlerFunc.ServeHTTP(0x0, {0xa05698, 0xc0000f4700}, 0x0) /usr/local/go/src/net/http/server.go:2047 +0x2f net/http.(*ServeMux).ServeHTTP(0x0, {0xa05698, 0xc0000f4700}, 0xc0000f3400) /usr/local/go/src/net/http/server.go:2425 +0x149 net/http.serverHandler.ServeHTTP({0xc0001f57d0}, {0xa05698, 0xc0000f4700}, 0xc0000f3400) /usr/local/go/src/net/http/server.go:2879 +0x43b net/http.(*conn).serve(0xc0001c4280, {0xa084e0, 0xc0000eb4a0}) /usr/local/go/src/net/http/server.go:1930 +0xb08 created by net/http.(*Server).Serve /usr/local/go/src/net/http/server.go:3034 +0x4e8

    websocket: bad handshake

  • Binance credentials wrong format

    Binance credentials wrong format

    Using Docker approach this messages appears on providing credentials via the Admin page, which worked before in v1.9.0 and before without issues

    cryptopump_app    | DEBU[2022-01-06 09:09:34] github.com/aleibovici/cryptopump/exchange.binanceGetAccount - <APIError> code=-2014, msg=API-key format invalid.  orderID=0 threadID=c7ba7esconks7399tk40
    cryptopump_app    | DEBU[2022-01-06 09:09:34] github.com/aleibovici/cryptopump/exchange.binanceGetAccount - <APIError> code=-2014, msg=API-key format invalid.  orderID=0 threadID=c7ba7esconks7399tk40
    cryptopump_app    | DEBU[2022-01-06 09:09:34] github.com/aleibovici/cryptopump/exchange.binanceGetSymbolFunds - <APIError> code=-2014, msg=API-key format invalid.  orderID=0 threadID=c7ba7esconks7399tk40
    cryptopump_app    | DEBU[2022-01-06 09:09:37] github.com/aleibovici/cryptopump/exchange.binanceGetUserStreamServiceListenKey - <APIError> code=-2014, msg=API-key format invalid.  orderID=0 threadID=c7ba7esconks7399tk40
    cryptopump_app    | DEBU[2022-01-06 09:09:37] github.com/aleibovici/cryptopump/algorithms.WsUserDataServe - <APIError> code=-2014, msg=API-key format invalid.  orderID=0 threadID=c7ba7esconks7399tk40
    
  • Build issue on 1.8.1

    Build issue on 1.8.1

    Getting an build issue on Go 1.6 or 1.7.5 for 1.8.1, 1.8.0 is fine.

    $ go build .
    # github.com/aleibovici/cryptopump/mysql
    mysql/mysql.go:1080:6: GetGlobal redeclared in this block
            previous declaration at mysql/mysql.go:1051:123
    
  • Failed to GetLotSize

    Failed to GetLotSize

    Hey Andre,

    It's much easier speaking here compared to twitter so I hope you don't mind me opening an issue. I got mysql running on my unraid server as docker. I'm able to connect to it and I've imported your .sql file into it like this:

    $ docker exec -i xxxxxxxx mysql -uroot -pthepassword cryptopump < /path/to/cryptopump.sql

    now I'm able to start cryptopump under Visual Studio Code. I have set the Binance API and secret and enabled spot trading.

    Here's my config.yaml:

    config:
      apikey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      apikeytestnet: 
      buy_24hs_highprice_entry: "0.0005"
      buy_24hs_highprice_entry_macd: "20"
      buy_direction_down: "20"
      buy_direction_up: "10"
      buy_macd_entry: "-30"
      buy_macd_upmarket: "10"
      buy_quantity_fiat_down: "50"
      buy_quantity_fiat_init: "50"
      buy_quantity_fiat_up: "50"
      buy_repeat_threshold_down: "0.002"
      buy_repeat_threshold_down_second: "0.002"
      buy_repeat_threshold_down_second_start_count: "2"
      buy_repeat_threshold_up: "0.0001"
      buy_rsi7_entry: "40"
      buy_wait: "60"
      debug: "false"
      dryrun: "true"
      exchange_comission: "0.075"
      exchangename: BINANCE
      exit: "false"
      newsession: "false"
      profit_min: "0.001"
      secretkey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      secretkeytestnet: 
      sellholdonrsi3: "70"
      selltocover: "false"
      sellwaitaftercancel: "10"
      sellwaitbeforecancel: "20"
      symbol: BUSD
      symbol_fiat: BUSD
      symbol_fiat_stash: "100"
      testnet: "false"
      tgbotapikey: 
      time_enforce: "false"
      time_start: 04:00AM
      time_stop: 07:00PM
    
    

    So, when starting up I get:

    `Exception has occurred: panic
    "runtime error: invalid memory address or nil pointer dereference"
    Stack:
    	4  0x0000000001213e34 in github.com/aleibovici/cryptopump/logger.LogEntry.Do
    	    at C:/go/cryptopump-1.6/cryptopump-1.6/logger/logger.go:123
    	5  0x00000000012e4e12 in github.com/aleibovici/cryptopump/functions.StrToFloat64
    	    at C:/go/cryptopump-1.6/cryptopump-1.6/functions/functions.go:42
    	6  0x0000000001325d8b in github.com/aleibovici/cryptopump/exchange.GetLotSize
    	    at C:/go/cryptopump-1.6/cryptopump-1.6/exchange/exchange.go:125
    	7  0x0000000001349dfc in main.execution
    	    at C:/go/cryptopump-1.6/cryptopump-1.6/main.go:530
    	8  0x0000000001348787 in main.(*myHandler).handler·dwrap·1
    	    at C:/go/cryptopump-1.6/cryptopump-1.6/main.go:259
    

    Do you have any idea what might be wrong in this case?

  • handle error code 1001

    handle error code 1001

    Hi Andre,

    Here is a fix for an unhandled error that caused the bot to disconnect from binance server.

    time="2021-08-05 02:44:01" level=debug msg="cryptopump/algorithms.WsKline.func2 - websocket: close 1001 (going away)" orderID=0 threadID=c435ggsrs38slni7mhhg
    time="2021-08-05 04:40:02" level=debug msg="cryptopump/algorithms.WsUserDataServe.func2 - websocket: close 1001 (going away)" orderID=0 threadID=c435ggsrs38slni7mhhg
    

    It is not easy to reproduce the error to verify the fix, not until it happened again at least..

  • Dynamic loading of sessionData

    Dynamic loading of sessionData

    Changes to accomodate dynamic loading of real-time websockets data into html via javascript and a API in /sessiondata. Known bug: plotter widget size when embedded into json object.

The modern cryptocurrency trading bot written in Go.

bbgo A trading bot framework written in Go. The name bbgo comes from the BB8 bot in the Star Wars movie. aka Buy BitCoin Go! Current Status Features E

Jan 2, 2023
A fast cryptocurrency trading bot implemented in Go
A fast cryptocurrency trading bot implemented in Go

A fast cryptocurrency bot framework implemented in Go. Ninjabot permits users to create and test custom strategies for spot markets. ⚠️ Caution: Worki

Jan 1, 2023
A golang implementation of a console-based trading bot for cryptocurrency exchanges
A golang implementation of a console-based trading bot for cryptocurrency exchanges

Golang Crypto Trading Bot A golang implementation of a console-based trading bot for cryptocurrency exchanges. Usage Download a release or directly bu

Jun 4, 2022
Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges
Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges

Kelp Kelp is a free and open-source trading bot for the Stellar universal marketplace and for centralized exchanges such as Binance, Kraken, CoinbaseP

Jan 6, 2023
A telegram bot that fetches multiple RSS cryptocurrency news feeds for sentiment analysis

Crypto News Telegram Bot A simple telegram bot that will help you stay updated on your latest crypto news This bot will help you keep track of the lat

Aug 22, 2021
BlueBot is an open-source trading bot that can be customized to handle specific investment strategies.

BlueBot Quick Note BlueBot and all mentioned services are free to use, including supported financial APIs. Overview BlueBot is a self-healing trading

Sep 7, 2022
Crypto signal trading bot

Crypto-signal-trading-bot Firstly a warning This project has the ability to spen

Dec 15, 2022
Bot-template - A simple bot template for creating a bot which includes a config, postgresql database

bot-template This is a simple bot template for creating a bot which includes a c

Sep 9, 2022
Cryptocurrency implemented using the Go programming language

Nomadcoin Making a Cryptocurrency using the Go programming language. Features Mining Transactions Database Backend Wallets REST API HTML Explorer P2P

Dec 7, 2022
Automated Trader (at). Framework for building trading bots.
Automated Trader (at). Framework for building trading bots.

Automated Trader (at) Purpose: Framework for building automated trading strategies in three steps: Build your own strategy. Verify it with the backtes

Dec 14, 2022
Tripwire is trading platform interface

Tripwire A Golang SDK for binance API. All the REST APIs listed in binance API document are implemented, as well as the websocket APIs. For best compa

Nov 28, 2021
A trading robot, that can submit basic orders in an automated fashion.
A trading robot, that can submit basic orders in an automated fashion.

Source: https://github.com/harunnryd/btrade Issues: https://github.com/harunnryd/btrade/issues Twitter: @harunnryd LinkedIn: @harunnryd btrade is a ro

Jan 26, 2022
A bot based on Telegram Bot API written in Golang allows users to download public Instagram photos, videos, and albums without receiving the user's credentials.

InstagramRobot InstagramRobot is a bot based on Telegram Bot API written in Golang that allows users to download public Instagram photos, videos, and

Dec 16, 2021
Sex-bot - The sex bot and its uncreative responses
Sex-bot - The sex bot and its uncreative responses

Sex Bot The sex bot, made with golang! The sex bot can't hear the word "sexo" he

Nov 11, 2022
Dlercloud-telegram-bot - A Telegram bot for managing your Dler Cloud account

Dler Cloud Telegram Bot A Telegram bot for managing your Dler Cloud account. Usa

Dec 30, 2021
Quote-bot - Un bot utilisant l'API Twitter pour tweeter une citation par jour sur la programmation et les mathématiques.

Description Ceci est un simple bot programmé en Golang qui tweet une citation sur la programmation tout les jours. Ce bot est host sur le compte Twitt

Jan 1, 2022
Discord-bot - A Discord bot with golang

JS discord bots Install Clone repo git clone https://github.com/fu-js/discord-bo

Aug 2, 2022
Bot - Telegram Music Bot in Go

Telegram Music Bot in Go An example bot using gotgcalls. Setup Install the serve

Jun 28, 2022
Pro-bot - A telegram bot to play around with the community telegram channels

pro-bot ?? Pro Bot A Telegram Bot to Play Around With The Community Telegram Cha

Jan 24, 2022