Exchange
Blockchain and crypto asset exchange
Academy
Blockchain and crypto education
Broker
Trading terminal solutions
Charity
Charity
Cloud
Enterprise exchange solutions
DEX
Fast and secure decentralized digital asset exchange
Labs
Incubator for top blockchain projects
Launchpad
Token Launch Platform
Research
Institutional-grade analysis and reports
Trust Wallet
Binance's official crypto wallet
Buy Crypto
Markets
Scan to Download App IOS & Android
Download
English
USD
Support Center
FAQ
Crypto Derivatives
Futures Contracts
Futures Guide
What is Grid Trading?
Binance
2021-01-28 16:24
Tutorial Video

What is Grid Trading?

Grid trading is a strategic tool that allows you to make a profit by placing a series of long and short orders at set intervals around a set price. In this way, it constructs a trading grid. Grid trading performs the best in a volatile market when prices fluctuate at specific intervals. By automatically executing low buy order corresponds to the high sell order, it guarantees profits each time when the selling price is higher than the buying price during a sideways price movement, thus does not require predicting the direction of the market movement.
Binance Grid Trading is now live on USDⓈ-M Futures. Users can customize and set grid parameters, to determine upper and lower limits of the grid and the number of grids. Once the grid is created, it takes one click to activate, the system will automatically buy or sell orders at preset prices. To lock the profit, the grid is always constructed as a sell limit order at a price higher than the current market price, and a buy limit order at a price lower than the current market price (if the first order in the grid has a price that is the same as the current market price, it regards as a buy limit order by default). The more frequent fluctuations in the set price range, the higher the profit.
Risk Warning
Grid trading as a strategic trading tool should not be regarded as financial or investment advice from Binance. Grid trading is used at your discretion and your own risk. Binance will not be liable to you for any loss that might arise from your use of the feature. It is recommended that users should read and fully understand the Grid Trading Tutorial and make risk control and rational trading within your financial ability.

How to start Grid Trading?

1. Entrance

Web: After logging in successfully, at the USDⓈ-M Futures trading interface, click ‘Grid Trading’ to enter the grid trading page.
Mobile: Go to Futures, and then USDⓈ-M Futures Futures trading, click the top right corner and select ‘Grid Trading’. (will be available soon)

2. Grid trading setting page

Select the symbol you would like to execute the strategy, set the grid parameters, click create, then confirm to start the grid trading
Please note that the following situations may cause grid creation to fail:
  1. When you are currently running a grid trading on the symbol.
  2. When you have open orders or positions on the symbol.
  3. When you are under hedge position mode, please adjust to one-way mode.
  4. When you exceed the limit, the total quantity of working and limit triggered grid trading is 10.

3. Grid trading mechanism

The grid trading life cycle:
  1. Grid Trigger (optional)
  2. Initial structure
  3. Open position
  4. Grid Update
  5. Stop Trigger (optional)
  6. Cancellation
1. Grid Trigger (optional)
Set parameter 10, 11
Users can choose to start grid limit orders immediately or choose to trigger when the market price reaches a certain value. The grid orders will be triggered when the chosen trigger price type (Last price or Mark price) rises above or falls below the trigger price you enter.
2. Initial structure
Set parameter 1, 2, 3, 4, 6
The initial structure is to determine a series of price levels, according to the latest market price (buy, sell, mid-price), place sell limit orders at a price higher than the market price, and a buy limit order at a price lower than the market price, and wait for the price to be triggered.
Note that the number of limit orders is the number of grids +1 at the time of initial construction because no positions are held. One of them (the one near the latest market price) is the initial opening order waiting to be executed;
3. Open position
Opening a position is to wait for the market to fluctuate to the nearest price point and trade after the initial construction. No special operation is required for this process.
4. Grid Update
Grid update means that every time a price point is touched i.e. limit order is filled, the grid limit order will update in time. The price of the most recently executed order will always be the one that is left blank, then buy or sell limit orders are filled in again according to the set parameters, thus the number of limit orders in the grid is maintained, as shown in the following example.
The initial market price is 10010, and the grid limit price at each unit is:
PriceDirection
10200Sell
10100Sell
10000Buy
9900Buy
9800Buy
Assuming that the price drops to 10000 and the buy order is executed, it is the initial open position, and the grid limit order becomes:
PriceDirection
10200Sell
10100Sell
10000-
9900Buy
9800Buy

