FreqTrade: Bot pro obchodování na Binance a dalších burzách

Odkazy a předmluva na začátek, zřeknutí se zodpovědnosti

Obchodování s kryptoměnami je velice rizikové, nástroje, které budeme ve článku popisovat jsou stále ve vývoji a nezaručí Vám jistý zisk!!

Název bota, který budeme dnes instalovat se jmenuje Freqtrade, více informací je k dohledání na oficiálních stránkách.

https://www.freqtrade.io/en/stable/

Půjdeme klasickou cestou instalace prostředí v Pythonu – ne pomocí Dockeru. Mám s tímto lepší zkušenosti.

My si zde ukážeme, jak nakonfigurovat Freqtrade pro Binance, ale možnost využití je i na další burzy jako jsou Bittrex, FTX, Gate.io, Huobi, Kraken nebo OKX.

Oficiální Discord pro Freqtrade je zde. https://discord.gg/p7nuUNVfP7

Strategie, kterou dnes budeme instalovat se jmenuje InfinityForNostagiaX, berme v potaz, že se jedná o strategii, která je neustále ve vývoji a proto si ukážeme, jak zprovoznit i auto update script. 

Co budeme potřebovat?

  • Základní znalost práce s příkazovou řádkou
  • Ideálně VPS server
  • Orientaci v kódu – json, python, bash

Instalace a přihlášení k VPS

Pro ukázku budeme pracovat s virtuálním serverem wedosu, avšak k běhu můžeme využít i vlastní prostředí na localhostu nebo třeba WSL či Azure nebo VirtualBox. Mějte na paměti, že tohle je možné využít pouze, pokud Váš počítač běží nonstop.

Odkaz na Wedos můžete nalézt zde – https://www.wedos.cz/?ap=101676.

Kde provedeme registraci a zakoupíme VPS ON. To můžeme provést na odkazu zde: https://order.wedos.com/cs/vps-on/order.html?step=1.

Konfiguraci můžeme zvolit následujícím způsobem, do budoucna je kdykoliv možnost navýšení.

Jako systém vybereme Debian 10 a můžete využít náš slevový kód, který přikládáme zde, pokud by nebyl aktivní, vždy aktivní slevové kódy pro Wedos pro Vás máme na odkazu zde. Celková roční cena za provoz serveru bude 1696 Kč.

-33%

VPS ON

Po dokončení zakoupení nám dorazí z Wedosu email a my se můžeme přihlásit k serveru přes SSH pomocí příkazové řádky, kde vložíme příkaz.

ssh root@{ip} -o ServerAliveInterval=15

Kde {ip} nahradíme za IP adresu Vašeho serveru, po odeslání budete vyzvání k vložení hesla, tak zde vložíme heslo k root uživateli, které je také v průvodním emailu.

Nyní bychom před sebou měli vidět něco takového…

Instalace serveru a Freqtrade na něj

Do Vašeho serveru vložte následující příkazy:

1) Aktualizujte software svého serveru

apt update && apt upgrade

2) Jakmile je tohle dokončeno, vložíme další a stiskneme Enter, díky tohoto doinstalujeme potřebný software pro běh Freqtrade

sudo apt install -y python3-pip python3-venv python3-dev python3-pandas git

3) Nyní z Gitu provedeme klonování Freqtrade instalace

git clone https://github.com/freqtrade/freqtrade.git

Pokud budete chtít využít poslední verzi, která je ve vývoji, tento krok přeskočte, tohle změní vaši větev na „stable“.

cd freqtrade
git checkout stable

A provedeme instalaci samotného Freqtrade pomocí

./setup.sh -i

Klikněte na Enter. Tohle bude chvíli trvat, během procesu budete Vám bude položeno několik dotazů.

Nyní chvilku vyčkejme, může to vypadat, že se nic neděje, ale vše funguje správně.

Stažení NostalgiaForInfinityX strategie

Nyní se vrátíme zpět na kořenový adresář a provedeme klonování strategie z Gitu do kořenového adresáře.

cd
git clone https://github.com/iterativv/NostalgiaForInfinity.git

A provedeme nalinkování konfiguračních souborů a samotné strategie do Freqtrade

ln -s /root/NostalgiaForInfinity/NostalgiaForInfinityX.py /root/freqtrade/user_data/strategies/NostalgiaForInfinityX.py
ln -s /root/NostalgiaForInfinity/configs/pairlist-volume-binance-usdt.json /root/freqtrade/user_data/pairlist-volume-binance-usdt.json
ln -s /root/NostalgiaForInfinity/configs/blacklist-binance.json /root/freqtrade/user_data/blacklist-binance.json

Získání Binance API klíče

Pokud ještě nemáte vytvoření Binance účet, můžete využít můj affiliate link, který Vám bude dávat 10% Vašich vložených financí.

https://accounts.binance.com/cs/register?ref=TPYJ2LC7

Pokud již účet máte vytvořen, přejděte do nastavení účtu -> Management API a zde Vytvořit API.
Viz. dokumentace https://www.binance.com/en/support/faq/360002502072

Při vytváření zatrhneme Spot a & Margin Trading.

Binance Vám dá možnost nastavit omezení na IP adresu, zde můžete, ale nemusíte, uvést IP adresu Vašeho serveru, který bude s Binance komunikovat.

