Automated Binance trading bot with trailing buy/sell strategy
Github: https://github.com/chrisleekr/binance-trading-bot
Warnings
I cannot guarantee whether you can make money or not.
So use it at your own risk! I have no responsibility for any loss or hardship incurred directly or indirectly by using this code. Read disclaimer before using this code.
Before updating the bot, make sure to record the last buy price in the note. It may lose the configuration or last buy price records.
How it works
Trailing Grid Trade Buy/Sell Bot
This bot is using the concept of trailing buy/sell order which allows following the price fall/rise.
Trailing Stop Orders About Trailing Stop Orders Concept you can find at Binance Official document
TL;DR Place orders at a fixed value or percentage when the price changes. Using this feature you can buy at the lowest possible price when buying down and sell at the highest possible price when selling up.
- The bot supports multiple buy/sell orders based on the configuration.
- The bot can monitor multiple symbols. All symbols will be monitored per second.
- The bot is using MongoDB to provide a persistence database. However, it does not use the latest MongoDB to support Raspberry Pi 32bit. Used MongoDB version is 3.2.20, which is provided by apcheamitru.
- The bot is tested/working with Linux and Raspberry Pi 4 32bit. Other platforms are not tested.
Buy Signal
The bot will continuously monitor the coin based on the grid trade configuration.
For grid trade #1, the bot will place a STOP-LOSS-LIMIT order to buy when the current price reaches the lowest price. If the current price continuously falls, then the bot will cancel the previous order and re-place the new STOP-LOSS-LIMIT order with the new price.
After grid trade #1, the bot will monitor the COIN based on the last buy price.
- The bot will not place a buy order of the grid trade #1 if has enough coin (typically over $10 worth) to sell when reaches the trigger price for selling.
- The bot will remove the last buy price if the estimated value is less than the last buy price removal threshold.
Buy Scenario
Let say, if the buy grid trade configurations are set as below:
- Number of grids: 2
- GridsNo#Trigger PercentageStop Price PercentageLimit price percentageUSDT111.051.0515020.81.031.031100
To make it easier to understand, I will use $
as a USDT symbol. For the simple calculation, I do not take an account for the commission. In real trading, the quantity may be different.
Your 1st grid trading for buying is configured as below:
- Grid No#: 1
- Trigger percentage: 1
- Stop percentage: 1.05 (5.00%)
- Limit percentage: 1.051 (5.10%)
- Max purchase amount: $50
And the market is as below:
- Current price: $105
- Lowest price: $100
- Trigger price: $100
When the current price is falling to the lowest price ($100) and lower than ATH(All-Time High) restricted price if enabled, the bot will place new STOP-LOSS-LIMIT order for buying.
- Stop price: $100 * 1.05 = $105
- Limit price: $100 * 1.051 = $105.1
- Quantity: 0.47573
Let’s assume the market changes as below:
- Current price: $95
Then the bot will follow the price fall and place new STOP-LOSS-LIMIT order as below:
- Stop price: $95 * 1.05 = $99.75
- Limit price: $95 * 1.051 = $99.845
- Quantity: 0.5
Let’s assume the market changes as below:
- Current price: $100
Then the bot will execute 1st purchase for the coin. The last buy price will be recorded as $99.845
. The purchased quantity will be 0.5
.
Once the coin is purchased, the bot will start monitoring the sell signal and at the same time, monitor the next grid trading for buying.
Your 2nd grid trading for buying is configured as below:
- Grid#: 2
- Current last buy price: $99.845
- Trigger percentage: 0.8 (20%)
- Stop percentage: 1.03 (3.00%)
- Limit percentage: 1.031 (3.10%)
- Max purchase amount: $100
And if the current price is continuously falling to $79.876
(20% lower), then the bot will place new STOP-LOSS-LIMIT order for the 2nd grid trading for the coin.
Let’s assume the market changes as below:
- Current price: $75
Then the bot will follow the price fall and place new STOP-LOSS-LIMT order as below:
- Stop price: $75 * 1.03 = $77.25
- Limit price: $75 * 1.031 = $77.325
- Quantity: 1.29
Let’s assume the market changes as below:
- Current price: $78
Then the bot will execute 2nd purchase for the coin. The last buy price will be automatically re-calculated as below:
- Final last buy price: ($50 + $100)/(0.5 COIN + 1.29 COIN) = $83.80
Sell Signal
If there is enough balance for selling and the last buy price is recorded in the bot, then the bot will start monitoring the sell signal of the grid trade #1. Once the current price reaches the trigger price of the grid trade #1, then the bot will place a STOP-LOSS-LIMIT order to sell. If the current price continuously rises, then the bot will cancel the previous order and re-place the new STOP-LOSS-LIMIT order with the new price.
- If the bot does not have a record for the last buy price, the bot will not sell the coin.
- If the coin is worth less than the last buy price removal threshold, then the bot will remove the last buy price.
- If the coin is not worth than the minimum notional value, then the bot will not place an order.
Sell Scenario
Let say, if the sell grid trade configurations are set as below:
- Number of grids: 2
- GridsNo#Trigger PercentageStop Price PercentageLimit price percentageSell Quantity Percentage1st1.050.970.9690.52nd1.080.950.9491
Unlike buy, the sell configuration will use the percentage of a quantity. If you want to sell all of your coin quantity, then simply configure it as 1
(100%).
From the last buy actions, you now have the following balances:
- Current quantity: 1.79
- Current last buy price: $83.80
Your 1st grid trading for selling is configured as below:
- Grid No# 1
- Trigger percentage: 1.05
- Stop price percentage: 0.97
- Limit price percentage: 0.969
- Sell amount percentage: 0.5
Let’s assume the market changes as below:
- Current price: $88
As the current price is higher than the sell trigger price($87.99), then the bot will place new STOP-LOSS-LIMIT order for selling.
- Stop price: $88 * 0.97 = $85.36
- Limit price: $88 * 0.969 = $85.272
- Quantity: 0.895
Let’s assume the market changes as below:
- Current price: $90
Then the bot will follow the price rise and place new STOP-LOSS-LIMIT order as below:
- Stop price: $90 * 0.97 = $87.30
- Limit price: $90 * 0.969 = $87.21
- Quantity: 0.895
Let’s assume the market changes as below:
- Current price: $87
Then the bot will execute 1st sell for the coin. Then the bot will now wait for 2nd selling trigger price ($83.80 * 1.08 = $90.504).
- Current quantity: 0.895
- Current last buy price: $83.80
Let’s assume the market changes as below:
- Current price: $91
Then the current price($91) is higher than 2nd selling trigger price ($90.504), the bot will place new STOP-LOSS-LIMIT order as below:
- Stop price: $91 * 0.95 = $86.45
- Limit price: $91 * 0.949 = $86.359
- Quantity: 0.895
Let’s assume the market changes as below:
- Current price: $100
Then the bot will follow the price rise and place new STOP-LOSS-LIMT order as below:
- Stop price: $100 * 0.95 = $95
- Limit price: $100 * 0.949 = $94.9
- Quantity: 0.895
Let’s assume the market changes as below:
- Current price: $94
Then the bot will execute 2nd sell for the coin.
The final profit would be
- 1st sell: $94.9 * 0.895 = $84.9355
- 2nd sell: $87.21 * 0.895 = $78.05295
- Final profit: $162 (8% profit)
Sell Stop-Loss Scenario
Let say, if the sell Stop-Loss configurations are set as below:
- Max loss percentage: 0.90
- Temporary disable for buying (minutes): 60
And the market is as below:
- Current price: $95
- Last buy price: $100
- Stop-Loss price: $90
Then the bot will not place a Stop-Loss order because the Stop-Loss price ($90) is less than the current price ($95).
If the price is continuously falling, then the bot will keep monitoring until the price reaches the Stop-Loss price.
In the next tick, the market changes as below:
- Current price: $90
- Stop-Loss price: $90
The bot will place new MARKET order for selling because the current price ($90) is less or equal than the Stop-Loss price ($90). In real trading, the quantity may be different.
The bot will also set the symbol to be temporarily disabled for 60 minutes to avoid buying/sell continuously. In the frontend, the action will display the pause icon and how long left to be enabled again. The symbol can be enabled by clicking the play icon.
Features
- Manual trade
- Convert small balances to BNB
- Trade all symbols
- Monitoring multiple coins simultaneously
- Stop-Loss
- Restrict buying with ATH price
- Grid Trade for buy/sell
Frontend + WebSocket
React.js based frontend communicating via Web Socket:
- List monitoring coins with buy/sell signals/open orders
- View account balances
- Manage global/symbol settings
- Delete caches that are not monitored
- Link to public URL
- Support Add to Home Screen
hello i have enabled everything and the bot started but my account has doge coin only i just need to start the trades how can i do that ?
Please help me run the bot. I can’t run the bot. Requesting your kind help as a newbie.