The price rises to 10100 and the sell order is executed, and the grid limit orders are updated as follows:
PriceDirection
10200Sell
10100-
10000Buy
9900Buy
9800Buy

When the price drops to 9900 and two buy orders are executed, the grid limit orders are updated as follows:
PriceDirection
10200Sell
10100Sell
10000Sell
9900-
9800Buy
So back and forth.
5. Stop Trigger (optional)
Set Parameter 12
Users can choose to manually terminate grid operation or to set Stop Trigger.
Stop Trigger means that when the market price rises above Stop_upper_limit or falls below Stop_lower_limit i.e. the market is no longer following a swinging trend, the grid will stop its operation.
6. Cancellation
Set Parameter 13,14
Users can choose whether to cancel all orders and close all positions manually or automatically after the grid is stopped.
When 'cancel all orders' on stop is enabled, the system will automatically cancel all the unfilled orders for the symbol when the grid is stopped; When close all positions on stop is enabled, the system will automatically close all the open positions at the market price for the symbol when the grid is stopped
Note that during the grid operation, the following scenarios will cause the grid to terminate:
1. Manually terminate the grid
2. Insufficient margin causes some positions to be liquidated or fail to place orders
3. Manually cancel some or all grid limit orders
4. Manually close some or all of the grid positions
5. When the delivery contract is delivered, the product no longer exists and the grid strategy will be automatically stopped. During the delivery process, the system will automatically remove user limit orders and settle open positions.
The system will prompt for above actions if a grid is currently in operation, notification as shown below:
The recommended grid trading leverage is lower than 20, because when the leverage is too high, the insufficient margin may cause position liquidation or opening order, and lead the grid to terminate. If the leverage is higher than 20x, a second confirmation will pop up to remind users.

4. Grid Trading parameters

1
  • Choose symbol
  • Select Cross/Isolated margin mode
  • Adjust leverage
2
  • Lower price i.e.Grid_lower_limit
  • Upper price i.e. Grid_upper_limit
Set the lower price and the upper price of the grid (cannot be modified after the grid order is placed). If the highest or lowest grid is exceeded, no more positions will be opened.
For example, if the current BTCUSDT price is 18000, the user judges that the price will fall when it reaches above 19000, in this case, the upper price can be set to 19000. After price reaches 19000, the grid will no longer open positions.
3
  • Mode: arithmetic / geometric(cannot be modified after the grid order is placed)
1. Arithmetic: Each grid has an equal price difference.
The arithmetic grid divides the price range from grid_lower_limit to grid_upper_limit into grid_count by equal price difference.
The price difference of each grid is:
price_diff = (grid_upper_limit - grid_lower_limit) / grid_count
Then it constructed a series of price intervals:
price_1 = grid_lower_limit
price_2 = grid_lower_limit + price_diff
price_3 = grid_lower_limit + price_diff * 2
...
price_n = grid_lower_limit + price_diff * (n-1)
At grid_upper_limit,n = grid_count
Example: Arithmetic price_diff = 100: 1000, 1100, 1200, 1300, 1400,... (the next price is 100 higher than the previous one)
2. Geometric: Each grid has an equal price difference ratio.
The geometric grid divides the price range from grid_lower_limit to grid_upper_limit by into grid_count by equal price ratio.
The price ratio of each grid is:
price_ratio = (grid_upper_limit / grid_lower_limit) ^ (1/grid_count)
The price difference of each grid is:
price_diff_percentage = ( (grid_upper_limit / grid_lower_limit) ^ (1/grid_count) - 1) * 100%
Then it constructed a series of price intervals:
price_1 = grid_lower_limit
price_2 = grid_lower_limit* price_ratio
price_3 = grid_lower_limit * price_ratio ^ 2
...
price_n = grid_lower_limit* price_ratio ^ (n-1)
At grid_upper_limit,n = grid_count
Example: Geometric grid price_diff_percentage = 10%: 1000, 1100, 1210, 1331, 1464.1,... (the next price is 10% higher than the previous one)
4
  • Grid_count i.e. number of limit orders(cannot be modified after the grid order is placed)
