A cryptocurrency trading bot supporting kraken futures written in Golang.
- Support for sending any order on kraken futures (mkt, lmt, etc...)
- Support trading on kraken futures using stop loss & take profit indicator
- REST API support for kraken futures
- Websocket API support for kraken futures
- JWT Token auth support with deleting token on logout from device
- Telegram bot
- Swagger documentation
- Support multiple kraken api tokens
Exchange | REST API | Streaming API |
---|---|---|
Kraken futures demo | Yes | Yes |
Kraken futures | Yes | Yes |
-
git clone {this repo} cd {this repo}/course_project/trade-bot
-
server: port: (int) websocket: readBufferSize: (int) 1024 by derfault writeBufferSize: (int) 1024 by default checkOrigin: (true | false) true by default client: # url of server url: (string) example - http://localhost:8000 telegram: apiToken: (string) your telegram api token from bot father webhookUrl: (string) example service for webhooks - ngrok postgreDatabase: host: (string) example - localhost port: (string) eample - 8000 username: (string) dbname: (string) sslmode: (string) redisDatabase: host: (string) example - localhost port: (string) password: (string) kraken: apiurl: (string) krakenWS: requests: writeWaitInSeconds: (int) 10 by default pongWaitInSeconds: (int) 60 by default pingPeriodInSeconds: (int) 10 by default maxMessageSize: (int) 512 by default kraken: wsapiurl: (string)
-
DB_PASSWORD = (your postgres db password) JWT_ACCESS_SIGNING_KEY = (key for signing jwt tokens) PUBLIC_API_KEY = (public key from kraken futures) PRIVATE_API_KEY = (private key from kraken futures)
-
# Example using docker docker pull postgres docker run --name postgres -e POSTGRES_PASSWORD='qwerty' -p 5432:5432 -d postgres
-
# Example using docker docker pull redis docker run --name redis -p 6379:6379 -d redis
-
migrate installation
-
curl -s https://packagecloud.io/install/repositories/golang-migrate/migrate/script.deb.sh | sudo bash apt-get update apt-get install -y migrate
-
run migrate
-
migrate -path ./migrations -database 'postgres://{postgres_username}:{postgres_password}@{host}:{port}/postgres?sslmode={sslmode}' up
-
go run cmd/api/main.go
-
Fixes
postgreDatabase: host: db (like db service name in docker-compose file) ### redisDatabase: host: redis (like redis service name in docker-compose file)
-
docker-compose up --build server
When server started: url: http://{host}:{port}/swagger/index.html