This is a Node.js binance trading bot that takes advantage of crypto's volatile prices.
NB: You will need a Binance account. Register Here
Join Discord channel to ask questions, or create an issue.
Discord Invite: Join
- Ability to trade multiple pairs.
- Ability to automatically determine the WIGGLE_ROOM for any given asset at any given time since the curves are not always just small fluctuations but giant leaps at times.
- Ability to take short term losses by selling low so as to keep following the curve. ✔️
- Ability to calculate and report profits at different times of the day depending on all the successful trades. ✔️
- Make it more configurable, everything should be configured even through an API, not necessarily through the settings file. ✔️ (UI now available)
- Ability to send notifications to many other channels, e.g. Telegram, Slack ✔️ Telegram now available
- Ability to consider TA indicators - partially - considering rough RSI for now.
Just edit the settings.json
file to include your own preferences and your preferred market, your preferred market should have money, then docker-compose up
or docker-compose up -d
depending on your kind of medicine.
To run without Docker, edit the settings.json
file accordingly and then run npm install
inside the /bot
folder then npm run dev
.
Add your suitable settings:
{
"URL": "https://api.binance.com/api/v3",
"API_SECRET": "YOUR BINANCE API SECRET", // STRING
"API_KEY": "YOUR BINANCE API KEY", // STRING
"WIGGLE_ROOM": 0.5, // FLOAT - THE PERCENTAGE MARGIN YOU ARE WILLING TO PLAY WITH
"MAIN_MARKET": "BTCUSDT", // STRING - THE MARKET, E.G. BTCUSDT
"CANCEL_AFTER": 300, // After how long in seconds should you cancel an order?
"INSTANCE_NAME": "BTC", // If you are using the same Discord server to receive notifications from multiple instances, this makes it easy to know which instance is sending you a notification.
"INTERVAL": 3000, // How long before loop repeats in milliseconds
"ACCEPTABLE_LOSS": 2, // this is not yet used in the logic
"HIGHEST_RSI": 70, // INTEGER - HIGHEST RSI VALUE YOU WANT TO AVOID BUY
"DISCORD": "DISCORD_WEBHOOK_URL", // WHERE TO SEND BUY/SELL NOTIFICATIONS
"DISCORD_ERRORS": "DISCORD_WEBHOOK_URL_FOR_ERRORS", // WHERE TO SEND ERRORS
"ASSET_PERCENT": 99, // the percentage of main asset to sell. Max value = 99
"FIAT_OR_QUOTE_PERCENT": 99, // percentage of the bridge/fiat/quote coin to use when buying. Max value = 99
"TELEGRAM_TOKEN": "", // TELEGRAM TOKEN
"TELEGRAM_CHATID": "", // TELEGRAM CHATID
"BUYING_PRICE_DIVIDER": 1, // This default value means the buying price is the current price minus the wiggle room. If you want to buy a little closer to the current price, increase this value.
"PIN": 12345, // This is used in the UI. When you change this, you need to restart the bot.
"PORT": "3000", // This is the default port of the frontend server.
"STATE": "ON" // "ON" or "OFF". This is useful if you are using a remote server and you want that when you have stopped from the frontend, the bot does not auto resume trading when server restarts.
}
BUYING_PRICE_DIVIDER
You can run this bot anywhere. This includes on PC, Mac or Linux provided you have node.js (v14) installed if you want to run without Docker.
-
Step 1: Install Node.js (tested on v14 LTS)
-
Step 2: clone the repository and then
cd
into the cloned directory,cd
into the/bot
directory and runnpm install
-
Step 3: Go to binance and obtain your settings i.e. The
API KEY
and theAPI SECRET
. Remember that if you are going to be using Binance testnet, you need to use the testnetAPI_KEY
andSECRET
associated with your testing account at https://testnet.binancefuture.com. If you use the main Binance site, use theAPI_KEY
andSECRET
associated with your trading account. -
Step 4: Decide whether to use Binance backtesting API (
https://testnet.binancefuture.com/fapi/v1
, recommended) or the main site to use real money (https://api.binance.com/api/v3
, only when sure should you do this). If you are going to use testnet, the URL value of thesettings.json
file should be:"https://testnet.binancefuture.com/fapi/v1"
. Else use"https://api.binance.com/api/v3"
for main account. NB: rename thesettings_example.json
file tosettings.json
. -
Step 5: Edit other settings accordingly.
-
Step 6: Run
npm run dev
When you configure the bot to a new market, sometimes it fails to pick up buyin or selling. In this case, simply place an order that won't be filled instantly, for example, a very low buy order or a very high sell order, then, start up the bot and cancel the order thereafter. The bot should pick up from there.
Mike CK Creator |
Lownoise Telegram Integration and more |