The minimum is 2 and the maximum is 149
Note: Price difference can't be less than tick size, otherwise it requires to adjust Grid_count or Grid upper/lower limit.
How to calculate?
1. Arithmetic grid, price_diff=(grid_upper_limit - grid_lower_limit)/gridCount<tickSize
2. Geometric grid, min_price_diff=grid_lower_limit*price_ratio<tickSize , price_ratio = (grid_upper_limit / grid_lower_limit) ^ (1/grid_count)
5
  • Profit/grid (incl. fees)
Note that if Profit/grid is below maker commission, the system will prompt that the total grid profit may not cover trading fee.
How to calculate? (Profit/grid is estimated and for reference only)
1. Arithmetic grid
profit_per_grid_lower=[1+ (grid_upper_limit - grid_lower_limit)/(grid_count* grid_upper_limit )]*(1-commission%)^2-1
profit_per_grid_higher=[1+(grid_upper_limit - grid_lower_limit)/(grid_count*grid_lower_limit)]*(1-commission%)^2-1
For example: Price interval 1000-2000,Grid_count 10,Commission 0.1%,then the price difference of each grid is: (2000-1000)/10=100,profit_per_grid_lower = ((2000+100)/2000)×(1-0.1%)×(1-0.1%)-1=4.79%;profit_per_grid_higher = ((1000+100)/1000)×(1-0.1%)×(1-0.1%)-1=9.78%
2. Geometric grid:
profit_per_grid_geo=(grid_upper_limit/grid_lower_limit)^(1/grid_count)-1-2*transaction fee%
For example:Price interval 1000-2000,Grid_count 10,Commission 0.1%,then the price ratio of each grid is: (2000-1000) ^ (1/10) = 107.18%, Profit/grid = 107.18%-1-2×0.1%=6.98%
6
  • Initial margin (cannot be modified after the grid order is placed)
Initial margin = initial_value / leverage
User can manually input or drag the slider (the percentage of the investable amount is up to 100%, Initial margin = percentage * margin balance), and it must be within the interval between the min_initial_margin and the margin balance.
min_initial_margin= minQty*sum(price)/(leverage*adjust_coef)
minQty: the minimum grid_qty
adjust_coef: the current default is 0.9, it will be adjusted according to market conditions
7
  • Total investment i.e.Initial_value(cannot be modified after the grid order is placed)
Total investment = Initial margin * leverage
After leverage is set,the minimum Initial_value = sum(price * minQty);the maximum Initial_value = margin * leverage
8
  • Qty/Order,i.e. grid_qty
grid_qty = adjust_coef * initial_margin*leverage / sum(price)
9
  • Available margin balance, i.e. margin balance of USDⓈ-M Futures account
10
  • Trigger_type: Last price / Mark price(Optional, can be modified before the grid is triggered)
1. Grid trigger type: When the last price or market price you choose reaches the set trigger price, the grid will start running.
2. Stop trigger type: When the last price or market price of the symbol you choose reaches the set top or bottom stop price, the grid will be stopped.
11
  • Trigger_price(Optional, can be modified before the grid is triggered)
The grid orders will be triggered when Last Price / Mark price rises above or falls below the trigger price you enter.
12
  • Stop_upper_limit / Stop_lower_limit , i.e. Stop loss top price / Stop loss bottom price(Optional, can be modified before the grid is triggered)
1. Stop_upper_limit
Stop loss top price should be higher than upper price, last price and trigger price; when the latest market price reaches Stop_upper_limit, the grid will stop working.
2. Stop_lower_limit
Stop loss bottom price should be less than lower price, last price and trigger price; when the latest market price reaches Stop_lower_limit, the grid will stop working.
13
  • Cancel all Orders on Stop(Optional, ticked by default, can be modified before the grid is triggered)
