From 36bc8dd3c91eb6f322a5790b7018bc3a8150c8cf Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 10:03:12 +0200 Subject: [PATCH 1/9] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ci skip Úprava README popisu --- README.md | 166 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 106 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 3c4ab7e..2280f1e 100644 --- a/README.md +++ b/README.md @@ -15,8 +15,10 @@ Seznam podporovaných burz: - [Kraken](https://www.kraken.com/) - [Binance](https://www.binance.com/) - [FTX](https://ftx.com/) - - Bittrex - COMING SOON - - Bitfinex - COMING SOON + - [Bittrex](https://global.bittrex.com/) + - [Bitfinex](https://www.bitfinex.com/) + - [Coinbase](https://www.coinbase.com/) + - [KuCoin](https://www.kucoin.com/) # Proč AccBot? Různých botů na nakupování kryptoměn existuje již celá řada, nicméně dost často se jedná o uzavřené aplikace, kam je potřeba se zaregistrovat, vyplnit API klíče a bot pak za vás nakupuje / trejduje dle daných pravidel. Nevýhoda je, že daná aplikace pravděpodobně sbírá data a statistiky o vašich nákupech, kód je uzavřený, čili nemáte plnou kontrolu nad tím, co bot vlastně bude dělat. @@ -43,7 +45,7 @@ Naše řešení je plně decentralizované v tom, že si každý nainstaluje sv 4. **Založený účet na [Azure](https://azure.microsoft.com/cs-cz/)** (účet je zdarma; platí se pouze za využité prostředky, které vychází na cca 0.04$ / měsíc) # Postup instalace -1. Na Coinmate si [vygenerujte API klíče](https://coinmate.io/blog/using-the-coinmate-io-api/) (aby měl BOT přístup k prostředkům na burze a mohl provádět svoji akumulační činnost). Do poznámkového bloku si zapište vygenerovaný ClientId, PublicKey a PrivateKey -> budete je potřebovat v bodu 5. +1. Vygenerujte si na své burze API klíče. Např pro Coinmate je [návod na vygenerování klíčů zde](https://coinmate.io/blog/using-the-coinmate-io-api/). Tento krok je důležitý k tomu, aby měl AccBot přístup k prostředkům na burze a mohl provádět svoji akumulační činnost. Do poznámkového bloku si zapište vygenerovaný ClientId, PublicKey a PrivateKey -> budete je potřebovat v bodu 5. - POZOR: Je nutné API klíčům přidat oprávnění na Trading, viz: ![image](https://user-images.githubusercontent.com/87997650/127633515-b5828914-6183-4c60-8208-4e78d262f62e.png). @@ -61,30 +63,38 @@ Naše řešení je plně decentralizované v tom, že si každý nainstaluje sv ### GENERAL USER-DEFINED VARIABLES ### ###################################### # Burza, na kterou chcete napojit bota -# (MOŽNÉ HODNOTY: coinmate, huobi, binance, kraken, ftx) +# (MOŽNÉ HODNOTY: coinmate, huobi, binance, kraken, ftx, coinbase, kucoin, bitfinex, bittrex) $ExchangeName='coinmate' # Jméno, které se zobrazuje v Telegram notifikacích $Name='anonymous' +# Jméno AccBota, kterého chcete nasadit. Využije se v momentě, kdy chcete akumulovat více párů najednou. +# Použití: +# 1. Spustíte skript s např. AccBotName='BTC-AccBot' s konfigurací pro prvního bota +# 2. Spustíte skript s např. AccBotName='ETH-AccBot' s konfigurací pro druhého bota +# (POVOLENÉ HODNOTY: "a-z", "0-9", "-") + +$AccBotName='BTC-AccBot' + ################################################ ########### Nastavení časovače ################# ################################################ # Máte možnost vyplnit buďto proměnnou $HourDivider nebo $NCronTabExpression -# Pokud chcete nakupovat méně než 1x za den, což je i doporučené nastavení (častěji po menších dávkách), vyplňte HourDivider +# Pokud chcete nakupovat každých X hodin (méně než 1x za den), což je i doporučené nastavení (častěji po menších dávkách), vyplňte HourDivider # HourDivider určuje po kolika hodinách chcete pravidelně nakupovat # (MOŽNÉ HODNOTY: 1, 2, 3, 4, 6, 8, 12) + $HourDivider='1' -# Pokud chcete nakupovat např. pouze jednou za 2 dny, jednou týdně, -# nebo např. každé úterý a sobotu, vyplňte $NCronTabExpression -# Formát této proměnné je v NCRONTAB, -# viz: https://docs.microsoft.com/cs-cz/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions +# Pokud chcete nakupovat např. pouze jednou za 2 dny, jednou týdně, nebo např. každé úterý a sobotu, vyplňte $NCronTabExpression +# Formát této proměnné je v NCRONTAB, viz: https://docs.microsoft.com/cs-cz/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions # Příklady: # "0 0 */2 * * *" -> jednou za dvě hodiny # "0 30 9 * * 1-5" -> v 9:30 každý pracovní den # Online generátor NCRONTAB hodnoty: https://ncrontab.swimburger.net/ + $NCronTabExpression = '' ################################################ @@ -121,6 +131,7 @@ $TelegramBot='telegram_bot_hash' # DOPORUČENÍ: Standardně mít vypnuté, tedy "false". # Log zvyšuje měsíční náklady z cca 0.04 € / měsíc na cca 0.2 € / měsíc. # Doporučujeme tedy zapnout pouze pokud Vám bot například nenakupuje jak by měl. + $CreateAzureLog = 'false' ################################## @@ -128,12 +139,8 @@ $CreateAzureLog = 'false' ################################## ``` 8. Po uložení obecné konfigurace otevřte konfigurační soubor **coinmate_variables.ps1** nebo **huobi_variables.ps1** v závislosti na tom, na jaké burze chcete akumulovat. - - V případě Coinmate vyplňte následující hodnoty: + - V případě **Coinmate** vyplňte následující hodnoty: ```powershell - ###################################### - ### COINMATE USER-DEFINED VARIABLES ##### - ###################################### - # Crypto, které na Coinmate chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' @@ -152,26 +159,13 @@ $CreateAzureLog = 'false' # Private key z Coinmate API $CoinMateCredentials_PrivateKey='XXX' - # (Využije se pouze v případě, kdy $WithdrawalEnabled='true'). - # Maximální limit na withdrawal fee v procentech. (DEFAULT: 0.001 = 0.1 %) - $MaxWithdrawalPercentageFee = '0.001' - # (Využije se pouze v případě, kdy $WithdrawalEnabled='true'). # Maximální limit na withdrawal fee v absolutní hodnotě (Kč) # Pokud je nastaveno -1, uplatní se pouze podmínka procentuální => $MaxWithdrawalPercentageFee $MaxWithdrawalAbsoluteFee = -1 - - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### ``` - - V případě Huobi vyplňte následující hodnoty: + - V případě **Huobi** vyplňte následující hodnoty: ```powershell - ###################################### - ### HUOBI USER-DEFINED VARIABLES ##### - ###################################### - # Crypto, které na Huobi chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' @@ -186,17 +180,9 @@ $CreateAzureLog = 'false' # API Secret z Huobi API $HuobiCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### ``` - - V případě Kraken vyplňte následující hodnoty: + - V případě **Kraken** vyplňte následující hodnoty: ```powershell - ###################################### - ### KRAKEN USER-DEFINED VARIABLES ##### - ###################################### - # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' @@ -214,17 +200,9 @@ $CreateAzureLog = 'false' # API Secret z Kraken API $KrakenCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### ``` - - V případě Binance vyplňte následující hodnoty: + - V případě **Binance** vyplňte následující hodnoty: ```powershell - ###################################### - ### BINANCE USER-DEFINED VARIABLES ##### - ###################################### - # Crypto, které na Binance chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH, ...) $Currency='BTC' @@ -239,17 +217,9 @@ $CreateAzureLog = 'false' # API Secret z Binance API $BinanceCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### ``` - - V případě FTX vyplňte následující hodnoty: + - V případě **FTX** vyplňte následující hodnoty: ```powershell - ###################################### - ### FTX USER-DEFINED VARIABLES ##### - ###################################### - # Crypto, které na Binance chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH, ...) $Currency='BTC' @@ -259,15 +229,91 @@ $CreateAzureLog = 'false' # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) $ChunkSize='5' - # API Key z FTX API + # API Key z Binance API $FTXCredentials_Key='XXX' - # API Secret z FTX API + # API Secret z Binance API $FTXCredentials_Secret='XXX' + ``` + - V případě **Bitfinex** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Bitfinex API + $BitfinexCredentials_Key='XXX' + + # API Secret z Bitfinex API + $BitfinexCredentials_Secret='XXX' + ``` + - V případě **KuCoin** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Huobi chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Huobi nakupovat crypto (MOŽNÉ HODNOTY: USDT, HUSD) + $Fiat='USDT' + + # Velikost chunku v USDT, resp. HUSD, který chcete pravidelně nakupovat (MINIMUM: 5) + $ChunkSize='5' + + # API Key z KuCoin API + $KuCoinCredentials_Key='XXX' + + # API Secret z KuCoin API + $KuCoinCredentials_Secret='XXX' + + # API PassPhrase z KuCoin API + $KuCoinCredentials_PassPhrase='XXX' + ``` + - V případě **Coinbase** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Coinbase API + $CoinbaseCredentials_Key='XXX' + + # API Secret z Coinbase API + $CoinbaseCredentials_Secret='XXX' + ``` + - V případě **Bittrex** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Bittrex API + $BittrexCredentials_Key='XXX' - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### + # API Secret z Bittrex API + $BittrexCredentials_Secret='XXX' ``` <a name="installscript"></a> 9. From a47d91e0bc88af0d95a81087985935041ad054fa Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 10:15:18 +0200 Subject: [PATCH 2/9] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ci skip úprava README CZ --- README.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2280f1e..7ad3653 100644 --- a/README.md +++ b/README.md @@ -364,10 +364,19 @@ Eventuálně postupujte dle následujících printscreenů -> vytvoření přes ![image](https://user-images.githubusercontent.com/87997650/127707327-faa3fa84-56ab-4fce-be0f-7a3f81cadf38.png) 5. Hotovo, do vytvořeného kanálu by Vám odteď měl bot zapisovat informace o nákupech se statistikami. -# Úprava nastavení / Aktualizace již běžícího AccBota +# FAQ +**Q:** Jak si mohu změnit nastavení již běžícího AccBota? -- Pokud Vám AccBot již úspěšně běží a chcete si časem změnit nějaké nastavení _(četnost nebo výše jednotlivých nákupů, povolení withdrawal, etc.)_, nejjednodušším způsobem je upravit **USER-DEFINED VARIABLES** v instalačním skriptu **install_script.ps1** a skript znovu spustit dle kroku 9 [instalačního návodu](#installscript). -- Pokud chcete nasadit novou verzi AccBota, stáhněte si [ZIP z aktuálního RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), nastavte si konfigurační soubory **init_variables.ps1** a _{burzu, na které chcete akumulovat}_ **variables.ps1** a skript znovu spustit dle kroku 7 [instalačního návodu](#installscript). +**A:** Pokud Vám AccBot již úspěšně běží a chcete si časem změnit nějaké nastavení _(četnost nebo výše jednotlivých nákupů, povolení withdrawal, etc.)_, nejjednodušším způsobem je upravit **USER-DEFINED VARIABLES** v instalačním skriptu **install_script.ps1** a skript znovu spustit dle kroku 9 [instalačního návodu](#installscript). +## +**Q:** Jak postupovat při nasazení nové verze AccBota? + +**A:** Stáhněte si [ZIP z aktuálního RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), nastavte si konfigurační soubory **init_variables.ps1** a _{burzu, na které chcete akumulovat}_ **variables.ps1** a skript znovu spustit dle kroku 7 [instalačního návodu](#installscript). +## +**Q:** Mohu zároveň akumulovat BTC a k tomu například i ETH? + +**A:** Ano. Stačí nejdřív spustit skript dle kroku 7 [instalačního návodu](#installscript) s konfigurací 1. bota (tedy např. akumulace do BTC), a poté spustit skript s konfigurací 2. bota. +⚠️POZOR: Je potřeba změnit proměnnou **$AccBotName** (název AccBota) v konfiguračním souboru **init_variables.ps1**. # Donate ![heart_donate](https://user-images.githubusercontent.com/87997650/127650190-188e401a-9942-4511-847e-d1010628777a.png) From 1e53541e6d8442b25ec8e90b39b43542d83d55b1 Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 21:20:11 +0200 Subject: [PATCH 3/9] Update README.md ci skip switch en and cs README --- README.md | 318 +++++++++++++++++++++++++++--------------------------- 1 file changed, 159 insertions(+), 159 deletions(-) diff --git a/README.md b/README.md index 7ad3653..16cf874 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,13 @@ [![GitHub Release](https://img.shields.io/github/release/crynners/accbot.svg?style=flat)](https://github.com/Crynners/AccBot/releases/latest) [![Github All Releases](https://img.shields.io/github/downloads/crynners/accbot/total.svg)](https://github.com/Crynners/AccBot/releases/latest) -_Read the README in [English](https://github.com/Crynners/AccBot/blob/main/README.en.md)._ +_Přečíst README v [češtině <img src="https://cdn.countryflags.com/thumbs/czech-republic/flag-400.png" width=25 height=16 />](https://github.com/Crynners/AccBot/blob/main/README.cs.md)_ -# Úvod -Vítejte na stránkách AccBota. AccBot je open-source akumulační bot, který v pravidelných intervalech po malých částkách v Kč nebo Eurech nakupuje [BTC](https://cs.wikipedia.org/wiki/Bitcoin) _(eventuálně LTC, ETH, XMR nebo DASH a další)_ na nejznámějších burzách dle strategie [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html). +# Introduction +Welcome to AccBot. AccBot is an open-source accumulation bot that buys [BTC](https://cs.wikipedia.org/wiki/Bitcoin) _(possibly LTC, ETH, XMR or DASH and others)_ at regular intervals in small amounts of CZK or EUR on the most popular exchanges according to the [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html) strategy. <a name="exchangelist"></a> -Seznam podporovaných burz: +List of supported exchanges: - [Coinmate](https://coinmate.io/) - [Huobi](https://www.huobi.com/en-us/) - [Kraken](https://www.kraken.com/) @@ -20,117 +20,117 @@ Seznam podporovaných burz: - [Coinbase](https://www.coinbase.com/) - [KuCoin](https://www.kucoin.com/) -# Proč AccBot? -Různých botů na nakupování kryptoměn existuje již celá řada, nicméně dost často se jedná o uzavřené aplikace, kam je potřeba se zaregistrovat, vyplnit API klíče a bot pak za vás nakupuje / trejduje dle daných pravidel. Nevýhoda je, že daná aplikace pravděpodobně sbírá data a statistiky o vašich nákupech, kód je uzavřený, čili nemáte plnou kontrolu nad tím, co bot vlastně bude dělat. -Naše řešení je plně decentralizované v tom, že si každý nainstaluje svého bota do svého vlastního prostředí. Jednotliví boti uživatelů jsou tak plně odděleni a žádná data se centrálně nikde neshromažďují. Statistiky se každému ukládají do jeho vlastní DB, které se pak vypisují dle libosti do soukromých Telegram kanálů. +# Why AccBot? +There are many different bots for buying cryptocurrencies, but quite often they are closed applications where you need to register, fill in API keys and the bot then buys/trade for you according to the rules. The downside is that the app probably collects data and statistics about your purchases, the code is closed, so you don't have full control over what the bot will actually do. +Our solution is fully decentralized in that everyone installs their own bot in their own environment. Thus, individual user bots are fully decoupled and no data is collected centrally anywhere. Everyone's statistics are stored in their own DB, which are then dumped at will to private Telegram channels. -# Jednoduchý popis fungování bota -* Nakupuje uživatelem definovanou částku v českých korunách _(typicky desítky Kč)_ / eurech _(typicky jednotky Eur)_ každých uživatelsky definovaných hodin _(ideálně dělitelných 24, aby nakupoval vždy ve stejný čas, tedy např. -> každou hodinu, 1x za 2h, 1x za 4h, 1x za 8h, etc.)_. -* Běží autonomně bez nutnosti jej nějak v čase spravovat, je zapotřebí si pouze hlídat stav svého Kč účtu a pravidelně jej na burze doplňovat _(např. jednou za měsíc)_. -* **Náklady na provoz jsou prakticky nulové** (vychází to cca na 0.04 € / měsíčně za Azure hosting); bot je implementován zatím jako [Azure function](https://azure.microsoft.com/cs-cz/services/functions/), která se spouští v pravidelných intervalech a celé řešení je tedy hostované na [Azure](https://azure.microsoft.com/cs-cz/). -* (Volitelná funkcionalita) Po každém nákupu Vás informuje na Telegramovém kanále o tom, za jakou částku nakoupil. Tuto informaci doplní o statistiky, jaká je aktuální průměrná akumulovaná cena, etc. Viz příklad: +# A simple description of how the shoe works +* It buys a user-defined amount in Czech crowns _(typically tens of CZK)_ / Euros _(typically units of Euros)_ every user-defined hours _(ideally divisible by 24, so that it always buys at the same time, e.g. -> every hour, 1x in 2h, 1x in 4h, 1x in 8h, etc.)_. +* It runs autonomously without the need to manage it somehow over time, you only need to keep track of your CZK account balance and replenish it regularly on the exchange _(e.g. once a month)_. +* **Operating costs are practically zero** (it comes out to about 0.04 €/month for Azure hosting); the bot is implemented as [Azure function](https://azure.microsoft.com/cs-cz/services/functions/) for now, which runs at regular intervals and the whole solution is thus hosted on [Azure](https://azure.microsoft.com/cs-cz/). +* (Optional functionality) After each purchase, the Telegram channel informs you of the amount of the purchase. This information is supplemented with statistics, what is the current average accumulated price, etc. See example: * ![image](https://user-images.githubusercontent.com/87997650/127355720-fe73c0b5-5fd4-4d31-98dc-b569975f8a9e.png) -* (Volitelná funkcionalita) Pokud je naakumulované dostatečné množství BTC, pak pokud je poplatek za výběr z celkové částky menší, než uživatelsky stanovený limit (např. 0.1 %), bot pošle naakumulované množství BTC z burzy do definované BTC peněženky (poznámka: pokud chcete využívat tuto funkcionalitu, doporučujeme povolit API odeslání pouze na Vaši konkrétní BTC peněženku, viz nastavení při vytváření API klíče na Coinmate) +* (Optional functionality) If a sufficient amount of BTC is accumulated, then if the withdrawal fee from the total amount is less than the user defined limit (e.g. 0.1%), the bot will send the accumulated amount of BTC from the exchange to the defined BTC wallet (note: if you want to use this functionality, we recommend enabling API send only to your specific BTC wallet, see settings when creating an API key on Coinmate) * ![image](https://user-images.githubusercontent.com/87997650/127356371-6a9d1493-55f0-41cc-ab03-4a67cf610f42.png) -# Prerekvizity -1. **Nainstalovaný [PowerShell](https://docs.microsoft.com/cs-cz/powershell/scripting/install/installing-powershell?view=powershell-7.1)** -2. **Nainstalovaný [Azure CLI](https://docs.microsoft.com/cs-cz/cli/azure/install-azure-cli)** -3. **Založený účet na [libovolné podporované burze](#exchangelist)** - - Pokud byste nás chtěli podpořit a zaregistrovat se přes náš referral link, můžete kliknutím na bannery níže +# Pre-requisites +1. **Installed [PowerShell](https://docs.microsoft.com/cs-cz/powershell/scripting/install/installing-powershell?view=powershell-7.1)** +2. **Installed [Azure CLI](https://docs.microsoft.com/cs-cz/cli/azure/install-azure-cli)** +3. **An established account on [any supported exchange](#exchangelist)** + - If you would like to support us and sign up through our referral link, you can click on the banners below - <a href="https://coinmate.io?referral=ZWw4NVlXbDRVbTFVT0dKS1ZHczBZMXB1VEhKTlVRPT0"><img src="https://coinmate.io/static/img/banner/CoinMate_Banner_02.png" alt="Registrační odkaz přes referral" border="0"></a> + <a href="https://coinmate.io?referral=ZWw4NVlXbDRVbTFVT0dKS1ZHczBZMXB1VEhKTlVRPT0"><img src="https://coinmate.io/static/img/banner/CoinMate_Banner_02.png" alt="Registration link via referral" border="0"></a> -4. **Založený účet na [Azure](https://azure.microsoft.com/cs-cz/)** (účet je zdarma; platí se pouze za využité prostředky, které vychází na cca 0.04$ / měsíc) +4. **An account on [Azure](https://azure.microsoft.com/cs-cz/)** (the account is free; you only pay for the funds used, which comes out to about $0.04/month) -# Postup instalace -1. Vygenerujte si na své burze API klíče. Např pro Coinmate je [návod na vygenerování klíčů zde](https://coinmate.io/blog/using-the-coinmate-io-api/). Tento krok je důležitý k tomu, aby měl AccBot přístup k prostředkům na burze a mohl provádět svoji akumulační činnost. Do poznámkového bloku si zapište vygenerovaný ClientId, PublicKey a PrivateKey -> budete je potřebovat v bodu 5. - - POZOR: Je nutné API klíčům přidat oprávnění na Trading, viz: +# Installation procedure +1. Generate API keys on your exchange. E.g. for Coinmate is [instructions for generating keys here](https://coinmate.io/blog/using-the-coinmate-io-api/). This step is important to allow AccBot to access funds on the exchange and perform its accumulation activity. Write down the generated ClientId, PublicKey and PrivateKey in your notepad -> you will need them in step 5. + - ATTENTION: You need to add Trading permissions to the API keys, see: ![image](https://user-images.githubusercontent.com/87997650/127633515-b5828914-6183-4c60-8208-4e78d262f62e.png). - - Pokud byste chtěli využít i funkci automatického výběru, zaškrtněte i volbu "Enable for Withdrawal". V takovém případě doporučujeme si zaškrtnout i "Enable for withdrawals to template addresses only", což znanená, že bot bude moci poslat naakumulované BTC pouze na Vámi definované adresy, viz: + - If you'd like to use the autowithdrawal feature, check the "Enable for Withdrawal" option as well. In this case, we recommend that you also check "Enable for withdrawals to template addresses only", which means that the bot will only be able to send accumulated BTC to the addresses you define, see: ![image](https://user-images.githubusercontent.com/87997650/127633656-a6698455-03b6-4b23-902d-e5642dbe4988.png) -3. Stáhněte si [ZIP z aktuálního RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), který obsahuje instalační PowerShell skript a zbuilděného bota. -4. ZIP z předchozího bodu rozbalte kamkoliv do Vašeho souborového systému -5. (Nepovinné) Nastavte si [Telegram notifikace](#telegramnotifications). _(Pokud i přes doporučení nechcete Telegram notifikace využívat, v dalším kroku proměnné týkající se Telegramu nevyplňujte)_ -6. V poznámkovém bloku (nebo jiném textovém editoru) otevřte nejprve soubor **init_variables.ps1**, který obsahuje obecné nastavení bota -7. Upravte proměnné v sekci **### USER-DEFINED VARIABLES ###** +3. Download the [ZIP from the current RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), which contains the PowerShell installation script and the built bot. +4. Unzip the ZIP from the previous point anywhere on your filesystem. +5.(Optional) Set up [Telegram notifications](#telegramnotifications). _(If, despite the recommendation, you do not want to use Telegram notifications, do not fill in the Telegram variables in the next step)_ +6. In Notepad (or another text editor), first open the **init_variables.ps1** file, which contains the general settings for the bot +7. Edit the variables in the **## USER-DEFINED VARIABLES ###** section. ```powershell ###################################### ### GENERAL USER-DEFINED VARIABLES ### ###################################### -# Burza, na kterou chcete napojit bota -# (MOŽNÉ HODNOTY: coinmate, huobi, binance, kraken, ftx, coinbase, kucoin, bitfinex, bittrex) +# Exchange you want to link the bot to +# (POSSIBLE VALUES: coinmate, huobi, binance, kraken, ftx, coinbase, kucoin, bitfinex, bittrex) $ExchangeName='coinmate' -# Jméno, které se zobrazuje v Telegram notifikacích +#Name that appears in Telegram notifications $Name='anonymous' -# Jméno AccBota, kterého chcete nasadit. Využije se v momentě, kdy chcete akumulovat více párů najednou. -# Použití: -# 1. Spustíte skript s např. AccBotName='BTC-AccBot' s konfigurací pro prvního bota -# 2. Spustíte skript s např. AccBotName='ETH-AccBot' s konfigurací pro druhého bota -# (POVOLENÉ HODNOTY: "a-z", "0-9", "-") +# The name of the AccBot you want to deploy. Used when you want to accumulate multiple pairs at once. +# Usage: +# 1. Run the script with e.g. AccBotName='BTC-AccBot' with the configuration for the first bot +# 2. Run a script with e.g. AccBotName='ETH-AccBot' with the configuration for the second bot +# (ALLOWED VALUES: "a-z", "0-9", "-") $AccBotName='BTC-AccBot' ################################################ -########### Nastavení časovače ################# +########### Timer settings ##################### ################################################ -# Máte možnost vyplnit buďto proměnnou $HourDivider nebo $NCronTabExpression +# You have the option to fill in either the $HourDivider or $NCronTabExpression variable -# Pokud chcete nakupovat každých X hodin (méně než 1x za den), což je i doporučené nastavení (častěji po menších dávkách), vyplňte HourDivider -# HourDivider určuje po kolika hodinách chcete pravidelně nakupovat -# (MOŽNÉ HODNOTY: 1, 2, 3, 4, 6, 8, 12) +# If you want to buy every X hours (less than once per day), which is also the recommended setting (more often in smaller batches), fill in HourDivider +# HourDivider specifies how many hours you want to shop regularly +# (POSSIBLE VALUES: 1, 2, 3, 4, 6, 8, 12) $HourDivider='1' -# Pokud chcete nakupovat např. pouze jednou za 2 dny, jednou týdně, nebo např. každé úterý a sobotu, vyplňte $NCronTabExpression -# Formát této proměnné je v NCRONTAB, viz: https://docs.microsoft.com/cs-cz/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions -# Příklady: -# "0 0 */2 * * *" -> jednou za dvě hodiny -# "0 30 9 * * 1-5" -> v 9:30 každý pracovní den -# Online generátor NCRONTAB hodnoty: https://ncrontab.swimburger.net/ +# If you only want to shop once every 2 days, once a week, or e.g. every Tuesday and Saturday, fill in $NCronTabExpression +# The format of this variable is in NCRONTAB, see: https://docs.microsoft.com/cs-cz/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions +# Examples: +# "0 0 */2 * * * *" -> once every two hours +# "0 30 9 * * * 1-5" -> at 9:30 every working day +# Online NCRONTAB value generator: https://ncrontab.swimburger.net/ $NCronTabExpression = '' ################################################ -########### Nastavení výběru z burzy ########### +########### Exchange selection settings ######## ################################################ -# Příznak, zdali chcete povolit Withdrawal v případě, že je fee menší než 0.1% -# POVOLENÉ HODNOTY: true / false +# Flag if you want to enable Withdrawal if the fee is less than 0.1% +# ALLOWED VALUES: true / false $WithdrawalEnabled='false' -# Adresa peněženky pro withdraw (aplikuje se pouze pokud WithdrawalEnabled = TRUE) +# Wallet address for withdraw (only applies if WithdrawalEnabled = TRUE) $WithdrawalAddress='' -# (Využije se pouze v případě, kdy $WithdrawalEnabled='true'). -# Maximální limit na withdrawal fee v procentech. +# (Only applied if $WithdrawalEnabled='true'). +# Maximum withdrawal fee limit in percentage. # DEFAULT: 0.001 = 0.1 % $MaxWithdrawalPercentageFee = '0.001' ################################################ -########### Nastavení Telegramu ################ +########### Telegram Settings ################## ################################################ -# Adresa telegram kanálu, do kterého chcete dostávat notifikace (ve formátu @NázevKanálu) +# Address of the telegram channel you want to receive notifications to (in @ChannelName format) $TelegramChannel='@channel_name' -# Privátní klíč telegram bota (POZOR, bot musí být členem kanálu výše) +# Private key of the Telegram bot (ATTENTION, the bot must be a member of the channel above) $TelegramBot='telegram_bot_hash' ################################################ -########### Nastavení Azure logu ############### +########### Azure log settings ################# ################################################ -# Příznak pro vytvoření logu na Azure. (POVOLENÉ HODNOTY: true / false). -# DOPORUČENÍ: Standardně mít vypnuté, tedy "false". -# Log zvyšuje měsíční náklady z cca 0.04 € / měsíc na cca 0.2 € / měsíc. -# Doporučujeme tedy zapnout pouze pokud Vám bot například nenakupuje jak by měl. +The # flag to create a log on Azure. (ALLOWED VALUES: true / false). +# RECOMMENDATION: By default have it disabled, i.e. "false". +# Log increases the monthly cost from approx 0.04€/month to approx 0.2€/month. +# So it is recommended to turn it on only if your bot for example does not purchase as it should. $CreateAzureLog = 'false' @@ -138,252 +138,252 @@ $CreateAzureLog = 'false' ### END USER-DEFINED VARIABLES ### ################################## ``` -8. Po uložení obecné konfigurace otevřte konfigurační soubor **coinmate_variables.ps1** nebo **huobi_variables.ps1** v závislosti na tom, na jaké burze chcete akumulovat. - - V případě **Coinmate** vyplňte následující hodnoty: +8. After saving the general configuration, open the configuration file **coinmate_variables.ps1** or **huobi_variables.ps1** depending on which exchange you want to accumulate on. + - For **Coinmate**, fill in the following values: ```powershell - # Crypto, které na Coinmate chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Coinmate (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Coinmate nakupovat crypto (MOŽNÉ HODNOTY: CZK, EUR) + # Fiat currency you want to buy crypto with on Coinmate (POSSIBLE VALUES: CZK, EUR) $Fiat='CZK' - # Velikost chunku v CZK, resp. EUR, který chcete pravidelně nakupovat (MINIMUM pro CZK: 26; MINIMUM pro EUR: 1) + # Size of the chunk in CZK or EUR you want to buy regularly (MINIMUM for CZK: 26; MINIMUM for EUR: 1) $ChunkSize='26' - # ClientId z Coinmate API + # ClientId from Coinmate API $CoinMateCredentials_ClientId='111' - # Public key z Coinmate API + # Public key from Coinmate API $CoinMateCredentials_PublicKey='XXX' - # Private key z Coinmate API + # Private key from Coinmate API $CoinMateCredentials_PrivateKey='XXX' - # (Využije se pouze v případě, kdy $WithdrawalEnabled='true'). - # Maximální limit na withdrawal fee v absolutní hodnotě (Kč) - # Pokud je nastaveno -1, uplatní se pouze podmínka procentuální => $MaxWithdrawalPercentageFee + # (Only used when $WithdrawalEnabled='true'). + # Maximum withdrawal fee limit in absolute value (CZK) + # If set to -1, only the percentage condition is applied => $MaxWithdrawalPercentageFee $MaxWithdrawalAbsoluteFee = -1 ``` - - V případě **Huobi** vyplňte následující hodnoty: + - For **Huobi**, fill in the following values: ```powershell - # Crypto, které na Huobi chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Huobi (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Huobi nakupovat crypto (MOŽNÉ HODNOTY: USDT, HUSD) + # Fiat currency you want to buy crypto with on Huobi (POSSIBLE VALUES: USDT, HUSD) $Fiat='USDT' - # Velikost chunku v USDT, resp. HUSD, který chcete pravidelně nakupovat (MINIMUM: 5) + # The size of the USDT or HUSD chunk you want to buy regularly (MINIMUM: 5) $ChunkSize='5' - # API Key z Huobi API + # API Key from Huobi API $HuobiCredentials_Key='XXX' - # API Secret z Huobi API + # API Secret from Huobi API $HuobiCredentials_Secret='XXX' ``` - - V případě **Kraken** vyplňte následující hodnoty: + - For **Kraken**, fill in the following values: ```powershell - # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Kraken (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + # Fiat currency you want to buy crypto with on Kraken (POSSIBLE VALUES: USDT) $Fiat='USDT' - # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) $ChunkSize='5' - # Název peněženky, do které chcete zaslat naakumulované krypto + # Name of the wallet you want to send the accumulated crypto to $WithdrawalKeyName = '' - # API Key z Kraken API + # API Key from Kraken API $KrakenCredentials_Key='XXX' - # API Secret z Kraken API + # API Secret from Kraken API $KrakenCredentials_Secret='XXX' ``` - - V případě **Binance** vyplňte následující hodnoty: + - In case of **Binance** fill in the following values: ```powershell - # Crypto, které na Binance chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH, ...) + # Crypto you want to buy on Binance (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH, ...) $Currency='BTC' - # Fiat měna, za kterou chcete na Binance nakupovat crypto (MOŽNÉ HODNOTY: USDT, BUSD, USDC, DAI) + # Fiat currency you want to buy crypto with on Binance (POSSIBLE VALUES: USDT, BUSD, USDC, DAI) $Fiat='USDT' - # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) $ChunkSize='10' - # API Key z Binance API + # API Key from Binance API $BinanceCredentials_Key='XXX' - # API Secret z Binance API + # API Secret from Binance API $BinanceCredentials_Secret='XXX' ``` - - V případě **FTX** vyplňte následující hodnoty: + - For **FTX**, fill in the following values: ```powershell - # Crypto, které na Binance chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH, ...) + # Crypto you want to buy on Binance (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH, ...) $Currency='BTC' - # Fiat měna, za kterou chcete na Binance nakupovat crypto (MOŽNÉ HODNOTY: USDT, BUSD, USDC, DAI) + # Fiat currency you want to buy crypto with on Binance (POSSIBLE VALUES: USDT, BUSD, USDC, DAI) $Fiat='USDT' - # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) $ChunkSize='5' - # API Key z Binance API + # API Key from Binance API $FTXCredentials_Key='XXX' - # API Secret z Binance API + # API Secret from Binance API $FTXCredentials_Secret='XXX' ``` - - V případě **Bitfinex** vyplňte následující hodnoty: + - For **Bitfinex**, fill in the following values: ```powershell - # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Kraken (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + # Fiat currency you want to buy crypto with on Kraken (POSSIBLE VALUES: USDT) $Fiat='USDT' - # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) $ChunkSize='5' - # Název peněženky, do které chcete zaslat naakumulované krypto + # Name of the wallet you want to send the accumulated crypto to $WithdrawalKeyName = '' - # API Key z Bitfinex API + # API Key from Bitfinex API $BitfinexCredentials_Key='XXX' - # API Secret z Bitfinex API + # API Secret from Bitfinex API $BitfinexCredentials_Secret='XXX' ``` - - V případě **KuCoin** vyplňte následující hodnoty: + - For **KuCoin**, fill in the following values: ```powershell - # Crypto, které na Huobi chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Huobi (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Huobi nakupovat crypto (MOŽNÉ HODNOTY: USDT, HUSD) + # Fiat currency you want to buy crypto with on Huobi (POSSIBLE VALUES: USDT, HUSD) $Fiat='USDT' - # Velikost chunku v USDT, resp. HUSD, který chcete pravidelně nakupovat (MINIMUM: 5) + # The size of the USDT or HUSD chunk you want to buy regularly (MINIMUM: 5) $ChunkSize='5' - # API Key z KuCoin API + # API Key from KuCoin API $KuCoinCredentials_Key='XXX' - # API Secret z KuCoin API + # API Secret from KuCoin API $KuCoinCredentials_Secret='XXX' - # API PassPhrase z KuCoin API + # API PassPhrase from KuCoin API $KuCoinCredentials_PassPhrase='XXX' ``` - - V případě **Coinbase** vyplňte následující hodnoty: + - For **Coinbase**, fill in the following values: ```powershell - # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Kraken (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + # Fiat currency you want to buy crypto with on Kraken (POSSIBLE VALUES: USDT) $Fiat='USDT' - # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) $ChunkSize='5' - # Název peněženky, do které chcete zaslat naakumulované krypto + # Name of the wallet you want to send the accumulated crypto to $WithdrawalKeyName = '' - # API Key z Coinbase API + # API Key from Coinbase API $CoinbaseCredentials_Key='XXX' - # API Secret z Coinbase API + # API Secret from Coinbase API $CoinbaseCredentials_Secret='XXX' ``` - - V případě **Bittrex** vyplňte následující hodnoty: + - For **Bittrex**, fill in the following values: ```powershell - # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + # Crypto you want to buy on Kraken (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) $Currency='BTC' - # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + # Fiat currency you want to buy crypto with on Kraken (POSSIBLE VALUES: USDT) $Fiat='USDT' - # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) $ChunkSize='5' - # Název peněženky, do které chcete zaslat naakumulované krypto + # Name of the wallet you want to send the accumulated crypto to $WithdrawalKeyName = '' - # API Key z Bittrex API + # API Key from Bittrex API $BittrexCredentials_Key='XXX' - # API Secret z Bittrex API + # API Secret from Bittrex API $BittrexCredentials_Secret='XXX' ``` <a name="installscript"></a> 9. - - <img src="https://user-images.githubusercontent.com/87997650/128522417-9bd02e68-a4d6-48bd-8661-81ec43ee3a47.png" width="25" height="25" />: Poklepáním spusťte **run.bat** file _(Pro Windows OS)._ - - <img src="https://user-images.githubusercontent.com/87997650/128523326-a7456256-4f01-41ef-9c21-1fe5968923cf.png" width="25" height="25" /> / <img src="https://user-images.githubusercontent.com/87997650/128523557-566d738d-67f5-43ac-a65e-080105f92abb.png" width="25" height="25" />: Spusťte PowerShell a v něm proveďte příkaz + - <img src="https://user-images.githubusercontent.com/87997650/128522417-9bd02e68-a4d6-48bd-8661-81ec43ee3a47.png" width="25" height="25" />: Double-click to run **run.bat** file _(For Windows OS)._ + - <img src="https://user-images.githubusercontent.com/87997650/128523326-a7456256-4f01-41ef-9c21-1fe5968923cf.png" width="25" height="25" /> / <img src="https://user-images.githubusercontent.com/87997650/128523557-566d738d-67f5-43ac-a65e-080105f92abb.png" width="25" height="25" />: Run PowerShell and execute the command in PowerShell ```powershell powershell.exe -executionpolicy bypass -file .\install_script.ps1 ``` -Skript Vám automaticky připraví všechny potřebné resources na Azure. Na začátku by mělo vyskočit i okno s přihlášením do Azure portal. +The script will automatically prepare all the resources you need on Azure. It should also pop up the Azure portal login window at the beginning. -**POZOR: Instalace trvá několik minut, vyčkejte prosím na její dokončení.** Na závěr by se měla objevit následující hláška: +** WARNING: The installation takes a few minutes, please wait for it to complete.** The following message should appear at the end: ![image](https://user-images.githubusercontent.com/87997650/128522145-3acfef81-ede6-4e40-95f0-627a532ca5d2.png) <a name="telegramnotifications"></a> -# (Nepovinné) Nastavení Telegram notifikací +# (Optional) Telegram notifications settings -Tato část není povinná pro provoz bota, nicméně jde o velkou přidanou hodnotu, neboť Vás bot bude pravidelně informovat po každém nákupu jaké je Vaše průměrná cena naakumulovaného BTC a kolik BTC jste již naakumulovali. Zároveň si budete moci v reálném čase ověřovat, že bot funguje. +This part is not mandatory for the bot to work, however it is a great added value as the bot will periodically inform you after each purchase what your average BTC accrued price is and how many BTC you have already accrued. You will also be able to verify in real time that the bot is working. -1. Založení účtu na [Telegramu](https://telegram.org/) -2. Vytvoření bota přes BotFather dle [návodu](https://sendpulse.com/knowledge-base/chatbot/create-telegram-chatbot). - - Token z návodu se poté vloží do proměnné **$TelegramBot** z PowerShell skriptu -3. Vytvoření nového kanálu ([videonávod](https://youtu.be/q6-k_LGbw_k) pro vytvoření z mobilní aplikace -> [Android](https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=cs&gl=US) nebo [iOS](https://apps.apple.com/us/app/telegram-messenger/id686449807) verze). -Eventuálně postupujte dle následujících printscreenů -> vytvoření přes [Telegram desktop](https://desktop.telegram.org/). - - V levém horním rohu klikněte na nastavení +1. Create an account on [Telegram](https://telegram.org/) +2. Create a bot via BotFather according to [instructions](https://sendpulse.com/knowledge-base/chatbot/create-telegram-chatbot). + - The token from the tutorial is then inserted into the **$TelegramBot** variable from the PowerShell script +3. Create a new channel ([video tutorial](https://youtu.be/q6-k_LGbw_k) to create from the mobile app -> [Android](https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=cs&gl=US) or [iOS](https://apps.apple.com/us/app/telegram-messenger/id686449807) version). +Alternatively, follow the following printscreen -> create via [Telegram desktop](https://desktop.telegram.org/). + - In the top left corner, click on settings ![image](https://user-images.githubusercontent.com/87997650/127706308-0ca1aead-f5a8-42eb-b740-6463d820636f.png) - - Klikněte na tlačítko `New Channel` + - Click on the `New Channel` button ![image](https://user-images.githubusercontent.com/87997650/127706363-c10948dd-2d97-4dc1-9028-718d1f802153.png) - - Pojmenujte si svůj kanál a potvrďte založení tlačítkem + - Name your channel and confirm the creation with the button ![image](https://user-images.githubusercontent.com/87997650/127706441-52c861f9-3f76-49a0-8d42-9c5d48c657cc.png) - - Kanál označte jako **Public** a vymyslete pro něj unikátní název. Tento název se poté vyplňte ve formátu `@MyAccBotChannel` (v případě příkladu níže) do proměnné **$TelegramChannel** v powershell skriptu + - Mark the channel as **Public** and come up with a unique name for it. This name is then filled in the format `@MyAccBotChannel` (in the case of the example below) in the **$TelegramChannel** variable in the powershell script ![image](https://user-images.githubusercontent.com/87997650/127706976-591cb415-4bc2-444b-95fc-56aaa9d58e73.png) - - Pokud chcete vytvořený kanál nastavit jako **Private** postupujte takto: - - Zjistěte Id vašeho privátního kanálu, např. tak, že kanál otevřete ve [webovém rozhraní Telegram](https://web.telegram.org) - - URL adresa bude mít formát https://web.telegram.org/z/#{IdKanálu} - - Pozor! pro odesílání zpráv přes vytvořeného bota musíte před Id přidat ještě -100. Pokud tedy vaše adresa byla např. https://web.telegram.org/z/#-123456789, výsledné Id bude -100123456789. - - Toto získané Id vložte do proměnné **$TelegramChannel** namísto názvu kanálu. -4. Do kanálu pozvěte svého bota (vyhledejte ho dle jména), kterého jste vytvořili v bodu 2 přes BotFather. + - To set the created channel as **Private** do the following: + - Find out the Id of your private channel, e.g. by opening the channel in the [Telegram web interface](https://web.telegram.org) + - The URL address will be in the format https://web.telegram.org/z/#{ChannelId} + - ⚠️Attention: to send messages via the created bot you have to add -100 before the Id. So if your address was e.g. https://web.telegram.org/z/#-123456789, the resulting Id would be -100123456789. + - Put this resulting Id into the **$TelegramChannel** variable instead of the channel name. +4. Invite your bot (search for it by name) that you created in step 2 via BotFather to the channel. ![image](https://user-images.githubusercontent.com/87997650/127707214-174f6dd0-a990-49d8-8cb0-6c9c9e290102.png) - - Potvrďte bota jako administrátora kanálu + - Confirm the bot as a channel administrator ![image](https://user-images.githubusercontent.com/87997650/127707275-af26e4f8-3c8b-46ff-b437-1e0d29a9ce77.png) - - Ponechte defaultní volbu oprávnění bota + - Leave the default permissions of the bot ![image](https://user-images.githubusercontent.com/87997650/127707327-faa3fa84-56ab-4fce-be0f-7a3f81cadf38.png) -5. Hotovo, do vytvořeného kanálu by Vám odteď měl bot zapisovat informace o nákupech se statistikami. +5. Done, the bot should now write information about purchases with statistics to the created channel. # FAQ -**Q:** Jak si mohu změnit nastavení již běžícího AccBota? +**Q:** How can I change the settings of a running AccBot? -**A:** Pokud Vám AccBot již úspěšně běží a chcete si časem změnit nějaké nastavení _(četnost nebo výše jednotlivých nákupů, povolení withdrawal, etc.)_, nejjednodušším způsobem je upravit **USER-DEFINED VARIABLES** v instalačním skriptu **install_script.ps1** a skript znovu spustit dle kroku 9 [instalačního návodu](#installscript). +**A:** If AccBot is already running successfully and you want to change some settings over time _(frequency or amount of individual purchases, withdrawal permissions, etc.)_, the easiest way is to edit **USER-DEFINED VARIABLES** in the installation script **install_script.ps1** and run the script again according to step 9 [of the installation instructions](#installscript). ## -**Q:** Jak postupovat při nasazení nové verze AccBota? +**Q:** How to deploy a new version of AccBot? -**A:** Stáhněte si [ZIP z aktuálního RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), nastavte si konfigurační soubory **init_variables.ps1** a _{burzu, na které chcete akumulovat}_ **variables.ps1** a skript znovu spustit dle kroku 7 [instalačního návodu](#installscript). +**A:** Download the [ZIP from the current RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), set up the configuration files **init_variables.ps1** and _{burst you want to accumulate}_ **variables.ps1** and re-run the script according to step 7 of the [installation instructions](#installscript). ## -**Q:** Mohu zároveň akumulovat BTC a k tomu například i ETH? +**Q:** Can I accumulate BTC and ETH at the same time? -**A:** Ano. Stačí nejdřív spustit skript dle kroku 7 [instalačního návodu](#installscript) s konfigurací 1. bota (tedy např. akumulace do BTC), a poté spustit skript s konfigurací 2. bota. -⚠️POZOR: Je potřeba změnit proměnnou **$AccBotName** (název AccBota) v konfiguračním souboru **init_variables.ps1**. +**A:** Yes. Just run the script according to step 7 [of the installation guide](#installscript) with the configuration of the 1st bot (i.e. accumulation to BTC), and then run the script with the configuration of the 2nd bot. +⚠️ CAUTION: You need to change the **$AccBotName** variable (AccBot name) in the **init_variables.ps1** configuration file. # Donate ![heart_donate](https://user-images.githubusercontent.com/87997650/127650190-188e401a-9942-4511-847e-d1010628777a.png) -AccBota jsme se rozhodli poskytnout zcela zdarma, neboť chceme co nejvíce lidem umožnit co nejjednodušší a nejlevnější cestu k aplikaci strategie [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html). Věříme, že pravidelné spoření v Bitcoinu je tím nejlepším způsobem k zajištění do budoucna. Investovat do BTC se zapojením emocí a s ambicemi predikovat trh se totiž ve většině případů nevyplácí. +We decided to provide AccBot completely free of charge, as we want to give as many people as possible the easiest and cheapest way to apply the [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html) strategy. We believe that saving regularly in Bitcoin is the best way to secure for the future. In fact, investing in BTC with emotions involved and with ambitions to predict the market does not pay off in most cases. -Pokud byste nás chtěli podpořit, rozhodně se tomu bránit nebudeme. Níže jsou uvedeny jednotlivé peněženky, kam nám můžete zaslat příspěvek třeba na pivo. :) Děkujeme <3 +If you'd like to support us, we certainly won't stop you from doing so. Below are the individual wallets where you can send us a donation, for example for a beer. :) Thank you <3 - **BTC ❤️**: bc1q2hz79m4csklecqgusu9e2yjnrr6e9ca6nhu0at - <img src="https://user-images.githubusercontent.com/87997650/127651099-d9e1b381-adcf-46a5-9d17-59f87176304d.png" width="150" height="150" /> From 4fc3897aa15453ba0510f57765ced531129169ba Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 21:24:41 +0200 Subject: [PATCH 4/9] ci skip update of readme files --- README.cs.md | 402 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.en.md | 339 ------------------------------------------- README.md | 3 +- 3 files changed, 403 insertions(+), 341 deletions(-) create mode 100644 README.cs.md delete mode 100644 README.en.md diff --git a/README.cs.md b/README.cs.md new file mode 100644 index 0000000..4d26f44 --- /dev/null +++ b/README.cs.md @@ -0,0 +1,402 @@ +[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/Crynners/AccBot/blob/main/LICENSE) +[![PR's Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](http://makeapullrequest.com) +[![GitHub Release](https://img.shields.io/github/release/crynners/accbot.svg?style=flat)](https://github.com/Crynners/AccBot/releases/latest) +[![Github All Releases](https://img.shields.io/github/downloads/crynners/accbot/total.svg)](https://github.com/Crynners/AccBot/releases/latest) + +# Úvod +Vítejte na stránkách AccBota. AccBot je open-source akumulační bot, který v pravidelných intervalech po malých částkách v Kč nebo Eurech nakupuje [BTC](https://cs.wikipedia.org/wiki/Bitcoin) _(eventuálně LTC, ETH, XMR nebo DASH a další)_ na nejznámějších burzách dle strategie [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html). + +<a name="exchangelist"></a> +Seznam podporovaných burz: + - [Coinmate](https://coinmate.io/) + - [Huobi](https://www.huobi.com/en-us/) + - [Kraken](https://www.kraken.com/) + - [Binance](https://www.binance.com/) + - [FTX](https://ftx.com/) + - [Bittrex](https://global.bittrex.com/) + - [Bitfinex](https://www.bitfinex.com/) + - [Coinbase](https://www.coinbase.com/) + - [KuCoin](https://www.kucoin.com/) + +# Proč AccBot? +Různých botů na nakupování kryptoměn existuje již celá řada, nicméně dost často se jedná o uzavřené aplikace, kam je potřeba se zaregistrovat, vyplnit API klíče a bot pak za vás nakupuje / trejduje dle daných pravidel. Nevýhoda je, že daná aplikace pravděpodobně sbírá data a statistiky o vašich nákupech, kód je uzavřený, čili nemáte plnou kontrolu nad tím, co bot vlastně bude dělat. +Naše řešení je plně decentralizované v tom, že si každý nainstaluje svého bota do svého vlastního prostředí. Jednotliví boti uživatelů jsou tak plně odděleni a žádná data se centrálně nikde neshromažďují. Statistiky se každému ukládají do jeho vlastní DB, které se pak vypisují dle libosti do soukromých Telegram kanálů. + +# Jednoduchý popis fungování bota +* Nakupuje uživatelem definovanou částku v českých korunách _(typicky desítky Kč)_ / eurech _(typicky jednotky Eur)_ každých uživatelsky definovaných hodin _(ideálně dělitelných 24, aby nakupoval vždy ve stejný čas, tedy např. -> každou hodinu, 1x za 2h, 1x za 4h, 1x za 8h, etc.)_. +* Běží autonomně bez nutnosti jej nějak v čase spravovat, je zapotřebí si pouze hlídat stav svého Kč účtu a pravidelně jej na burze doplňovat _(např. jednou za měsíc)_. +* **Náklady na provoz jsou prakticky nulové** (vychází to cca na 0.04 € / měsíčně za Azure hosting); bot je implementován zatím jako [Azure function](https://azure.microsoft.com/cs-cz/services/functions/), která se spouští v pravidelných intervalech a celé řešení je tedy hostované na [Azure](https://azure.microsoft.com/cs-cz/). +* (Volitelná funkcionalita) Po každém nákupu Vás informuje na Telegramovém kanále o tom, za jakou částku nakoupil. Tuto informaci doplní o statistiky, jaká je aktuální průměrná akumulovaná cena, etc. Viz příklad: + * ![image](https://user-images.githubusercontent.com/87997650/127355720-fe73c0b5-5fd4-4d31-98dc-b569975f8a9e.png) +* (Volitelná funkcionalita) Pokud je naakumulované dostatečné množství BTC, pak pokud je poplatek za výběr z celkové částky menší, než uživatelsky stanovený limit (např. 0.1 %), bot pošle naakumulované množství BTC z burzy do definované BTC peněženky (poznámka: pokud chcete využívat tuto funkcionalitu, doporučujeme povolit API odeslání pouze na Vaši konkrétní BTC peněženku, viz nastavení při vytváření API klíče na Coinmate) + * ![image](https://user-images.githubusercontent.com/87997650/127356371-6a9d1493-55f0-41cc-ab03-4a67cf610f42.png) + +# Prerekvizity +1. **Nainstalovaný [PowerShell](https://docs.microsoft.com/cs-cz/powershell/scripting/install/installing-powershell?view=powershell-7.1)** +2. **Nainstalovaný [Azure CLI](https://docs.microsoft.com/cs-cz/cli/azure/install-azure-cli)** +3. **Založený účet na [libovolné podporované burze](#exchangelist)** + - Pokud byste nás chtěli podpořit a zaregistrovat se přes náš referral link, můžete kliknutím na bannery níže + + <a href="https://coinmate.io?referral=ZWw4NVlXbDRVbTFVT0dKS1ZHczBZMXB1VEhKTlVRPT0"><img src="https://coinmate.io/static/img/banner/CoinMate_Banner_02.png" alt="Registrační odkaz přes referral" border="0"></a> + + +4. **Založený účet na [Azure](https://azure.microsoft.com/cs-cz/)** (účet je zdarma; platí se pouze za využité prostředky, které vychází na cca 0.04$ / měsíc) + +# Postup instalace +1. Vygenerujte si na své burze API klíče. Např pro Coinmate je [návod na vygenerování klíčů zde](https://coinmate.io/blog/using-the-coinmate-io-api/). Tento krok je důležitý k tomu, aby měl AccBot přístup k prostředkům na burze a mohl provádět svoji akumulační činnost. Do poznámkového bloku si zapište vygenerovaný ClientId, PublicKey a PrivateKey -> budete je potřebovat v bodu 5. + - POZOR: Je nutné API klíčům přidat oprávnění na Trading, viz: + + ![image](https://user-images.githubusercontent.com/87997650/127633515-b5828914-6183-4c60-8208-4e78d262f62e.png). + - Pokud byste chtěli využít i funkci automatického výběru, zaškrtněte i volbu "Enable for Withdrawal". V takovém případě doporučujeme si zaškrtnout i "Enable for withdrawals to template addresses only", což znanená, že bot bude moci poslat naakumulované BTC pouze na Vámi definované adresy, viz: + + ![image](https://user-images.githubusercontent.com/87997650/127633656-a6698455-03b6-4b23-902d-e5642dbe4988.png) + +3. Stáhněte si [ZIP z aktuálního RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), který obsahuje instalační PowerShell skript a zbuilděného bota. +4. ZIP z předchozího bodu rozbalte kamkoliv do Vašeho souborového systému +5. (Nepovinné) Nastavte si [Telegram notifikace](#telegramnotifications). _(Pokud i přes doporučení nechcete Telegram notifikace využívat, v dalším kroku proměnné týkající se Telegramu nevyplňujte)_ +6. V poznámkovém bloku (nebo jiném textovém editoru) otevřte nejprve soubor **init_variables.ps1**, který obsahuje obecné nastavení bota +7. Upravte proměnné v sekci **### USER-DEFINED VARIABLES ###** +```powershell +###################################### +### GENERAL USER-DEFINED VARIABLES ### +###################################### +# Burza, na kterou chcete napojit bota +# (MOŽNÉ HODNOTY: coinmate, huobi, binance, kraken, ftx, coinbase, kucoin, bitfinex, bittrex) +$ExchangeName='coinmate' + +# Jméno, které se zobrazuje v Telegram notifikacích +$Name='anonymous' + +# Jméno AccBota, kterého chcete nasadit. Využije se v momentě, kdy chcete akumulovat více párů najednou. +# Použití: +# 1. Spustíte skript s např. AccBotName='BTC-AccBot' s konfigurací pro prvního bota +# 2. Spustíte skript s např. AccBotName='ETH-AccBot' s konfigurací pro druhého bota +# (POVOLENÉ HODNOTY: "a-z", "0-9", "-") + +$AccBotName='BTC-AccBot' + +################################################ +########### Nastavení časovače ################# +################################################ +# Máte možnost vyplnit buďto proměnnou $HourDivider nebo $NCronTabExpression + +# Pokud chcete nakupovat každých X hodin (méně než 1x za den), což je i doporučené nastavení (častěji po menších dávkách), vyplňte HourDivider +# HourDivider určuje po kolika hodinách chcete pravidelně nakupovat +# (MOŽNÉ HODNOTY: 1, 2, 3, 4, 6, 8, 12) + +$HourDivider='1' + +# Pokud chcete nakupovat např. pouze jednou za 2 dny, jednou týdně, nebo např. každé úterý a sobotu, vyplňte $NCronTabExpression +# Formát této proměnné je v NCRONTAB, viz: https://docs.microsoft.com/cs-cz/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions +# Příklady: +# "0 0 */2 * * *" -> jednou za dvě hodiny +# "0 30 9 * * 1-5" -> v 9:30 každý pracovní den +# Online generátor NCRONTAB hodnoty: https://ncrontab.swimburger.net/ + +$NCronTabExpression = '' + +################################################ +########### Nastavení výběru z burzy ########### +################################################ + +# Příznak, zdali chcete povolit Withdrawal v případě, že je fee menší než 0.1% +# POVOLENÉ HODNOTY: true / false +$WithdrawalEnabled='false' + +# Adresa peněženky pro withdraw (aplikuje se pouze pokud WithdrawalEnabled = TRUE) +$WithdrawalAddress='' + +# (Využije se pouze v případě, kdy $WithdrawalEnabled='true'). +# Maximální limit na withdrawal fee v procentech. +# DEFAULT: 0.001 = 0.1 % +$MaxWithdrawalPercentageFee = '0.001' + +################################################ +########### Nastavení Telegramu ################ +################################################ + +# Adresa telegram kanálu, do kterého chcete dostávat notifikace (ve formátu @NázevKanálu) +$TelegramChannel='@channel_name' + +# Privátní klíč telegram bota (POZOR, bot musí být členem kanálu výše) +$TelegramBot='telegram_bot_hash' + +################################################ +########### Nastavení Azure logu ############### +################################################ + +# Příznak pro vytvoření logu na Azure. (POVOLENÉ HODNOTY: true / false). +# DOPORUČENÍ: Standardně mít vypnuté, tedy "false". +# Log zvyšuje měsíční náklady z cca 0.04 € / měsíc na cca 0.2 € / měsíc. +# Doporučujeme tedy zapnout pouze pokud Vám bot například nenakupuje jak by měl. + +$CreateAzureLog = 'false' + +################################## +### END USER-DEFINED VARIABLES ### +################################## +``` +8. Po uložení obecné konfigurace otevřte konfigurační soubor **coinmate_variables.ps1** nebo **huobi_variables.ps1** v závislosti na tom, na jaké burze chcete akumulovat. + - V případě **Coinmate** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Coinmate chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Coinmate nakupovat crypto (MOŽNÉ HODNOTY: CZK, EUR) + $Fiat='CZK' + + # Velikost chunku v CZK, resp. EUR, který chcete pravidelně nakupovat (MINIMUM pro CZK: 26; MINIMUM pro EUR: 1) + $ChunkSize='26' + + # ClientId z Coinmate API + $CoinMateCredentials_ClientId='111' + + # Public key z Coinmate API + $CoinMateCredentials_PublicKey='XXX' + + # Private key z Coinmate API + $CoinMateCredentials_PrivateKey='XXX' + + # (Využije se pouze v případě, kdy $WithdrawalEnabled='true'). + # Maximální limit na withdrawal fee v absolutní hodnotě (Kč) + # Pokud je nastaveno -1, uplatní se pouze podmínka procentuální => $MaxWithdrawalPercentageFee + $MaxWithdrawalAbsoluteFee = -1 + ``` + - V případě **Huobi** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Huobi chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Huobi nakupovat crypto (MOŽNÉ HODNOTY: USDT, HUSD) + $Fiat='USDT' + + # Velikost chunku v USDT, resp. HUSD, který chcete pravidelně nakupovat (MINIMUM: 5) + $ChunkSize='5' + + # API Key z Huobi API + $HuobiCredentials_Key='XXX' + + # API Secret z Huobi API + $HuobiCredentials_Secret='XXX' + ``` + - V případě **Kraken** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Kraken API + $KrakenCredentials_Key='XXX' + + # API Secret z Kraken API + $KrakenCredentials_Secret='XXX' + ``` + - V případě **Binance** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Binance chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH, ...) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Binance nakupovat crypto (MOŽNÉ HODNOTY: USDT, BUSD, USDC, DAI) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='10' + + # API Key z Binance API + $BinanceCredentials_Key='XXX' + + # API Secret z Binance API + $BinanceCredentials_Secret='XXX' + ``` + - V případě **FTX** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Binance chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH, ...) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Binance nakupovat crypto (MOŽNÉ HODNOTY: USDT, BUSD, USDC, DAI) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # API Key z Binance API + $FTXCredentials_Key='XXX' + + # API Secret z Binance API + $FTXCredentials_Secret='XXX' + ``` + - V případě **Bitfinex** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Bitfinex API + $BitfinexCredentials_Key='XXX' + + # API Secret z Bitfinex API + $BitfinexCredentials_Secret='XXX' + ``` + - V případě **KuCoin** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Huobi chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Huobi nakupovat crypto (MOŽNÉ HODNOTY: USDT, HUSD) + $Fiat='USDT' + + # Velikost chunku v USDT, resp. HUSD, který chcete pravidelně nakupovat (MINIMUM: 5) + $ChunkSize='5' + + # API Key z KuCoin API + $KuCoinCredentials_Key='XXX' + + # API Secret z KuCoin API + $KuCoinCredentials_Secret='XXX' + + # API PassPhrase z KuCoin API + $KuCoinCredentials_PassPhrase='XXX' + ``` + - V případě **Coinbase** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Coinbase API + $CoinbaseCredentials_Key='XXX' + + # API Secret z Coinbase API + $CoinbaseCredentials_Secret='XXX' + ``` + - V případě **Bittrex** vyplňte následující hodnoty: + ```powershell + # Crypto, které na Krakenu chcete nakupovat (MOŽNÉ HODNOTY: BTC, LTC, ETH, XRP, DASH) + $Currency='BTC' + + # Fiat měna, za kterou chcete na Krakenu nakupovat crypto (MOŽNÉ HODNOTY: USDT) + $Fiat='USDT' + + # Velikost chunku v USDT (resp. ve $Fiat), který chcete pravidelně nakupovat (MINIMUM: dle burzy) + $ChunkSize='5' + + # Název peněženky, do které chcete zaslat naakumulované krypto + $WithdrawalKeyName = '' + + # API Key z Bittrex API + $BittrexCredentials_Key='XXX' + + # API Secret z Bittrex API + $BittrexCredentials_Secret='XXX' + ``` +<a name="installscript"></a> +9. + - <img src="https://user-images.githubusercontent.com/87997650/128522417-9bd02e68-a4d6-48bd-8661-81ec43ee3a47.png" width="25" height="25" />: Poklepáním spusťte **run.bat** file _(Pro Windows OS)._ + - <img src="https://user-images.githubusercontent.com/87997650/128523326-a7456256-4f01-41ef-9c21-1fe5968923cf.png" width="25" height="25" /> / <img src="https://user-images.githubusercontent.com/87997650/128523557-566d738d-67f5-43ac-a65e-080105f92abb.png" width="25" height="25" />: Spusťte PowerShell a v něm proveďte příkaz + ```powershell + powershell.exe -executionpolicy bypass -file .\install_script.ps1 + ``` +Skript Vám automaticky připraví všechny potřebné resources na Azure. Na začátku by mělo vyskočit i okno s přihlášením do Azure portal. + +**POZOR: Instalace trvá několik minut, vyčkejte prosím na její dokončení.** Na závěr by se měla objevit následující hláška: + +![image](https://user-images.githubusercontent.com/87997650/128522145-3acfef81-ede6-4e40-95f0-627a532ca5d2.png) + +<a name="telegramnotifications"></a> +# (Nepovinné) Nastavení Telegram notifikací + +Tato část není povinná pro provoz bota, nicméně jde o velkou přidanou hodnotu, neboť Vás bot bude pravidelně informovat po každém nákupu jaké je Vaše průměrná cena naakumulovaného BTC a kolik BTC jste již naakumulovali. Zároveň si budete moci v reálném čase ověřovat, že bot funguje. + +1. Založení účtu na [Telegramu](https://telegram.org/) +2. Vytvoření bota přes BotFather dle [návodu](https://sendpulse.com/knowledge-base/chatbot/create-telegram-chatbot). + - Token z návodu se poté vloží do proměnné **$TelegramBot** z PowerShell skriptu +3. Vytvoření nového kanálu ([videonávod](https://youtu.be/q6-k_LGbw_k) pro vytvoření z mobilní aplikace -> [Android](https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=cs&gl=US) nebo [iOS](https://apps.apple.com/us/app/telegram-messenger/id686449807) verze). +Eventuálně postupujte dle následujících printscreenů -> vytvoření přes [Telegram desktop](https://desktop.telegram.org/). + - V levém horním rohu klikněte na nastavení + + ![image](https://user-images.githubusercontent.com/87997650/127706308-0ca1aead-f5a8-42eb-b740-6463d820636f.png) + - Klikněte na tlačítko `New Channel` + + ![image](https://user-images.githubusercontent.com/87997650/127706363-c10948dd-2d97-4dc1-9028-718d1f802153.png) + - Pojmenujte si svůj kanál a potvrďte založení tlačítkem + + ![image](https://user-images.githubusercontent.com/87997650/127706441-52c861f9-3f76-49a0-8d42-9c5d48c657cc.png) + - Kanál označte jako **Public** a vymyslete pro něj unikátní název. Tento název se poté vyplňte ve formátu `@MyAccBotChannel` (v případě příkladu níže) do proměnné **$TelegramChannel** v powershell skriptu + ![image](https://user-images.githubusercontent.com/87997650/127706976-591cb415-4bc2-444b-95fc-56aaa9d58e73.png) + - Pokud chcete vytvořený kanál nastavit jako **Private** postupujte takto: + - Zjistěte Id vašeho privátního kanálu, např. tak, že kanál otevřete ve [webovém rozhraní Telegram](https://web.telegram.org) + - URL adresa bude mít formát https://web.telegram.org/z/#{IdKanálu} + - ⚠️Pozor! pro odesílání zpráv přes vytvořeného bota musíte před Id přidat ještě -100. Pokud tedy vaše adresa byla např. https://web.telegram.org/z/#-123456789, výsledné Id bude -100123456789. + - Toto získané Id vložte do proměnné **$TelegramChannel** namísto názvu kanálu. +4. Do kanálu pozvěte svého bota (vyhledejte ho dle jména), kterého jste vytvořili v bodu 2 přes BotFather. + ![image](https://user-images.githubusercontent.com/87997650/127707214-174f6dd0-a990-49d8-8cb0-6c9c9e290102.png) + - Potvrďte bota jako administrátora kanálu + + ![image](https://user-images.githubusercontent.com/87997650/127707275-af26e4f8-3c8b-46ff-b437-1e0d29a9ce77.png) + - Ponechte defaultní volbu oprávnění bota + + ![image](https://user-images.githubusercontent.com/87997650/127707327-faa3fa84-56ab-4fce-be0f-7a3f81cadf38.png) +5. Hotovo, do vytvořeného kanálu by Vám odteď měl bot zapisovat informace o nákupech se statistikami. + +# FAQ +**Q:** Jak si mohu změnit nastavení již běžícího AccBota? + +**A:** Pokud Vám AccBot již úspěšně běží a chcete si časem změnit nějaké nastavení _(četnost nebo výše jednotlivých nákupů, povolení withdrawal, etc.)_, nejjednodušším způsobem je upravit **USER-DEFINED VARIABLES** v instalačním skriptu **install_script.ps1** a skript znovu spustit dle kroku 9 [instalačního návodu](#installscript). +## +**Q:** Jak postupovat při nasazení nové verze AccBota? + +**A:** Stáhněte si [ZIP z aktuálního RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), nastavte si konfigurační soubory **init_variables.ps1** a _{burzu, na které chcete akumulovat}_ **variables.ps1** a skript znovu spustit dle kroku 7 [instalačního návodu](#installscript). +## +**Q:** Mohu zároveň akumulovat BTC a k tomu například i ETH? + +**A:** Ano. Stačí nejdřív spustit skript dle kroku 7 [instalačního návodu](#installscript) s konfigurací 1. bota (tedy např. akumulace do BTC), a poté spustit skript s konfigurací 2. bota.<br />⚠️POZOR: Je potřeba změnit proměnnou **$AccBotName** (název AccBota) v konfiguračním souboru **init_variables.ps1**. + +# Donate +![heart_donate](https://user-images.githubusercontent.com/87997650/127650190-188e401a-9942-4511-847e-d1010628777a.png) + +AccBota jsme se rozhodli poskytnout zcela zdarma, neboť chceme co nejvíce lidem umožnit co nejjednodušší a nejlevnější cestu k aplikaci strategie [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html). Věříme, že pravidelné spoření v Bitcoinu je tím nejlepším způsobem k zajištění do budoucna. Investovat do BTC se zapojením emocí a s ambicemi predikovat trh se totiž ve většině případů nevyplácí. + +Pokud byste nás chtěli podpořit, rozhodně se tomu bránit nebudeme. Níže jsou uvedeny jednotlivé peněženky, kam nám můžete zaslat příspěvek třeba na pivo. :) Děkujeme <3 + +- **BTC ❤️**: bc1q2hz79m4csklecqgusu9e2yjnrr6e9ca6nhu0at + - <img src="https://user-images.githubusercontent.com/87997650/127651099-d9e1b381-adcf-46a5-9d17-59f87176304d.png" width="150" height="150" /> +- **LTC**: LTXdCFBYHgVLa8cBNBqwEvaQLi8tENY5R3 + - <img src="https://user-images.githubusercontent.com/87997650/127651223-0abe025d-950b-445e-8196-7c113853b313.png" width="150" height="150" /> +- **XMR**: 49QBko3UdegAkx6g8foqjs9efQD6rrhsPEoTqP9HmA2LCUZsJ8xBD2JZSMEdzhA5NJ9SrVhzu2uJXRUvL2kAiV45LyDBCUt + - <img src="https://user-images.githubusercontent.com/87997650/127651801-cc35dfc0-f1ce-4dd0-ae0f-211fab41e2fb.png" width="150" height="150" /> +- **DOGE**: DR9mEaVLmx3gxqiqffwYQcLsT1upRL3xe9 + - <img src="https://user-images.githubusercontent.com/87997650/127651630-2bb06de7-3b7a-42af-86b0-8b8fa0a6d59a.png" width="150" height="150" /> +- **ETH**: 0x8A944bcb5919dF04C5207939749C40A61f88188C + - <img src="https://user-images.githubusercontent.com/87997650/127653313-e989e607-f1db-40e9-a341-7cbdbd9fdfd0.png" width="150" height="150" /> +- **DOT**: 15sBCVyWu5Gy9VnzQpid4ggC1MmguBBd1xotUVbsbbRWddun + - <img src="https://user-images.githubusercontent.com/87997650/127651761-6484c9f4-547c-475e-a5ec-2029e6ee1699.png" width="150" height="150" /> +- **BNB**: bnb1lwcgq8emrjgptxg4hm37d5tf2yunrph842awrh + - <img src="https://user-images.githubusercontent.com/87997650/127651542-1fa0b32b-ed30-4a9a-b1cd-1622ef1044cf.png" width="150" height="150" /> +- **ADA**: addr1qxgfp7xf8rpg7laque78queavpfdztajgl3hr8kuanuqgdysjruvjwxz3al6penuwpen6czj6yhmy3lrwx0dem8cqs6qr8y8fj + - <img src="https://user-images.githubusercontent.com/87997650/127651500-df50eaee-15aa-415e-8a0b-044f22d89493.png" width="150" height="150" /> + + diff --git a/README.en.md b/README.en.md deleted file mode 100644 index ad67292..0000000 --- a/README.en.md +++ /dev/null @@ -1,339 +0,0 @@ -# Introduction -Welcome to AccBot. AccBot is an open-source accumulation bot that buys [BTC](https://cs.wikipedia.org/wiki/Bitcoin) _(possibly LTC, ETH, XMR or DASH and others)_ at regular intervals in small amounts of CZK or EUR on the most popular exchanges according to the [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html) strategy. - -List of supported exchanges: - - [Coinmate](https://coinmate.io/) - - [Huobi](https://www.huobi.com/en-us/) - - [Kraken](https://www.kraken.com/) - - [Binance](https://www.binance.com/) - - [FTX](https://ftx.com/) - - Bittrex - COMING SOON - - Bitfinex - COMING SOON - -# Why AccBot? -There are many different bots for buying cryptocurrencies, but quite often they are closed applications where you need to register, fill in API keys and the bot then buys/trade for you according to the rules. The downside is that the app probably collects data and statistics about your purchases, the code is closed, so you don't have full control over what the bot will actually do. -Our solution is fully decentralized in that everyone installs their own bot in their own environment. Thus, individual user bots are fully decoupled and no data is collected centrally anywhere. Everyone's statistics are stored in their own DB, which are then dumped at will to private Telegram channels. - -# A simple description of how the bot works -* It buys a user-defined amount in Czech crowns _(typically tens of CZK)_ / Euros _(typically units of Euros)_ every user-defined hours _(ideally divisible by 24, so that it always buys at the same time, e.g. -> every hour, 1x in 2h, 1x in 4h, 1x in 8h, etc.)_. -* It runs autonomously without the need to manage it somehow over time, you only need to keep track of your CZK account balance and replenish it regularly on the exchange _(e.g. once a month)_. -* **Operating costs are practically zero** (it comes out to about 0.04 €/month for Azure hosting); the bot is implemented as [Azure function](https://azure.microsoft.com/cs-cz/services/functions/) for now, which runs at regular intervals and the whole solution is thus hosted on [Azure](https://azure.microsoft.com/cs-cz/). -* (Optional functionality) After each purchase, the Telegram channel informs you of the amount of the purchase. This information is supplemented with statistics, what is the current average accumulated price, etc. See example: - * ![image](https://user-images.githubusercontent.com/87997650/127355720-fe73c0b5-5fd4-4d31-98dc-b569975f8a9e.png) -* (Optional functionality) If a sufficient amount of BTC is accumulated, then if the withdrawal fee from the total amount is less than the user defined limit (e.g. 0.1%), the bot will send the accumulated amount of BTC from the exchange to the defined BTC wallet (note: if you want to use this functionality, we recommend enabling API send only to your specific BTC wallet, see settings when creating an API key on Coinmate) - * ![image](https://user-images.githubusercontent.com/87997650/127356371-6a9d1493-55f0-41cc-ab03-4a67cf610f42.png) - -# Pre-requisites -1. **Installed [PowerShell](https://docs.microsoft.com/cs-cz/powershell/scripting/install/installing-powershell?view=powershell-7.1)** -2. **Installed [Azure CLI](https://docs.microsoft.com/cs-cz/cli/azure/install-azure-cli)** -3. **Established account on the [Coinmate](https://coinmate.io/)** exchange (account is free; you need to perform [KYC](https://en.wikipedia.org/wiki/Know_your_customer) verification to send fiat to the exchange), or alternatively established **account on the [Huobi](https://www.huobi.com/en-us/)** exchange or on the Kraken, on the Binance or on the FTX. - - If you would like to support us and sign up via our referral link, you can click on the banner below - - <a href="https://coinmate.io?referral=ZWw4NVlXbDRVbTFVT0dKS1ZHczBZMXB1VEhKTlVRPT0"><img src="https://coinmate.io/static/img/banner/CoinMate_Banner_02.png" alt="Registration link via referral" border="0"></a> - - -4. **An account on [Azure](https://azure.microsoft.com/cs-cz/)** (account is free; you only pay for the funds used, which works out to about $0.04/month) - -# Installation procedure -1. On Coinmate, [generate API keys](https://coinmate.io/blog/using-the-coinmate-io-api/) (so that the BOT can access the funds on the exchange and perform its accumulation activity). Write down the generated ClientId, PublicKey and PrivateKey in a notepad -> you will need them in step 5. - - ATTENTION: You need to add Trading permissions to the API keys, see: - - ![image](https://user-images.githubusercontent.com/87997650/127633515-b5828914-6183-4c60-8208-4e78d262f62e.png). - - If you'd like to use the autowithdrawal feature, check the "Enable for Withdrawal" option as well. In this case, we recommend that you also check "Enable for withdrawals to template addresses only", which means that the bot will only be able to send accumulated BTC to the addresses you define, see: - - ![image](https://user-images.githubusercontent.com/87997650/127633656-a6698455-03b6-4b23-902d-e5642dbe4988.png) -3. Download the [ZIP from the current RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), which contains the PowerShell installation script and the built bot. -4. Unzip the ZIP from the previous point anywhere on your file system. -5.(Optional) Set up [Telegram notifications](#telegramnotifications). _(If, despite the recommendation, you do not want to use Telegram notifications, do not fill in the Telegram variables in the next step)_ -6. In Notepad (or another text editor), first open the **init_variables.ps1** file, which contains the general settings for the bot -7. Edit the variables in the **## USER-DEFINED VARIABLES ###** section. -```powershell -###################################### -### GENERAL USER-DEFINED VARIABLES ### -###################################### -# Exchange you want to link the bot to -# (POSSIBLE VALUES: coinmate, huobi, binance, kraken, ftx) -$ExchangeName='coinmate' - -# Name that appears in Telegram notifications -$Name='anonymous' - -################################################ -########### Timer settings ################# -################################################ -# You have the option to fill in either the $HourDivider or $NCronTabExpression variable - -# If you want to shop less than once a day, which is also the recommended setting (more often in smaller batches), fill in HourDivider -# HourDivider specifies how many hours you want to shop regularly -# (POSSIBLE VALUES: 1, 2, 3, 4, 6, 8, 12) -$HourDivider='1' - -# If you want to shop e.g. only once every 2 days, once a week, -# or e.g. every Tuesday and Saturday, fill in $NCronTabExpression -# The format of this variable is in NCRONTAB, -# see: https://docs.microsoft.com/cs-cz/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions -# Examples: -# "0 0 0 */2 * * * *" -> once every two hours -# "0 30 9 * * * 1-5" -> at 9:30 every working day -# Online NCRONTAB value generator: https://ncrontab.swimburger.net/ -$NCronTabExpression = '' - -################################################ -########### Exchange selection settings ########### -################################################ - -# Flag if you want to enable Withdrawal if the fee is less than 0.1% -# ALLOWED VALUES: true / false -$WithdrawalEnabled='false' - -# Wallet address for withdraw (only applies if WithdrawalEnabled = TRUE) -$WithdrawalAddress='' - -# (Only applied if $WithdrawalEnabled='true'). -# Maximum withdrawal fee limit in percentage. -# DEFAULT: 0.001 = 0.1 % -$MaxWithdrawalPercentageFee = '0.001' - -################################################ -########### Telegram Settings ################ -################################################ - -# Address of the telegram channel you want to receive notifications to (in @ChannelName format) -$TelegramChannel='@channel_name' - -# Private key of the Telegram bot (ATTENTION, the bot must be a member of the channel above) -$TelegramBot='telegram_bot_hash' - -################################################ -########### Azure log settings ############### -################################################ - -The # flag to create a log on Azure. (ALLOWED VALUES: true / false). -# RECOMMENDATION: By default have it disabled, i.e. "false". -# Log increases the monthly cost from approx 0.04€/month to approx 0.2€/month. -# So it is recommended to turn it on only if your bot for example does not purchase as it should. -$CreateAzureLog = 'false' - -################################## -### END USER-DEFINED VARIABLES ### -################################## -``` -8. After saving the general configuration, open the configuration file **coinmate_variables.ps1** or **huobi_variables.ps1** depending on which exchange you want to accumulate on. - - In the case of Coinmate, fill in the following values: - ```powershell - ###################################### - ### COINMATE USER-DEFINED VARIABLES ##### - ###################################### - - # Crypto you want to buy on Coinmate (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) - $Currency='BTC' - - # Fiat currency you want to buy crypto with on Coinmate (POSSIBLE VALUES: CZK, EUR) - $Fiat='CZK' - - # Size of the chunk in CZK or EUR you want to buy regularly (MINIMUM for CZK: 26; MINIMUM for EUR: 1) - $ChunkSize='26' - - # ClientId from Coinmate API - $CoinMateCredentials_ClientId='111' - - # Public key from Coinmate API - $CoinMateCredentials_PublicKey='XXX' - - # Private key from Coinmate API - $CoinMateCredentials_PrivateKey='XXX' - - # (Only used when $WithdrawalEnabled='true'). - # Maximum withdrawal fee limit in percentage. (DEFAULT: 0.001 = 0.1%) - $MaxWithdrawalPercentageFee = '0.001' - - # (Only used when $WithdrawalEnabled='true'). - # Maximum withdrawal fee limit in absolute value (CZK) - # If set to -1, only the percentage condition is applied => $MaxWithdrawalPercentageFee - $MaxWithdrawalAbsoluteFee = -1 - - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### - ``` - - For Huobi, fill in the following values: - ```powershell - ###################################### - ### HUOBI USER-DEFINED VARIABLES ##### - ###################################### - - # Crypto you want to buy on Huobi (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) - $Currency='BTC' - - # Fiat currency you want to buy crypto with on Huobi (POSSIBLE VALUES: USDT, HUSD) - $Fiat='USDT' - - # The size of the USDT or HUSD chunk you want to buy regularly (MINIMUM: 5) - $ChunkSize='5' - - # API Key from Huobi API - $HuobiCredentials_Key='XXX' - - # API Secret from Huobi API - $HuobiCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### - ``` - - For Kraken, fill in the following values: - ```powershell - ###################################### - ### KRAKEN USER-DEFINED VARIABLES ##### - ###################################### - - # Crypto you want to buy on Kraken (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH) - $Currency='BTC' - - # Fiat currency you want to buy crypto with on Kraken (POSSIBLE VALUES: USDT) - $Fiat='USDT' - - # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) - $ChunkSize='5' - - # Name of the wallet you want to send the accumulated crypto to - $WithdrawalKeyName = '' - - # API Key from Kraken API - $KrakenCredentials_Key='XXX' - - # API Secret from Kraken API - $KrakenCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### - ``` - - For Binance, fill in the following values: - ```powershell - ###################################### - ### BINANCE USER-DEFINED VARIABLES ##### - ###################################### - - # Crypto you want to buy on Binance (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH, ...) - $Currency='BTC' - - # Fiat currency you want to buy crypto with on Binance (POSSIBLE VALUES: USDT, BUSD, USDC, DAI) - $Fiat='USDT' - - # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) - $ChunkSize='10' - - # API Key from Binance API - $BinanceCredentials_Key='XXX' - - # API Secret from Binance API - $BinanceCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### - ``` - - For FTX, fill in the following values: - ```powershell - ###################################### - ### FTX USER-DEFINED VARIABLES ##### - ###################################### - - # Crypto you want to buy on Binance (POSSIBLE VALUES: BTC, LTC, ETH, XRP, DASH, ...) - $Currency='BTC' - - # Fiat currency you want to buy crypto with on Binance (POSSIBLE VALUES: USDT, BUSD, USDC, DAI) - $Fiat='USDT' - - # The size of the USDT (or $Fiat) chunk you want to buy regularly (MINIMUM: by exchange) - $ChunkSize='5' - - # API Key from FTX API - $FTXCredentials_Key='XXX' - - # API Secret from FTX API - $FTXCredentials_Secret='XXX' - - ###################################### - ### END USER-DEFINED VARIABLES ####### - ###################################### - ``` -<a name="installscript"></a> -9. - - <img src="https://user-images.githubusercontent.com/87997650/128522417-9bd02e68-a4d6-48bd-8661-81ec43ee3a47.png" width="25" height="25" />. - - <img src="https://user-images.githubusercontent.com/87997650/128523326-a7456256-4f01-41ef-9c21-1fe5968923cf.png" width="25" height="25" /> / <img src="https://user-images.githubusercontent.com/87997650/128523557-566d738d-67f5-43ac-a65e-080105f92abb.png" width="25" height="25" />: Run PowerShell and execute the command in PowerShell - ```powershell - powershell.exe -executionpolicy bypass -file .\install_script.ps1 - ``` -The script will automatically prepare all the resources you need on Azure. It should also pop up the Azure portal login window at the beginning. - -** WARNING: The installation takes a few minutes, please wait for it to complete.** The following message should appear at the end: - -![image](https://user-images.githubusercontent.com/87997650/128522145-3acfef81-ede6-4e40-95f0-627a532ca5d2.png) - -<a name="telegramnotifications"></a> -# (Optional) Telegram notifications settings - -This part is not mandatory for the bot to work, however it is a great added value as the bot will periodically inform you after each purchase what your average BTC accrued price is and how many BTC you have already accrued. You will also be able to verify in real time that the bot is working. - -1. Create an account on [Telegram](https://telegram.org/) -2. Create a bot via BotFather according to [instructions](https://sendpulse.com/knowledge-base/chatbot/create-telegram-chatbot). - - The token from the tutorial is then inserted into the **$TelegramBot** variable from the PowerShell script -3. Create a new channel ([video guide](https://youtu.be/q6-k_LGbw_k) to create from the mobile app -> [Android](https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=cs&gl=US) or [iOS](https://apps.apple.com/us/app/telegram-messenger/id686449807) version). -Alternatively, follow these printscreens -> create via [Telegram desktop](https://desktop.telegram.org/). - - In the top left corner, click on settings - - ![image](https://user-images.githubusercontent.com/87997650/127706308-0ca1aead-f5a8-42eb-b740-6463d820636f.png) - - Click on the `New Channel` button - - ![image](https://user-images.githubusercontent.com/87997650/127706363-c10948dd-2d97-4dc1-9028-718d1f802153.png) - - Name your channel and confirm the creation with the button - - ![image](https://user-images.githubusercontent.com/87997650/127706441-52c861f9-3f76-49a0-8d42-9c5d48c657cc.png) - - Mark the channel as **Public** and come up with a unique name for it. This name is then filled in the format `@MyAccBotChannel` (in the case of the example below) in the **$TelegramChannel** variable in the powershell script - ![image](https://user-images.githubusercontent.com/87997650/127706976-591cb415-4bc2-444b-95fc-56aaa9d58e73.png) - - To set the created channel as **Private** do the following: - - Find out the Id of your private channel, e.g. by opening the channel in the [Telegram web interface](https://web.telegram.org) - - The URL address will be in the format https://web.telegram.org/z/#{ChannelId} - - Attention: to send messages via the created bot you have to add -100 before the Id. So if your address was e.g. https://web.telegram.org/z/#-123456789, the resulting Id would be -100123456789. - - Put this resulting Id into the **$TelegramChannel** variable instead of the channel name. -4. Invite your bot (search for it by name) that you created in step 2 via BotFather to the channel. - ![image](https://user-images.githubusercontent.com/87997650/127707214-174f6dd0-a990-49d8-8cb0-6c9c9e290102.png) - - Confirm the bot as a channel administrator - - ![image](https://user-images.githubusercontent.com/87997650/127707275-af26e4f8-3c8b-46ff-b437-1e0d29a9ce77.png) - - Leave the default permissions of the bot - - ![image](https://user-images.githubusercontent.com/87997650/127707327-faa3fa84-56ab-4fce-be0f-7a3f81cadf38.png) -5. Done, the bot should now write information about purchases with statistics to the created channel. - -# Edit settings / Update an already running AccBot - -- If AccBot is already running successfully and you want to change some settings over time _(frequency or amount of individual purchases, withdrawal permissions, etc.)_, the easiest way is to edit **USER-DEFINED VARIABLES** in the installation script **install_script.ps1** and re-run the script according to step 9 of [installation instructions](#installscript). -- If you want to deploy a new version of AccBot, download the [ZIP from the current RELEASE](https://github.com/Crynners/AccBot/releases/latest/download/AccBot_installation.zip), set the configuration files **init_variables.ps1** and _{burst you want to accumulate}_ **variables.ps1** and re-execute the script according to step 7 of the [installation instructions](#installscript). - -# Donate -![heart_donate](https://user-images.githubusercontent.com/87997650/127650190-188e401a-9942-4511-847e-d1010628777a.png) - -We decided to provide AccBot completely free of charge because we want to give as many people as possible the easiest and cheapest way to apply the [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html) strategy. We believe that saving regularly in Bitcoin is the best way to secure for the future. In fact, investing in BTC with emotions involved and with ambitions to predict the market does not pay off in most cases. - -If you'd like to support us, we certainly won't stop you from doing so. Below are the individual wallets where you can send us a donation, for example for a beer. :) Thank you <3 - -- **BTC ❤️**: bc1q2hz79m4csklecqgusu9e2yjnrr6e9ca6nhu0at - - <img src="https://user-images.githubusercontent.com/87997650/127651099-d9e1b381-adcf-46a5-9d17-59f87176304d.png" width="150" height="150" /> -- **LTC**: LTXdCFBYHgVLa8cBNBqwEvaQLi8tENY5R3 - - <img src="https://user-images.githubusercontent.com/87997650/127651223-0abe025d-950b-445e-8196-7c113853b313.png" width="150" height="150" /> -- **XMR**: 49QBko3UdegAkx6g8foqjs9efQD6rrhsPEoTqP9HmA2LCUZsJ8xBD2JZSMEdzhA5NJ9SrVhzu2uJXRUvL2kAiV45LyDBCUt - - <img src="https://user-images.githubusercontent.com/87997650/127651801-cc35dfc0-f1ce-4dd0-ae0f-211fab41e2fb.png" width="150" height="150" /> -- **DOGE**: DR9mEaVLmx3gxqiqffwYQcLsT1upRL3xe9 - - <img src="https://user-images.githubusercontent.com/87997650/127651630-2bb06de7-3b7a-42af-86b0-8b8fa0a6d59a.png" width="150" height="150" /> -- **ETH**: 0x8A944bcb5919dF04C5207939749C40A61f88188C - - <img src="https://user-images.githubusercontent.com/87997650/127653313-e989e607-f1db-40e9-a341-7cbdbd9fdfd0.png" width="150" height="150" /> -- **DOT**: 15sBCVyWu5Gy9VnzQpid4ggC1MmguBBd1xotUVbsbbRWddun - - <img src="https://user-images.githubusercontent.com/87997650/127651761-6484c9f4-547c-475e-a5ec-2029e6ee1699.png" width="150" height="150" /> -- **BNB**: bnb1lwcgq8emrjgptxg4hm37d5tf2yunrph842awrh - - <img src="https://user-images.githubusercontent.com/87997650/127651542-1fa0b32b-ed30-4a9a-b1cd-1622ef1044cf.png" width="150" height="150" /> -- **ADA**: addr1qxgfp7xf8rpg7laque78queavpfdztajgl3hr8kuanuqgdysjruvjwxz3al6penuwpen6czj6yhmy3lrwx0dem8cqs6qr8y8fj - - <img src="https://user-images.githubusercontent.com/87997650/127651500-df50eaee-15aa-415e-8a0b-044f22d89493.png" width="150" height="150" /> diff --git a/README.md b/README.md index 16cf874..ff64258 100644 --- a/README.md +++ b/README.md @@ -375,8 +375,7 @@ Alternatively, follow the following printscreen -> create via [Telegram desktop] ## **Q:** Can I accumulate BTC and ETH at the same time? -**A:** Yes. Just run the script according to step 7 [of the installation guide](#installscript) with the configuration of the 1st bot (i.e. accumulation to BTC), and then run the script with the configuration of the 2nd bot. -⚠️ CAUTION: You need to change the **$AccBotName** variable (AccBot name) in the **init_variables.ps1** configuration file. +**A:** Yes. Just run the script according to step 7 [of the installation guide](#installscript) with the configuration of the 1st bot (i.e. accumulation to BTC), and then run the script with the configuration of the 2nd bot. <br />⚠️CAUTION: You need to change the **$AccBotName** variable (AccBot name) in the **init_variables.ps1** configuration file. # Donate ![heart_donate](https://user-images.githubusercontent.com/87997650/127650190-188e401a-9942-4511-847e-d1010628777a.png) From 52179a6fa0c57ecd07c5f1478bcefd1198a257b4 Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 21:30:20 +0200 Subject: [PATCH 5/9] Update README.md ci skip changing typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff64258..8adeade 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ List of supported exchanges: There are many different bots for buying cryptocurrencies, but quite often they are closed applications where you need to register, fill in API keys and the bot then buys/trade for you according to the rules. The downside is that the app probably collects data and statistics about your purchases, the code is closed, so you don't have full control over what the bot will actually do. Our solution is fully decentralized in that everyone installs their own bot in their own environment. Thus, individual user bots are fully decoupled and no data is collected centrally anywhere. Everyone's statistics are stored in their own DB, which are then dumped at will to private Telegram channels. -# A simple description of how the shoe works +# A simple description of how the AccBot works * It buys a user-defined amount in Czech crowns _(typically tens of CZK)_ / Euros _(typically units of Euros)_ every user-defined hours _(ideally divisible by 24, so that it always buys at the same time, e.g. -> every hour, 1x in 2h, 1x in 4h, 1x in 8h, etc.)_. * It runs autonomously without the need to manage it somehow over time, you only need to keep track of your CZK account balance and replenish it regularly on the exchange _(e.g. once a month)_. * **Operating costs are practically zero** (it comes out to about 0.04 €/month for Azure hosting); the bot is implemented as [Azure function](https://azure.microsoft.com/cs-cz/services/functions/) for now, which runs at regular intervals and the whole solution is thus hosted on [Azure](https://azure.microsoft.com/cs-cz/). From 6ee16be9c38387876fcb16e8784a231c91f91f8a Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:18:34 +0200 Subject: [PATCH 6/9] Update README.md ci skip update README file --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 8adeade..6a63543 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,11 @@ List of supported exchanges: - [Coinbase](https://www.coinbase.com/) - [KuCoin](https://www.kucoin.com/) +# Why DCA? + - [<img src="https://cdn.countryflags.com/thumbs/czech-republic/flag-400.png" width=25 height=16 /> 📝Explanation in Facebook Bitcoin Community CZ & SK by Josef Tětek ](https://www.facebook.com/groups/bitcoincz/posts/1758068064378420) + - [<img src="https://cdn.countryflags.com/thumbs/czech-republic/flag-400.png" width=25 height=16 /> 🎥Video on "Bitcoinovej kanál"](https://youtu.be/4y2VCEpiPQA) + - [<img src="https://www.countryflags.com/wp-content/uploads/united-states-of-america-flag-png-large.png" width=25 height=16 /> 📝Even God Couldn’t Beat Dollar-Cost Averaging](https://ofdollarsanddata.com/even-god-couldnt-beat-dollar-cost-averaging/) + # Why AccBot? There are many different bots for buying cryptocurrencies, but quite often they are closed applications where you need to register, fill in API keys and the bot then buys/trade for you according to the rules. The downside is that the app probably collects data and statistics about your purchases, the code is closed, so you don't have full control over what the bot will actually do. Our solution is fully decentralized in that everyone installs their own bot in their own environment. Thus, individual user bots are fully decoupled and no data is collected centrally anywhere. Everyone's statistics are stored in their own DB, which are then dumped at will to private Telegram channels. From 90ebe0fd7aad14efe46b67ea1c0530add564db6a Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:20:41 +0200 Subject: [PATCH 7/9] Update README.cs.md ci skip update cs README file --- README.cs.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.cs.md b/README.cs.md index 4d26f44..0f6622e 100644 --- a/README.cs.md +++ b/README.cs.md @@ -18,6 +18,11 @@ Seznam podporovaných burz: - [Coinbase](https://www.coinbase.com/) - [KuCoin](https://www.kucoin.com/) +# Proč DCA? + - [<img src="https://cdn.countryflags.com/thumbs/czech-republic/flag-400.png" width=25 height=16 /> 📝Post na facebookové skupině bitcoinové CZ/SK komunitě od Josefa Tětka](https://www.facebook.com/groups/bitcoincz/posts/1758068064378420) + - [<img src="https://cdn.countryflags.com/thumbs/czech-republic/flag-400.png" width=25 height=16 /> 🎥Video na Bitcoinovém kanálu](https://youtu.be/4y2VCEpiPQA) + - [<img src="https://www.countryflags.com/wp-content/uploads/united-states-of-america-flag-png-large.png" width=25 height=16 /> 📝Blog post: "Even God Couldn’t Beat Dollar-Cost Averaging"](https://ofdollarsanddata.com/even-god-couldnt-beat-dollar-cost-averaging/) + # Proč AccBot? Různých botů na nakupování kryptoměn existuje již celá řada, nicméně dost často se jedná o uzavřené aplikace, kam je potřeba se zaregistrovat, vyplnit API klíče a bot pak za vás nakupuje / trejduje dle daných pravidel. Nevýhoda je, že daná aplikace pravděpodobně sbírá data a statistiky o vašich nákupech, kód je uzavřený, čili nemáte plnou kontrolu nad tím, co bot vlastně bude dělat. Naše řešení je plně decentralizované v tom, že si každý nainstaluje svého bota do svého vlastního prostředí. Jednotliví boti uživatelů jsou tak plně odděleni a žádná data se centrálně nikde neshromažďují. Statistiky se každému ukládají do jeho vlastní DB, které se pak vypisují dle libosti do soukromých Telegram kanálů. From e773318bc72bd8095474ee0cd4ff613d16e38ee9 Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:24:32 +0200 Subject: [PATCH 8/9] Update README.md ci skip README update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a63543..31158c6 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ _Přečíst README v [češtině <img src="https://cdn.countryflags.com/thumbs/czech-republic/flag-400.png" width=25 height=16 />](https://github.com/Crynners/AccBot/blob/main/README.cs.md)_ # Introduction -Welcome to AccBot. AccBot is an open-source accumulation bot that buys [BTC](https://cs.wikipedia.org/wiki/Bitcoin) _(possibly LTC, ETH, XMR or DASH and others)_ at regular intervals in small amounts of CZK or EUR on the most popular exchanges according to the [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html) strategy. +Welcome to AccBot. AccBot is an open-source accumulation bot that buys [BTC](https://cs.wikipedia.org/wiki/Bitcoin) _(possibly LTC, ETH, XMR or DASH and others)_ at regular intervals in small amounts of FIAT _(CZK, EUR, USD and others)_ on the most popular exchanges (see the list below) according to the [DCA](https://www.fxstreet.cz/jiri-makovsky-co-je-dollar-cost-averaging-a-jak-funguje.html) strategy. <a name="exchangelist"></a> List of supported exchanges: From 58b2360778449a4b11282f6c0b8f95705a07861d Mon Sep 17 00:00:00 2001 From: Crynners <87997650+Crynners@users.noreply.github.com> Date: Thu, 7 Oct 2021 09:50:49 +0200 Subject: [PATCH 9/9] bug fixing; solves #13 --- CryptoBotFunction/install_script.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CryptoBotFunction/install_script.ps1 b/CryptoBotFunction/install_script.ps1 index 50530ea..96f1d60 100644 --- a/CryptoBotFunction/install_script.ps1 +++ b/CryptoBotFunction/install_script.ps1 @@ -83,13 +83,13 @@ $zipFile = 'AccBot.zip' $resourceGroupName='AccBot' $cosmosDBAccountName='accbotcosmosdbaccount-'+$([System.Guid]::NewGuid().ToString()) -$cosmosDBAccountName = $cosmosDBAccountName.Substring(0,44) +$cosmosDBAccountName = $cosmosDBAccountName.Substring(0,43) + '0' -$appInsightsName ='appinsights-'+$([System.Guid]::NewGuid().ToString()) -$appInsightsName = $appInsightsName.Substring(0,44) +$appInsightsName ='appinsights-' + $([System.Guid]::NewGuid().ToString()) +$appInsightsName = $appInsightsName.Substring(0,43) + '0' $azFunctionName ='azfunc-' + $AccBotName + '-'+$([System.Guid]::NewGuid().ToString()) -$azFunctionName = $azFunctionName.Substring(0,44) +$azFunctionName = $azFunctionName.Substring(0,43) + '0' $randomNumber = Get-Random -Maximum 1000000000 $storageAccountName ='accbotsa' + $randomNumber