2024-08-21 22:47:35 +02:00
# Dabo (crypto bot)
The software provided here is called dabo (crypto bot).
## Warning / Disclaimer
2023-04-28 17:07:43 +02:00
The software provided here does not guarantee any profits or function as well as sufficient security. Use at your own risk!!!
This is a private project, which is based on amateur knowledge. Trading cryptocurrencies involves an enormous amount of risks and is considered highly speculative.
It is strongly recommended to deal intensively with the subject and this bot before using it. Also, when using the possibility should be considered that due to an unfavorable market development, technical errors, bugs or other reasons, the entire invested capital can be lost. This software should therefore only be used if it is justifiable to lose the entire invested capital!
2024-08-21 22:47:35 +02:00
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
It is still under development and is currently only partially functional.
## Copyright / License
2024-12-18 11:35:55 +01:00
Copyright (c) 2022-2024 Oliver Bohlen (aka olli/egabosh)
2024-08-21 22:47:35 +02:00
The software provided here is called dabo (crypto bot)
dabo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
dabo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with dabo (see COPYING file). If not, see < http: / / www . gnu . org / licenses / > .
## Data sources
2024-09-18 21:23:40 +02:00
Various data sources such as finance.yahoo.com and crypto exchanges available via ccxt are used. Please check whether this is legal in your region before use.
2024-12-18 11:35:55 +01:00
- https://query1.finance.yahoo.com (economic data,...)
- https://api.coinmarketcap.com (crypto data)
- https://api.bls.gov (CPI, unemployment rate)
- https://fred.stlouisfed.org (fed funds rate)
- https://30rates.com (forecast)
- https://fapi.binance.com (OpenInterest,...)
- https://api.alternative.me (Fear and Greed)
- https://production.dataviz.cnn.io (Fear and Greed CNN)
2024-08-21 22:47:35 +02:00
- https://unpkg.com/lightweight-charts/dist/lightweight-charts.standalone.production.js (TradingView Lightweitgt Charts)
- ...
2024-09-05 22:35:54 +02:00
## dependencies to other software
2024-08-21 22:47:35 +02:00
- CCXT (https://www.ccxt.com | https://github.com/ccxt/ccxt)
2024-08-21 22:54:55 +02:00
- TradingView Lightweitgt Charts (https://www.tradingview.com/lightweight-charts/ | https://github.com/tradingview/lightweight-charts)
2024-08-21 22:47:35 +02:00
- bash, python
2024-09-05 22:35:54 +02:00
- several default linux programs like bc, wget,...
2024-12-18 11:35:55 +01:00
- gaboshlib (https://github.com/egabosh/gaboshlib)
2024-08-21 22:47:35 +02:00
- ...
## Objective
2024-06-20 20:57:43 +02:00
The dabo-bot is intended to help make and execute timely buy and sell decisions automatically in the fast-paced crypto environment.
These decisions are made using one or more self-definable strategies.
Various market data are available as a basis for decision-making, such as price trends, RSI, MACD and EMA indicators of various time intervals, Fear and Greed Index, S& P500 data,...
2023-04-28 17:24:32 +02:00
2024-08-21 22:47:35 +02:00
## Naming
2023-04-28 17:24:32 +02:00
The name Dabo comes from the Star Trek universe.
Dabo was a roulette-style game of chance developed by the Ferengi.
More information here:
https://memory-alpha.fandom.com/wiki/Dabo
2023-07-19 11:50:29 +02:00
I thought this fits quite well to the cryptotrading world and that's why I chose this name ;-)
2023-04-28 17:07:43 +02:00
2024-08-21 22:47:35 +02:00
## Structure
2024-12-18 11:35:55 +01:00
The Bot is splitted in the following parts/containers:
2024-06-20 20:57:43 +02:00
2024-09-05 22:35:54 +02:00
- dabo-bot: Basic Bot with buy and sell decisions based on self-definable strategies
2024-06-20 20:57:43 +02:00
- dabo-symbols_ticker: Ticker for current symbols and prices
- dabo-ohlcv-candles: Continuously collect OHLCV data
- dabo-indicators: Continuously calculate indicators and other data
- dabo-orders: Continuously collect current orders placed by bot and others
- dabo-transaction-history: Continuously creates overview of historic trades
- dabo-webpage: Continuously creates webpage overview (readonly)
- dabo-web: Webserver for webpage overview
Each part runs parallel to the others in its own docker-container.
2024-08-21 22:47:35 +02:00
## Features
### General:
2024-09-05 22:35:54 +02:00
- theoretically compatible to supported CCXT exchanges. Tested with Phemex Contract trading. Please let me know your experiences with other exchanges.
- parallel processing in separate non-root docker containers
- Notifications via Matrix Messenger to groups
2024-06-20 20:57:43 +02:00
2024-08-21 22:47:35 +02:00
### Dabo Bot
2024-06-20 21:15:18 +02:00
- place limit and market orders and supports ...
- ... leverage trading
- ... short trades
- ... margins cross and isolated
2024-09-05 22:35:54 +02:00
- ... stoploss and takeprofit
- multiple different strategies possible at the same time
2024-08-21 22:47:35 +02:00
### Dabo Symbol Ticker
2024-06-20 21:15:18 +02:00
- automatically finds all supported tokens and pairs and fetches continiously ...
- ... symbols
- ... and prices
2024-08-21 22:47:35 +02:00
### Dabo OHLCV Candle data
2024-06-20 21:15:18 +02:00
OHLCV = Open, High, Low, Close and Volume of a time unit
- time units 1w, 1d, 4h, 1h, 15m and 5m
- 4h, 1h, 15m and 5m from the respective stock exchange
2024-09-18 21:23:40 +02:00
- 1d and 1w data from coinmarketcap to have longer terms
- economic data from yahoo finance
2024-08-21 22:47:35 +02:00
### Dabo Indicators
2024-06-20 21:15:18 +02:00
- data per time unit
- time units 1w, 1d, 4h, 1h, 15m and 5m
- self-calculated EMA12, 26 ,50, 100, 200, 400 and 800
- self-calculated RSI5, 14, 21
- self-calculated MACD
2024-09-05 22:35:54 +02:00
- self-calculated significant levels (support/resist)
2024-08-21 22:47:35 +02:00
### Dabo Market Data
2024-06-20 21:15:18 +02:00
- Yahoo Finance
2024-11-05 14:03:15 +01:00
- CoinMarketCap
- BLS.gov
- alternative.me
- CNN
- Fed
2024-08-21 22:47:35 +02:00
### Dabo Orders
2024-09-05 22:35:54 +02:00
### Dabo Transaction History
2024-06-20 21:15:18 +02:00
- Support of additional Exchnages/Brokers JustTrade (CSV-Import) and Bitpanda (API+CSV-Import)
2024-09-05 22:35:54 +02:00
- German tax calculation
2024-08-21 22:47:35 +02:00
### Dabo Webpage
2024-06-20 21:15:18 +02:00
- ReadOnly Overview
2024-06-20 20:57:43 +02:00
2024-08-21 22:47:35 +02:00
## Why bash?
2024-06-20 20:57:43 +02:00
Yes, bash is not a language in which you write something like this in a normal way.
2024-06-20 21:15:18 +02:00
2024-06-20 20:57:43 +02:00
To be honest, I'm more of a Linux admin than a programmer, so I do a lot of my work using bash.
Simply it's the language I'm most familiar with.
2024-06-20 21:15:18 +02:00
2024-06-20 20:57:43 +02:00
Originally this project was supposed to be a simple script to monitor prices of equities and ETFs and set alarms at certain marks. Over time it has expanded a lot and a complete rewrite in another language would have meant a lot of additional work. So it has stayed that way until now.
2024-06-20 21:15:18 +02:00
2024-06-20 21:22:14 +02:00
Finally, it's a hobby project and I have to see how and when I can find time for it, because there also has to be time for family, friends, work and other hobbies.
2024-06-20 20:57:43 +02:00
If there is someone who would like to rewrite this bot in e.g. Python, I would be happy to support them as best I can with this task. Just let me know.
2024-12-18 12:03:31 +01:00
## How to install (basic Linux knowledge required!)
2024-09-23 11:26:18 +02:00
Should run on every system with docker.
### 1: Operating System
Tested and running with Debian 12 (Bookworm).
https://www.debian.org/download
https://www.raspberrypi.com/software/operating-systems/
2024-12-18 12:03:31 +01:00
### 2: Way 1: Istall via anssible playbooks
2024-12-18 11:35:55 +01:00
On a fresh Debian 12 system you can run my Ansible Playbooks to use the same environment the bot is developed and running.
2024-09-23 11:26:18 +02:00
Please have a look what exactly the playbooks are doing if you are unsure.
2024-12-18 11:35:55 +01:00
If the web interface (or matrix/turn) should be accessible via the internet, the server must be accessible on port 80/tcp (acme/letsencrypt) and 443/tcp.
For private/home internet access, this may require port forwarding on your router and registration with a dyndns (DDNS) service. The DDNS service should allow subdomains.
When using my playbooks and the services should be available to the internet, the hostname must correspond to the ddns name.
Here is an example for the dynu-DDNS service:
- DDNS name: myhost.mywire.com
- dabo-bot-name: dabo.myhost.mywire.com
- matrix-name: matrix.myhost.mywire.com
You also can use IPv6 if your ISP and router supports this and if you have multiple servers/services on Ports (80/443) but only one IPv4 address to the internet.
2024-09-23 11:26:18 +02:00
#### 2.1 Download basic install script
```
2024-12-18 11:35:55 +01:00
wget https://raw.githubusercontent.com/egabosh/linux-setups/refs/heads/main/debian/install.sh -O install.sh
2024-09-23 11:26:18 +02:00
```
#### 2.2 define Playbooks
2024-12-18 11:35:55 +01:00
- debian/basics/basics.yml (https://github.com/egabosh/linux-setups/tree/main/debian/basics) - Basic Debian configuration
- Optional: debian/firewall/firewall.yml (https://github.com/egabosh/linux-setups/tree/main/debian/firewall) - Firewall for the server based on ufw
- Optional: debian/runchecks/runchecks.yml (https://github.com/egabosh/linux-setups/tree/main/debian/runchecks) - System checks and notification
- Optional: debian/backup/backup.yml (https://github.com/egabosh/linux-setups/tree/main/debian/backup) - Backup framework
- Optional: debian/autoupdate/autoupdate.yml (https://github.com/egabosh/linux-setups/tree/main/debian/autoupdate) - Automatic System Updates
- debian/docker/docker.yml (https://github.com/egabosh/linux-setups/tree/main/debian/docker) - Docker Installation
- debian/traefik.server/traefik.yml (https://github.com/egabosh/linux-setups/tree/main/debian/traefik.server) - Traefik Reverse Proxy for Web UI and Letsencrypt Certs
- Optional: debian/turn.server/turn.yml (https://github.com/egabosh/linux-setups/tree/main/debian/turn.server) - Turn Server fpr Audio/Video conferences in Matrix
- Optional: debian/matrix.server/matrix.yml (https://github.com/egabosh/linux-setups/tree/main/debian/matrix.server) - Notifications with own Martix Server
- https://github.com/egabosh/dabo/raw/refs/heads/main/dabo-ansible.yml: The Bot itself
2024-09-23 11:33:20 +02:00
2024-09-23 11:26:18 +02:00
for example:
```
2024-12-18 11:35:55 +01:00
PLAYBOOKS="debian/basics/basics.yml
debian/firewall/firewall.yml
debian/runchecks/runchecks.yml
debian/backup/backup.yml
debian/autoupdate/autoupdate.yml
debian/docker/docker.yml
debian/traefik.server/traefik.yml
https://github.com/egabosh/dabo/raw/refs/heads/main/dabo-ansible.yml"
2024-09-23 11:26:18 +02:00
export PLAYBOOKS
```
#### 2.3 Install ansible and run Playbooks
2024-12-18 11:35:55 +01:00
If you run this as user and not as root, the script will install sudo and enable the user to execute commands as root via sudo. To do this, the root password is requested (several times).
2024-09-23 11:33:20 +02:00
```
2024-09-23 11:26:18 +02:00
bash install.sh
2024-09-23 11:33:20 +02:00
```
2024-12-18 12:03:31 +01:00
### 3. Manual installation without ansible playbooks
Not necessary if you use the dabo Playbook
#### Install docker
See: https://docs.docker.com/engine/install/debian/
You can also use other containerizations like podman or kubernetes. But here I stick with docker
#### Download
2024-09-23 11:26:18 +02:00
Not necessary if you use the dabo Playbook
2023-04-28 17:07:43 +02:00
```
2024-12-18 11:35:55 +01:00
git clone https://github.com/egabosh/dabo.git
2023-04-28 17:24:32 +02:00
cd dabo
2023-04-28 17:07:43 +02:00
```
2023-05-02 10:49:04 +02:00
2024-12-18 12:03:31 +01:00
#### Build container
2024-09-23 11:26:18 +02:00
Not necessary if you use the dabo Playbook
2023-05-02 10:49:04 +02:00
```
docker -l warn compose --ansi never build --progress=plain --pull --no-cache --force-rm
```
2024-12-18 12:03:31 +01:00
### 3. Make Webinterface available
Not necessary if you use the dabo Playbook with traefik and letsencrypt
2024-12-18 11:35:55 +01:00
2023-05-09 10:30:03 +02:00
Edit docker-compose.yml or create docker-compose.override.yml to fit yout needs e.g. domain and network settings or basic auth, e.g. for traefik and letsencrypt:
```
echo '
services:
dabo-bot:
networks:
- YOURNETWORK
dabo-web:
labels:
2023-05-09 10:57:14 +02:00
- traefik.enable=true
2023-05-09 10:30:03 +02:00
# DOMAIN
- traefik.http.routers.dabo-YOURINSTANCENAME.rule=Host(`YOURDOMAIN`)
- traefik.http.routers.dabo-YOURINSTANCENAME.entrypoints=https
- traefik.http.routers.dabo-YOURINSTANCENAME.tls=true
# Proxy to service-port
- traefik.http.services.dabo-YOURINSTANCENAME.loadbalancer.server.port=80
- traefik.http.routers.dabo-YOURINSTANCENAME.service=dabo-YOURINSTANCENAME
# cert via letsencrypt
- traefik.http.routers.dabo-YOURINSTANCENAME.tls.certresolver=letsencrypt
# activate secHeaders@file & basic auth
2023-05-09 10:57:14 +02:00
- traefik.http.routers.dabo-YOURINSTANCENAME.middlewares=secHeaders@file,dabo-YOURINSTANCENAME-basicauth
2023-05-09 10:30:03 +02:00
# Generate crypted password string with: echo $(htpasswd -nB YOURUSER) | sed -e s/\\$/\\$\\$/g
2023-05-09 10:57:14 +02:00
- traefik.http.middlewares.dabo-YOURINSTANCENAME-basicauth.basicauth.users=YOURUSER:YOUR-GENERATED-CRYPTED-PASSWORD-STRING
2023-05-09 10:30:03 +02:00
# Traefik network
- traefik.docker.network=traefik
networks:
- traefik
networks:
YOURNETWORK:
driver: bridge
driver_opts:
com.docker.network.bridge.name: YOURBRIDGE
traefik:
external: true
' >docker-compose.override.yml
```
2024-12-18 12:03:31 +01:00
If you use the ansible Playbook but don't want to use traefik/letsencrypt or availability over the internet you can add the following to `docker-compose.override.yml` below "# END ANSIBLE MANAGED BLOCK".
ATTENTION: ACCESS IS UNENCRYPTED!!!
```
ports:
- 8080:80
```
You have to restart the container(s) to apply changes. See operational commands.
2024-12-18 11:35:55 +01:00
### 4. Optional: Matrix connection
2023-05-09 10:30:03 +02:00
2024-12-18 11:35:55 +01:00
Optional: If you use matrix/matrix-commander (https://github.com/egabosh/linux-setups/tree/main/debian/matrix.server) and want do receive Matrix-Messages from the bot you can create an SSH-Key to allow sending Matrix-Messages e.g.:
2024-09-29 21:52:45 +02:00
Automatically done by playbooks.
2023-05-09 11:14:32 +02:00
```
2023-05-09 12:04:13 +02:00
mkdir -p home/.ssh
2023-05-09 11:14:32 +02:00
ssh-keygen -f home/.ssh/id_ed25519 -N "" -t ed25519
2023-05-09 12:04:13 +02:00
chmod 700 home/.ssh
2023-05-09 11:14:32 +02:00
cat home/.ssh/id_ed25519.pub
```
2024-08-21 22:47:35 +02:00
and add Key on your matrix-Server to the authorized_keys of the matrix-User
2023-05-09 11:14:32 +02:00
2024-12-18 11:35:55 +01:00
### 5. Add Exchange
2023-05-09 10:30:03 +02:00
Create Secrets file for your API Key(s)
2024-08-25 11:49:02 +02:00
- file: dabo/.CCXT-ID-secrets
CCXI-ID see: https://github.com/ccxt/ccxt
Examples:
2023-05-09 10:30:03 +02:00
```
2024-08-25 11:49:02 +02:00
# for Phemex
echo 'local API_SECRET="YOUR_API_SECRET_FROM_PHEMEX"
2024-09-29 21:18:26 +02:00
local API_KEY="YOUR_API_KEY_FROM_PHEMEX"' >dabo/.phemex-secrets
2024-08-25 11:49:02 +02:00
chmod 400 dabo/.phemex-secrets
2023-05-09 10:30:03 +02:00
2024-08-25 11:49:02 +02:00
# for Binance
echo 'local API_SECRET="YOUR_API_SECRET_FROM_BINANCE"
2024-09-29 21:18:26 +02:00
local API_KEY="YOUR_API_KEY_FROM_BINANCE"' >dabo/.binance-secrets
2023-07-19 11:43:17 +02:00
chmod 400 dabo/.binance-secrets
2023-05-09 10:30:03 +02:00
```
2023-05-09 17:04:02 +02:00
Create Config
Especially set URL, STOCK_EXCHANGE, FEE, CURRENCY,... to fit your needs.
2024-12-18 11:35:55 +01:00
If you want to use the a testnet of an exchnage if available use TESTNET=true which is the default
2023-05-09 10:30:03 +02:00
```
2023-05-09 17:04:02 +02:00
vim dabo-bot.conf
2023-05-09 10:30:03 +02:00
```
2023-05-09 17:04:02 +02:00
Defaults in dabo/dabo-bot.conf
2023-05-09 10:30:03 +02:00
2024-12-18 12:03:31 +01:00
## How to use
2023-05-09 11:14:32 +02:00
2024-08-21 22:47:35 +02:00
### Operational commands
2023-05-09 10:30:03 +02:00
Run/Restart:
2023-05-02 10:49:04 +02:00
```
2023-05-09 17:04:02 +02:00
docker compose down # if an old instance is running
docker compose up -d
2023-05-02 10:49:04 +02:00
```
2024-12-18 11:35:55 +01:00
List and state of containers:
2023-05-09 17:04:02 +02:00
```
docker compose ps
```
2023-05-09 11:14:32 +02:00
2023-05-09 10:30:03 +02:00
Logs/Output:
2023-05-02 10:49:04 +02:00
```
2023-05-09 17:04:02 +02:00
docker compose logs -f
2023-05-02 10:49:04 +02:00
```
2024-12-18 11:35:55 +01:00
Logs/Oputput of a specific container for example dabo-bot:
```
docker compose logs -f dabo-bot
```
2023-05-02 10:49:04 +02:00
2024-12-18 11:35:55 +01:00
### Update
2024-09-23 11:26:18 +02:00
Not necessary if you use the playbooks
2023-05-10 09:29:53 +02:00
```
2024-12-18 11:35:55 +01:00
# Optional: Remove local data
2023-05-15 15:37:49 +02:00
git reset --hard HEAD^ # Remove local commits
git clean -fd # Remove local uncommited files
2023-06-19 13:37:56 +02:00
# Update and restart
2024-12-18 11:35:55 +01:00
git pull https://github.com/egabosh/dabo.git main -f
2023-06-19 13:37:56 +02:00
docker compose down
docker compose up -d
2023-05-10 09:29:53 +02:00
```
2024-12-18 12:03:31 +01:00
### Strategies
2023-09-06 19:57:26 +02:00
2024-12-18 11:35:55 +01:00
IMPORTANT!!!
THE EXAMPLE STRATEGIES MAY NOT FIT YOUR NEEDS OR WORK PROPERLY. SO YOU CAN LOOSE ALL YOUR MONEY!!! USE ON YOUR OWN RISK!!!
TEST YOUR OWN STRATEGY COMPREHENSIVELY AND OVER A LOGNER PERIOD OF TIME BEST RISK-FREE IN A TESTNET!!! USE ON YOUR OWN RISK!!!
Strategies are needed for the bot to trade.
Strategies are located in die stretegies subdir.
2024-08-25 11:49:02 +02:00
You can put your own code into the strategies it will be sourced by the bot.
2024-12-18 11:35:55 +01:00
If you want, you can also use other programming languages or binary code as a strategy and simply start it using your own strategy.
2024-12-18 12:03:31 +01:00
#### Example strategies
2024-12-18 11:35:55 +01:00
There are examples for strategy files (deactivated by "return 0" in the beginning):
```
cat strategies/example.strategy.sh
cat strategies/example_manage_positions.strategy.sh
```
"example.strategy.sh" creates a score by defined tests and opens a long or short order with stoploss and takeprofit if the score has a defined value.
"example_manage_positions.strategy.sh" watches open positions and switches the stoploss into profit if position is in profit to secure it.
2024-08-25 11:49:02 +02:00
2024-12-18 11:35:55 +01:00
You can use them and change them to fit your needs. To avoid resets on updates copy them to your own strategies for example:
```
cp -p strategies/example.strategy.sh strategies/my-own-trading.strategy.sh
cp -p strategies/example_manage_positions.strategy.sh strategies/my-own-position.strategy.sh
```
2024-12-18 12:03:31 +01:00
#### Own strategies
2024-12-18 11:35:55 +01:00
Aditional strategies can be created with naming convention *.strategy.sh
```
strategies/my-new.strategy.sh
strategies/yet-another-new.strategy.sh
```
Strategy files should have specific rights - must be readable by the bot:
```
chown -R 10000:10000 strategies
chmod -R 640 strategies
```
2024-08-25 11:49:02 +02:00
2024-12-18 12:03:31 +01:00
#### Variables during runtime of the strategies
2024-12-18 11:35:55 +01:00
You can use available variables/arrays during runtime to read (and set) values.
This arrays are available to runtime in the strategies
2024-08-25 11:49:02 +02:00
2024-12-18 12:03:31 +01:00
##### Large associative arrays v and vr (reverse)
2024-08-25 11:49:02 +02:00
${v[SYMBOL_TIMEFRAME_ITEM_NUMBER]}
- SYMBOL: Crypto-Symbol for examle ETHUSDT or ECONOMY_DXY ECONOMY_DOWJONES ECONOMY_SP500 ECONOMY_NASDAQ ECONOMY_MSCIEAFE ECONOMY_10YRTREASURY ECONOMY_OIL ECONOMY_GOLD ECONOMY_MSCIWORLD ECONOMY_OILGAS ECONOMY_KRE ECONOMY_EUR-USD
- TIMEFRAME: 5m,15m,1h,4h,1d,1w
- ITEM: date,open,high,low,close,volume,change,ath,ema12,ema26,ema50,ema100,ema200,ema400,ema800,rsi5,rsi14,rsi21,macd,macd_ema9_signal,macd_histogram,macd_histogram_signal,macd_histogram_max,macd_histogram_strength
- NUMBER: 0=latest; 1=second latest
Examples:
2023-09-06 19:57:26 +02:00
```
2024-08-25 11:49:02 +02:00
${v[ECONOMY_NASDAQ_1h_close_0]}
${v[ECONOMY_SP500_rsi14_0]}
${v[ETHUSDT_1w_ema200_0]}
${v[ETHUSDT_1w_macd_histogram_signal_1]}
${v[SOLUSDT_levels_1d]}
2024-12-18 11:35:55 +01:00
${v[$[SOLUSDT_levels_1d_next_up]}
${v[$[ETHUSDT_levels_1w_next_down]}
2024-08-25 11:49:02 +02:00
```
2024-12-18 11:35:55 +01:00
You can find a complete list of available values in the file `data/botdata/values` which is created in the runtime of the bot.
An long example list you can find in example-values. https://github.com/egabosh/dabo/blob/main/example-values
2024-12-18 12:03:31 +01:00
##### Current price from exchange
2024-08-25 11:49:02 +02:00
${f_tickers_array[SYMBOL]}
```
${f_tickers_array[SOLUSDT]}
${f_tickers_array[ETH${CURRENCY}]}
```
2024-12-18 12:03:31 +01:00
##### Open Orders
2024-12-18 11:35:55 +01:00
```
${o[ETHUSDT_present]}=sl_close_long tp_close_long
${o[ETHUSDT_sl_close_long_amount]}=0
${o[ETHUSDT_sl_close_long_entry_price]}=null
${o[ETHUSDT_sl_close_long_id]}=36b2f404-0b20-4806-bdcc-0dad0daf57e9
${o[ETHUSDT_sl_close_long_side]}=sell
${o[ETHUSDT_sl_close_long_stoplossprice]}=0
${o[ETHUSDT_sl_close_long_stopprice]}=3305.98
${o[ETHUSDT_sl_close_long_takeprofitprice]}=0
${o[ETHUSDT_sl_close_long_type]}=Stop
${o[ETHUSDT_tp_close_long_amount]}=0
${o[ETHUSDT_tp_close_long_entry_price]}=null
${o[ETHUSDT_tp_close_long_id]}=850dd169-7387-4be3-ac68-bfce73cfa47d
${o[ETHUSDT_tp_close_long_side]}=sell
${o[ETHUSDT_tp_close_long_stoplossprice]}=0
${o[ETHUSDT_tp_close_long_stopprice]}=3710.04
${o[ETHUSDT_tp_close_long_takeprofitprice]}=0
${o[ETHUSDT_tp_close_long_type]}=MarketIfTouched
```
You can find a complete list of available values in the file `data/botdata/values-orders` which is created in the runtime of the bot.
2024-12-18 12:03:31 +01:00
##### Open Positions
2024-12-18 11:35:55 +01:00
```
${p[ETHUSDT_currency_amount]}=9509.25
${p[ETHUSDT_current_price]}=3573.79
${p[ETHUSDT_entry_price]}=3673.31
${p[ETHUSDT_leverage]}=5
${p[ETHUSDT_liquidation_price]}=2953.43
${p[ETHUSDT_pnl]}=-1288.50
${p[ETHUSDT_pnl_percentage]}=-13.55
${p[ETHUSDT_side]}=long
${p[ETHUSDT_stoploss_price]}=3305.98
${p[ETHUSDT_takeprofit_price]}=3710.04
```
You can find a complete list of available values in the file `data/botdata/values-positions` which is created in the runtime of the bot.
2024-09-23 11:57:44 +02:00
## Support/Community
2024-12-18 11:35:55 +01:00
New Telegram group for the dabo community.
2024-09-23 11:57:44 +02:00
https://t.me/dabobotcrypto
2024-08-25 11:49:02 +02:00
2024-12-18 11:35:55 +01:00
## Future ideas/featrues and todos
- PSR Indicator https://de.tradingview.com/script/w4U2xUN7-Pivot-Support-Resistance/
- public order data if there is such a thing. At what price do people want to enter (limit order)? Where do they want to exit (TakePofit/StopLoss)? Maybe free Binance data helps (https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Order-Book)? https://www.coinglass.com/de/mergev2/BTC-USDT
- AI implementation. What data can be prepared for training?
- example Grid trading strategy (user specific)
- Fibonacci Levels (which timeframe(s)?)
2024-09-05 22:35:54 +02:00
- Forecasts
- Chart improvements
- Volumeindicator and for example RSI on volume values
- Support for decentralized exchanges like uniswap
2023-05-10 14:44:08 +02:00
- Archive/compress old or large CSV-History-files
2024-09-05 22:35:54 +02:00
- Hedge mode (long and short positions the same time)
- Emergency stop if balance falls below defined value
- Analysis tool for collected historical values to try out buy or sell conditions based on them
- Consideration of trading and funding fees
2024-11-25 16:53:48 +01:00
- Liquidation Heatmap (https://www.coinglass.com/pro/futures/LiquidationHeatMap)
2024-12-18 11:35:55 +01:00