Enable cancel all orders on stop to automatically cancel all unfilled orders for the symbol when the grid stops; when disabled, you can cancel all manually after the grid stops.
14
  • Close all Positions on Stop (Optional, can be modified before the grid is triggered)
Enable close all positions on stop to automatically close all the open positions at the market price for the symbol when the grid stops; when disabled, you can close all positions manually after the grid stops.

*The above parameter setting suggestions are for reference only. Futures trading carries a substantial risk and the possibility of both significant profits and losses. Past gains are not indicative of future returns. All of your margin balance may be liquidated in the event of extreme price movement.

5. How to check Active Grid

TimeCreation time of the grid
SymbolFor contracts in grid trading, users can click on the leverage displayed next to the symbol to adjust the grid leverage.
Initial MarginMargin at the time of grid creation
Total ProfitTotal profit=Grid profit + Unrealized PNL
Total profit %ROI = Total Profit / initial_margin * 100%
Realized profit
Realized profit and loss from grid trading
Cumulative profits of all completed orders. For arithmetic grid type, total profits = number of completed orders * Profit/grid - total commission
Unrealized PNLUnrealized profit and loss on open orders calculated based on Mark Price / Last Price, and return on equity percentage
DurationStarting from the grid creation, when the operation time exceeds 1 day, the operation time is displayed as 1d2h9m; when the operation time exceeds 1 year, the operation time is displayed as 1y1d2h9m, updated every minute; if the operation time is less than 1min, it is displayed as —
Liq. PricePlease refer to the calculation of liquidation price
Grid Status
  • New:When the grid is created but not triggered
  • Working:After the grid is triggered


  • Adjust margin
Adjust margin is available only when it's on Isolated margin mode.
  • Termination
Click on termination to stop grid operation. Users can choose whether to cancel unfilled orders and close all positions manually or automatically after the grid is stopped.
When "cancel all orders on stop" is enabled, the system will automatically cancel all the unfilled orders for the symbol when the grid is stopped; When close all positions on stop is enabled, system will automatically close all the open positions at the market price for the symbol when the grid is stopped.
  • Check Grid Detail
How to calculate Current Margin?
position_notional_value=Latest_Mark_Price * abs(size)
present notional = max(abs(position_notional_value + open order's bid_notional), abs(position_notional_value - open order's ask_notional))
open order's ask_notional=askNotional
open order's bid_notional=bidNotional
  • Crossed margin:
Current margin = present notional / current leverage
  • Isolated margin:
Current margin=(present notional-position_notional_value)/ leverage + isolatedWalletBalance
*Abs: absolute value
  • Active Order
The Active order shows all open orders(including partial filled)
Buy order book: sort by limit order price from high to low, top to bottom
Sell order book: sort by limit order price from low to high, top to bottom
  • Completed orders
A summary of all completed orders. Each transaction consists of a pair of the corresponding buy and sell orders, the transaction type is FILO (First In Last Out),Profits can be calculated based on each pair of matched buy and sell orders, and the remaining order awaiting to be matched will have profits displayed as --。
BNB commission fee is converted into margin assets at the real-time exchange rate at the time of the transaction.

6. How to check History

Click on the History tab to check grid transaction history and view grid details and completed orders.
Grids Status
  • Canceled:State after manually terminating the grid
  • Expired:Forced termination due to reasons as below.
Expiration Reason
1Failed to place order.
2Strategy manual termination successful.
3Manually placing or cancelling an order of {{symbol}} has
stopped the grid.
4Market price has reached set grid strategy stop-loss price.
5Position has been liquidated.
6Maximum open order quantity reached.
7Insufficient margin account balance.
8The order price is above the limit.
9The market is closed or paused.
10Failed to close position, unable to fill.
11Exceed the maximum allowable notional value at current leverage.
Related Articles
How to Open a Futures Account