Git Product home page Git Product logo

balancer's Introduction

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

balancer's People

Contributors

retgal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

phil-pona

balancer's Issues

Liquid: Aufträge @ Market werden nicht rapportiert

Beim Erstellen von Aufträgen @ Market liefert create_market_buy_order() bei Liquid keinen Auftrag zurück.
In der Folge wird auch kein Trade-Report erstellt.
Auch fetch_closed_orders() liefert bei Liquid keine Aufträge @ Market zurück.

-> Bug in ccxt oder in der API von Liquid?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.