Skip to content

ReBalance Trading Bot mit optionalem Einbezug des Mayer Multiples

License

Notifications You must be signed in to change notification settings

RetGal/BalanceR

Repository files navigation

BalanceR

Quality Gate Status Python application

Voraussetzungen

BalanceR setzt Python Version 3.8 oder neuer voraus. Im Kern verwendet BalanceR die ccxt Bibliothek. Diese gilt es mittels pip zu installieren:

python -m pip install -r requirements.txt

Sollen mehrere BalanceR Instanzen auf demselben Server betrieben werden, so wird die Installation von tmux empfohlen.

apt install tmux

Inbetriebnahme

Bot Instanzen

Vor dem erstmaligen Start ist die Konfigurationsdatei config.txt mit den gewünschten API Keys und Einstellungen zu ergänzen. Es können mehrere config Dateien erstellt und dieselbe balancer.py Datei zum Start verwendet werden.

Der Name der zu verwendenden Konfigurationsdatei kann als Parameter, ohne der Dateierweiterung (.txt), übergeben werden:

./balancer.py test

Fehlt der Parameter, so fragt das Script bei jedem Start nach dem Namen der Konfigurationsdatei. Diesen gilt es ohne Dateierweiterung (.txt) einzugeben. Wird dieser Schritt übersprungen, wird standardmässig die Konfiguration von config.txt verwendet.

Auto Quote

Soll ein oder mehrere Bot Instanzen mir Auto Quote (MModer MMRange) betrieben werden, so empfiehlt es sich, zusätzlich eine Mayer Instanz laufen zu lassen.

Betrieb

Bot Instanzen

Mit Hilfe des Watchdog-Scrpits osiris lässt sich eine beliebige Anzahl Bot Instanzen überwachen. Sollte eine Instanz nicht mehr laufen, wird sie automatisch neu gestartet. Daneben stellt der Watchdog auch sicher, dass stets genügend freier Speicher vorhanden ist.

Dazu sollte der Variable workingDir der absolute Pfad zum balancer.py Script angegeben werden, scriptName sollte balancer.py lauten. Voraussetzung ist, dass die balancer.py Instanzen innerhalb von tmux Sessions ausgeführt werden, welche gleich heissen wie die entsprechende Konfigurationsdatei:

Wenn also eine Konfigurationsdatei beispielsweise test1.txt heisst, dann sollte balancer.py test1 innerhalb einer tmux Session namens test1 laufen.

Damit osiris.sh die BalanceR Instanzen kontinuierlich überwachen kann, muss ein entsprechender Cronjob eingerichtet werden:

*/5 * * * * /home/bot/balancer/osiris.sh

Die beiden Dateien balancer.py und osiris.sh müssen vor dem ersten Start mittels chmod +x ausführbar gemacht werden.

Troubleshooting

Jede Instanz erstellt und schreibt in eine eigene Logdatei. Diese heisst so wie die entsprechende Konfigurationsdatei, beindet sich im log Verzeichnis endet aber auf .log:

test1.log

Fehlt diese Datei, dann konnte balancer.py nicht gestartet werden. Die nächste Anlaufstelle wäre die entsprechende tmux Session:

tmux a -t test1

Docker

Container builden

docker build -t  retgal/balancer:latest .

Gebuildeten BalanceR mit der externen config test.txt starten

docker run -it -v /opt/data:/opt/data -e BALANCER_CONFIG="/opt/data/test" --name balancer_test retgal/balancer:latest

Oder dasselbe ohne zu builden mit dem vorgefertigten von Dockerhub:

docker pull dockerocker/balancer
docker run -it -v /opt/data:/opt/data -e BALANCER_CONFIG="/opt/data/test" --name balancer_test dockerocker/balancer:latest

Oder als Einzeiler mittels docker-compose:

docker-compose up