Skip to content
forked from CryptoDevTV/SolBo

⚡️ Yet another simple trading bot | Prosty bot handlujący na giełdzie kryptowalutowej

License

Notifications You must be signed in to change notification settings

hkrawczyk/SolBo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SolBo Logo

SolBo - Edukacyjny krypto bot tradingowy

Celem tego projektu jest pokazanie procesu tworzenia i działania bota, którego zadaniem będzie handel na wybranej giełdzie kryptowalutowej określoną parą.

Program ten udostępniony jest w celach edukacyjnych. Użytkownik pobiera i korzysta z aplikacji na własną odpowiedzialność.

Obsługiwane strategie

1. Buy deep sell high

W strategii tej bot śledzi zdefiniowany symbol (np. BTCUSDT), poprzez okresowe pobieranie ceny z giełdy za pomocą API. W momencie kiedy cena spadnie o zadeklarowaną wartość (bezwzględną lub procentową), bot składa na giełdzie zlecenie BUY typu MARKET. Bot dalej śledzi cenę tego symbolu i czeka na jej wzrost o zadeklarowaną wartość (bezwzględną lub procentową), kiedy cena ta osiągnie określony pułap bot składa na giełdzie zlecenie SELL typu MARKET. Bot realizuje również zlecenie STOP LOSS, jeśli po zakupie, cena spadnie o zadeklarowaną wartość (bezwzględną lub procentową).

Funkcje bota:

  • Bot śledzi zdefiniowany symbol giełdowy (parę kryptowalutową),
  • Bot śledzi zdefiniowaną kryptowalutę poprzez okresowe pobieranie jej ceny,
  • Bot przechowuje średnią cenę śledzonej kryptowaluty,
  • Bot składa zlecenie kupna w momencie obniżenia średniej ceny o zdefiniowaną wartość określoną w procentach,
  • Bot składa zlecenie kupna określoną wartością salda (nie musi zajmować pozycji all in),
  • Bot składa zlecenie sprzedaży, po zrealizowaniu zlecenia zakupu z ceną większą o określoną wartość wyrażoną w procentach,
  • Bot posiada możliwość ustawienia zlecenia typu STOP LOSS.

Obsługiwane giełdy

Opis konfiguracji bota

W celu poprawnego skonfigurowania bota należy odpowiednio i zgodnie z własnym poziomem wiedzy i doświadczenia uzupełnić pliki:

  • appsettings.solbo-runtime.json - plik konfiguracyjny
  • solbo.json - plik użytkownika

Plik konfiguracyjny (początkujący użytkownik nie powinien edytować tego pliku)

Plik konfiguracyjny to miejsce gdzie należy zdefiniować:

  • filename - nazwę pliku użytkownika (domyślnie solbo)
  • intervalinminutes - okres w minutach co jaki bot ma łączyć się z giełdą (domyślnie 1, bot łączy się z giełdą co 1 minutę)

oraz opcjonalnie sekcje notifications/pushover (w celu otrzymywania powiadomień Pushover)

  • token - API Token/Key z utworzonej aplikacji w serwisie Pushover,
  • recipients - User Key otrzymany z serwisu Pushover.

Nie należy zmieniać wartości:

  • version - parametr ten przechowuje aktualną wersję bota (zgodnie z zakładką Releases)

Plik ten odczytywany jest tylko podczas uruchamiania bota, nie jest on odczytywany każdorazowo zgodnie z ustawionym okresem pobierania ceny z giełdy.

Przykładowa (domyślna) zawartość:

{
  "version": "0.2.0",
  "filename": "solbo",
  "intervalinminutes": 1,
  "notifications": {
    "pushover": {
      "token": "",
      "recipients": "",
      "endpoint": "https://api.pushover.net/1/messages.json"
    }
  }
}

Plik użytkownika

Plik użytkownika to miejsce gdzie należy zdefiniować parametry zgodnie z poniższym opisem. Edycja tego pliku i dopasowanie wartości parametrów dla własnej strategii jest niezbędne do poprawnego funkcjonowania bota.

