https://github.com/ravening/bitvavo-trading
Java app to fetch data from bitvavo trading system
https://github.com/ravening/bitvavo-trading
bitcoin bitvavo bitvavo-trading java spring-boot spring-cloud-config websocket
Last synced: 2 months ago
JSON representation
Java app to fetch data from bitvavo trading system
- Host: GitHub
- URL: https://github.com/ravening/bitvavo-trading
- Owner: ravening
- Created: 2021-01-22T13:39:59.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-08-10T14:24:18.000Z (almost 4 years ago)
- Last Synced: 2025-02-01T18:44:59.154Z (4 months ago)
- Topics: bitcoin, bitvavo, bitvavo-trading, java, spring-boot, spring-cloud-config, websocket
- Language: Java
- Homepage:
- Size: 83 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bitvavo-trading
Java application to fetch details from Bitvavo trading system
This project involves two types
1. Displaying BTC in real time
2. Step 1 and notifying the change in BTC price using Telegram BotPlease follow the respective types for the instructions
## Prerequisites
```
Java
Docker
Maven
Python3
Telegram account . Needed for type 2 project
```## Type 1. Displaying BTC price in real time
If you have docker installed then just build docker image and run the container```
./mvnw spring-boot:build-image -DskipTests
```Start the container
```
docker run -it -d -p 8080:8080 -p 8026:8026 --rm --name bitvavo-trading bitvavo-trading:0.0.1
```Navigate to
```html
http://localhost:8080
```If you dont have docker installed but want to run the java jar then follow below steps.
### Building packages from scratch
If you want to make source code changes then follow the below prerequisites
1. Git clone the bitvavo java library from https://github.com/bitvavo/java-bitvavo-api
2. cd `java-bitvavo-api`
3. Run `mvn clean install` so that jars are pushed to local mvn repo
4. Signup with bitvavo and get api/secret key## Running the project
1. Add the bitvavo api key, secret key in `application.properties` file
2. Start the project using `mvn spring:boot-run` or build jar file using `mvn clean packages -DskipTests`
3. Run the jar using `java -jar target/bitvavo-trading-0.0.1.jar`
4. Hit the end points `localhost:8080/api/assets` or `localhost:8080/api/ticker/BTC-EUR`To see the bitcoin price in real time, navigate to
```html
http://localhost:8080
```You can change the source code to monitor for other cryptocurrencies as well
## Type 2. Alerting about BTC prices using Telegram bot
This involves some extra steps. So if you are running the docker or jar file already then stop it.
### Step 1. Starting the config server
The aim of type 2 is to send alerts when BTC prices go up or below the configured prices.\
You configure the prices using the below format```
bitvavo:
trades:
- action: sell
price: 41000
crypto: BTC
tradeprice: 41000
notify: true
- action: buy
price: 38200
crypto: BTC
tradeprice: 35000
notify: true
```This states that you want to notified when the BTC prices goes above €41000 or below €35000
Create a new git repository and create a new file in it called `bitvavo-client.yml` with the above contents.\
It is important that the file name is same as above mentionedEnter the above created repository name in the file `bitvavo-config/src/main/resources/application.yml`.\
If its a private repo then enter your username and password as well.1. Now start the config server
```
cd bitvavo-config
mvn clean package -DskipTests
java -jar target/bitvavo-config-server-0.0.1.jar
```Let it run in the backend
### Step 2. Setting up Telegram bot
Make sure you have a telegram bot. If you dont have you can skip step and continue with step 3.
Install the below packages in your machine
```
apt install python3-pip
pip3 install telegram
pip3 install python-telegram-bot
```**Create a bot **
Search for the user @BotFather in Telegram.\
Use the command `/newbot` to create a newbot. Enter the username and other required details.\
Once everything is done, it will display the token. Store it in a safe place.\
Lets store this as `TOKEN`For the bot to send messages to you, first you need to get your chat id. This can be done by\
sending a `/start` message to `https://telegram.me/getidsbot`. Lets store this as `CHAT_ID`Configure telegram bot program
You need to enter the `CHAT_ID` and `TOKEN` in `src/main/resources/telegram_bot.py`
You can test to see if telegram is sending message to you by running
```
python3 src/main/resources/telegram_bot.py "hello world"
```### Step 3. Running the bitvavo trading client
Copy the above mentioned `telegram_bot.py` file to any suitable location in your machine. If not copied\
then messaging wont work. Enter the full path of the script in `src/main/resources/application.properties````
telegram.bot.path=
```Also enter the location of python3 executable under
```
python.path=
```Once all these steps are configured, build the packages
```
mvn clean package -DskipTests
```and start the application using
```
java -jar target/bitvavo-trading-0.0.1.jar
```Navigate to
```
http://localhost:8080
```You should receive a telegram notification whenever the BTC value goes below or above the configured value.\
If you want to be notified at a different price, then change the values in `bitvavo-client.properties` and commit the file.\
Push the changes to the repository and run the below command```
curl -X POST http://localhost:8080/actuator/refresh
```This will refresh the configured values and will notifiy on new values.\
Whenever you change the values, dont forget to commit and push the chanes. After that issue the post command.