TelegramBlackBot (based on BlackBot) implements grid trading strategy with Telegram interface. It can work with any assets pair on the Waves DEX.
Grid trading doesn’t care about which way the market’s going — in fact, as a profitable strategy it works best in ranging markets. The strategy places a ladder of sells at regular intervals above market price, and another ladder of buys beneath it. If a sell is filled, those funds are used to place a buy just beneath that sell. Thus you can think of the grid as a series of pairs of buys/sells stretching up and down the price chart, with either the buy or sell in each pair always active.
For example, let’s say the last price is 2000 satoshis you’ve got sells laddered up at 2100, 2200, 2300… If the price hits 2100, you immediately use those funds to place a new buy at 2000. If it drops to 2000 again, you buy back the Incent you sold at 2100. If it rises further, you sell at 2200 and open a buy at 2100. Whichever way the price moves, you’re providing depth — buffering the market and smoothing out any peaks and troughs. Additionally, if you open and then close a trade within a tranche (e.g. you sell at 2200, then buy back at 2100) then you make a small profit.
TelegramBlackBot requires Python 3.7 and packages specified in requirements.txt
.
You can install them with
pip install -r requirements.txt
Before you start TelegramBlackBot it is necessary to create .env
file:
touch .env
and fill in this file according to the example below:
TELEGRAM_BOT_TOKEN = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
USER_ID = XXXXXXXXXXX
NODE = http://nodes.wavesnodes.com
NETWORK = mainnet
MATCHER = https://matcher.waves.exchange
ORDER_FEE = 300000
ORDER_LIFETIME = 86400
PRIVATE_KEY = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AMOUNT_ASSET = WAVES
PRICE_ASSET = DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p
TELEGRAM_BOT_TOKEN
is the token got from BotFather
USER_ID
is the telegram id of the account which will interact with bot (other users will be ignored)
NODE
is the address of the fullnode
NETWORK
can be either 'mainnet' or 'testnet'
MATCHER
is the matcher address
ORDER_FEE
is the fee to place buy and sell orders
ORDER_LIFETIME
is the maximum life time (in seconds) for an open order
PRIVATE_KEY
is the private key of the trading account
AMOUNT_ASSET
and PRICE_ASSET
are the IDs of the traded assets pair
Then you can start TelegramBlackBot with this command:
python main.py
Once TelegramBlackBot is started you should go to Telegram, open the bot and send /start
command:
Then you can choose ASK
, BID
or LAST
as base price (grid will be created around this price) or set it Manually
. After that configure other parameters:
Check them:
And set grid:
When one of the orders is filled bot will automatically place the new opposite order and you will receive a notification about that:
If you want to reset grid, just send /start
command again and set new parameters.