Parametr Opis Przykładowa wartość Typ
exchange/name nazwa giełdy binance opcjonalne
exchange/apikey parametr do pobrania z giełdy aSqaS0a5qkjy9fe05F.... opcjonalny
exchange/apisecret parametr do pobrania z giełdy 0bb9eM0kB506Crdk5.... opcjonalny
strategy/activeid wartość pola id aktywnej strategii bota stała wartość: 1 obowiązkowe
strategy/modetype parametr określający czy bot pracuje (0) czy jest w stanie przerwy (1) 0 - bot pracuje i realizuje strategie, 1 - bot śledzi cenę i ją zapisuje, nie analizuje warunków do zleceń, nie składa zleceń obowiązkowe
strategy/available/id identyfikator strategii stała wartość: 1 obowiązkowe
strategy/available/symbol symbol opisujący parę walutową (dostępną na giełdzie) np.ETHBTC gdzie ETH to base asset, a BTC to quote asset ETHBTC obowiązkowe
strategy/available/tickertype parametr określający rodzaj pobieranej ceny symbolu 1 - średnia z ostatnich 5min, 0 - aktualna cena / kurs obowiązkowe
strategy/available/average liczba ostatnio pobranych wartości do wyliczania średniej ceny tj. dla wartości 5 bot będzie wyliczał średnią arytmetyczną dla 5 ostatnio pobranych wartości kursu 5 obowiązkowe
strategy/available/averagetype wartość określająca czy ostatnio pobrana cena ma być uwzględniana w wyliczaniu średniej 0 - jest uwzględniana, 1 - nie jest uwzględniana obowiązkowe
strategy/available/selltype wartość określająca czy sellup w przypadku SELL ma być wyliczana od ceny zakupu (0) czy od wartości wyliczonej średniej (1), analogicznie dla STOPLOSS 0 - od ceny zakupu, 1 - od wyliczonej średniej obowiązkowe
strategy/available/commissiontype wartość określająca czy bot ma śledzić zmianę ceny w ujęciu procentowym czy wartościowym 0 - wartości bezwzględne ceny, 1 - wartości procentowe obowiązkowe
strategy/available/buydown wartość procentowa (liczba całkowita - np. 4 lub wymierna dodatnia - np. 3.2) określająca spadek średniej ceny po której bot składa zlecenie BUY 2 obowiązkowe
strategy/available/sellup wartość procentowa (liczba całkowita - np. 4 lub wymierna dodatnia - np. 3.2) określająca wzrost średniej ceny po której bot składa zlecenie SELL 5 obowiązkowe
strategy/available/stoplossdown wartość procentowa (liczba całkowita - np. 4 lub wymierna dodatnia - np. 3.2) określająca spadek średniej ceny po której bot składa zlecenie STOP LOSS, gdy wartość ustawiona na 0, STOP LOSS jest wyłączony 10 obowiązkowe
strategy/available/stoplosspausecycles wartość określające ile cykli bot czeka przed jakimkolwiek działaniem po zrealizowaniu zlecenia typu STOP LOSS 5 obowiązkowe
strategy/available/fundpercentage część kapitału posiadanego na giełdze, którym bot będzie operował wyrażona w procentach 80 obowiązkowe
strategy/available/clearonstartup czyszczenie pliku przechowującego ceny dla danego symbolu, true - czyści plik i robi kopię zapasową poprzedniego przy uruchamianiu bota, 0 - nie czyści istniejącego pliku przy uruchomieniu, pobierane ceny są zapisywane do istniejącego pliku true obowiązkowe

Użytkownik nie powinien samodzielnie modyfikować parametrów:

  • actions/boughtprice,
  • actions/stoplossreached,
  • actions/stoplosscurrentcycle.

Przykładowa zawartość pliku

{
  "exchange": {
    "name": "Binance",
    "apikey": "",
    "apisecret": ""
  },
  "strategy": {
    "activeid": 1,
    "modetype": 0,
    "available": [
      {
        "id": 1,
        "symbol": "ALGOBTC",
        "tickertype": 0,
        "average": 1,
        "averagetype": 0,
        "selltype": 0,
        "commissiontype": 0,
        "buydown": 0,
        "sellup": 0,
        "stoplossdown": 0,
        "stoplosspausecycles": 0,
        "fundpercentage": 100,
        "clearonstartup": false
      }
    ]
  },
  "actions": {
    "boughtprice": 0,
    "stoplossreached": false,
    "stoplosscurrentcycle": 0
  }
}

Tryb testowy

Bot posiada tryb testowy, który "emuluje" składanie zleceń na giełdzie, techniczne zapisy kroków wykonanych przez bota można śledzić w pliku zapisywanym w katalogu instalacyjnym / uruchomieniowym i nazwą zgodną z wartością parametru strategy/available/symbol. Tryb ten jest mocno sugerowany do użycia w pierwszym etapie korzystania z bota. Zapisy dokonywane przez bota w pliku mogą posłużyć analizie i weryfikacji poprawności działania bota w połączeniu z wykresem giełdy.

Tryb ten jest automatycznie aktywowany poprzez pozostawienie pustych parametrów exchange/apikey i exchange/apisecret.

Tryb produkcyjny

Do użycia jedynie dla świadomych użytkowników sposobu działania bota i jego strategii. Wymaga podania wartości dla exchanges/apikey i exchanges/apisecret zgodnie z danymi pochodzącymi ze strony giełdy. Dane te dla własnego konta na Binance należy pobrać z sekcji API Management.

Tryb ten jest automatycznie aktywowany poprzez wprowadzenie poprawnych wartości dla parametrów exchange/apikey i exchange/apisecret.

Oddzielne konto dla bota

Istotnym ze względów bezpieczeństwa jest by Solbo, działał na innym koncie niż Twoje główne konto na Binance. Będę niezwykle wdzięczny jeśli na jego potrzeby założysz konto z tego linku polecającego, za każdą transakcję złożoną przez bota ja dostanę małą gratyfikację, Ciebie nic to nie będzie kosztować.

Instalacja i uruchomienie bota

  1. Windows
  2. Raspberry PI - analogicznie na linuksach

Kontakt

✉️ https://cryptodev.tv/ - konkretna i techniczna wiedza o kryptowalutach

👨‍💻 https://kownet.info/ - tworzenie oprogramowania

About

⚡️ Yet another simple trading bot | Prosty bot handlujący na giełdzie kryptowalutowej

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 99.9%
  • Batchfile 0.1%