Zde si zkopírujeme API key a API secret, který následně použijeme ve Vašem konfiguračním souboru.

 

Telegram

Pro vytvoření Telegram bota postupujte pomocí návodu zde.

Vytvoření konfiguračního souboru

Na serveru spustíme příkaz:

nano /root/freqtrade/user_data/config-binance.json

A vložíme ukázkový konfigurační soubor. A do něj vložíme vygenerované API klíče z Binance na místo BINANCE-API-KEY A BINANCE-API-SECRET. 

Pokud jsme si vytvořili Telegram bota, změníme {telegram: {‚enabled‘: true}} a do token a chat_id vložíme získáné údaje.

Uložíme pomocí Ctrl+X a Y.

{
  "dry_run": false,
  "db_url": "sqlite:///nostalgia.sqlite",
  "timeframe": "5m",
  "max_open_trades": 5,
  "stake_currency": "USDT",
  "stake_amount": "unlimited",
  "tradable_balance_ratio": 0.99,
  "fiat_display_currency": "USD",
  "unfilledtimeout": {
    "entry": 15,
    "exit": 15,
    "exit_timeout_count": 0,
    "unit": "minutes"
  },
  "order_types": {
    "entry": "limit",
    "exit": "limit",
    "emergency_exit": "limit",
    "force_entry": "limit",
    "force_exit": "limit",
    "stoploss": "limit",
    "stoploss_on_exchange": false,
    "stoploss_on_exchange_interval": 60
  },
  "entry_pricing": {
    "price_side": "other",
    "use_order_book": false,
    "order_book_top": 1,
    "price_last_balance": 0.0,
    "check_depth_of_market": { "enabled": false, "bids_to_ask_delta": 1 }
  },
  "exit_pricing": {
    "price_side": "other",
    "use_order_book": false,
    "order_book_top": 1,
    "price_last_balance": 0.0
  },
  "exchange": {
    "name": "binance",
    "key": "BINANCE-API-KEY",
    "secret": "BINANCE-API-SECRET"
  },
  "telegram": {
    "enabled": false,
    "token": "",
    "chat_id": ""
  },
  "bot_name": "freqtrade-binance",
  "initial_state": "running",
  "forcebuy_enable": true,
  "internals": {
    "process_throttle_secs": 3
  }
}

K vašemu obchodování nyní bude využita měna USDT, jakékoliv jiné finance, které nechcete využít k obchodování, přesuňte například na BUSB, naopak obchodovatelnou měnu přesuňte na USDT.

V configu máme nyní povoleno otevřít maximálně 5 tradů a „stake_amount“ nám říká, že částka jednotlivé tradu není omezena, tzn. aktuální zůstatek v USDT / 5.

Teoreticky jsme připravení spustit bota.

Spuštění Freqtrade

Freqtrade se dá samozřejmě spustit vícero způsoby, my se vydáme cestou „screen“.
Nainstalujeme screen do systému pomocí.

sudo apt-get install screen
Otevřeme novou screenu
screen

Klikněte na Enter. Protože je to poprvé, co to spouštíte, uvidíte úvodní obrazovku. Ignorujte to a stiskněte Enter.

Teď budete zpátky u konzole. Jedná se o ekvivalent otevření nové karty prohlížeče pouze pomocí terminálu.

Odtud zadejte

cd ~/freqtrade/
python3 -m venv .env
source .env/bin/activate
python3 -m pip install --upgrade pip
pip install pandas_ta

Odepněte screen pomocí držení CTRL +  A a pak D.

Vše je hotovo, vytvoříme si inicializační skript pomocí

cd
nano start-freqtrade-nostalgia.sh

Do souboru vložíme následující kód a uložíme.

#!/bin/bash

cd /root/freqtrade/
. ./.env/bin/activate
screen -dmS freqtrade_nfi_bot freqtrade trade -c /root/freqtrade/user_data/config-binance.json -c /root/NostalgiaForInfinity/configs/pairlist-volume-binance-usdt.json -c /root/NostalgiaForInfinity/configs/blacklist-binance.json --strategy NostalgiaForInfinityX

Soubor uložíme pomocí CTRL + X a Y. Skript uděláme spustitelný:

chmod +x start-freqtrade-nostalgia.sh

A pustíme bota, tímhle ho můžete spustit kdykoliv v budoucnu.

./start-freqtrade-nostalgia.sh

Nyní by se Vám měl bot přihlásit k Telegramu a ověřit, zda-li funguje můžete pomocí, kde uvidíte aktivní screen „freqtrade_nfi_bot“

screen -ls

Nyní už stačí pouze čekat na nákupní signály a veškeré další informace budete získávat prostřednictvím svého Telegram bota.

Sledujte Discord kanál NostalgiaForInifinity jakékoliv další aktualizace a změny. Aktualizace vycházejí pravidelně, o tom si napíšeme v dalším dále.

Ručně můžete aktualizaci spustit pomocí

cd /root/NostalgiaForInfinity
git pull

V Telegramu následně zavolat /reload_config

Do budoucna pro Vás připravíme článek o tom, jak NFI automaticky aktualizovat, jak nastavit Telegram bota v češtině, jak vytvořit a nastavit uživatelské prostředí Freqtrade UI, jak spustit i další strategie včetně HyperOpts.