A command line tool for placing conditional stop-limit, limit, and OCO (One-Cancels-the-Other) sell orders on Binance cryptocurrency exchange.
Prerequisites: Node.js
The easiest way to get started is to install binance-oco
globally. Open a terminal/command prompt and run the command below.
Note: You may need to use sudo
(for macOS, *nix etc), or run your command shell as Administrator (for Windows) to do this.
npm install -g binance-oco
This will add the binance-oco
command to your system path, allowing it to be run from any folder.
Create a file called .env
in the folder from where you want to run binance-oco
, and add your Binance API key in the following format. Replace BINANCE_API_KEY
with your API key and BINANCE_API_SECRET
with your API secret.
APIKEY=BINANCE_API_KEY APISECRET=BINANCE_API_SECRET
binance-oco
Place a market buy order for 1 BNB:
binance-oco -p BNBBTC -a 1 -b 0
For non market orders, binance-oco
determines whether to place a limit or stop-limit buy order based on the current price.
eg. If the current BNBBTC price is at or above 0.002 BTC, place a limit buy order for 1 BNB @ 0.002 BTC. If the current BNBBTC price is below 0.002 BTC, place a stop-limit buy for 1 BNB with stop price @ 0.002 BTC.
binance-oco -p BNBBTC -a 1 -b 0.002
If the current BNBBTC price is below 0.002 BTC, place a stop-limit buy for 1 BNB with stop price @ 0.002 BTC, and limit price @ 0.0025 BTC.
binance-oco -p BNBBTC -a 1 -b 0.002 -B 0.0025
If specific buy/sell limit prices aren't specified with the -l
or -B
/-E
options respectively, binance-oco
sets the limit price for stop-limit orders to emulate a stop market order ie. buy/sell at market price once the stop price has been hit.
To achieve this, limit prices are calculated as follows:
- Buy limit price set to maximum allowed by available balance and Binance PERCENT_PRICE trading rule
- Sell limit price set to minimum allowed by Binance MIN_PRICE, MIN_NOTIONAL and PERCENT_PRICE trading rules
Binance will still fill orders at the best price available, but order details may show a very low sell or very high buy price.
See How to use Stop-Limit Function for information on stop-limit orders, and the Binance Trading Rules for details on Binance trading rules.
Place a stop-limit sell for 1 BNB @ 0.001 BTC:
binance-oco -p BNBBTC -a 1 -s 0.001
Place a stop-limit sell for 1 BNB with stop price @ 0.002 BTC, and limit price @ 0.001 BTC.
binance-oco -p BNBBTC -a 1 -s 0.002 -l 0.001
Place a limit sell for 1 BNB @ 0.003 BTC:
binance-oco -p BNBBTC -a 1 -t 0.003
Place a buy order for 1 BNB @ 0.002 BTC. Once filled, place a stop-limit sell @ 0.001 BTC:
binance-oco -p BNBBTC -a 1 -b 0.002 -s 0.001
Place a buy order for 1 BNB @ 0.002 BTC. Once filled, place a limit sell @ 0.003 BTC:
binance-oco -p BNBBTC -a 1 -b 0.002 -t 0.003
Place a stop-limit sell for 1 BNB @ 0.001 BTC. If a price of 0.003 BTC is reached, cancel stop-limit order and place a limit sell @ 0.003 BTC:
binance-oco -p BNBBTC -a 1 -s 0.001 -t 0.003
Place a buy order for 1 BNB @ 0.002 BTC. Once filled, place a stop-limit sell @ 0.001 BTC. If a price of 0.003 BTC is reached, cancel stop-limit order and place a limit sell @ 0.003 BTC:
binance-oco -p BNBBTC -a 1 -b 0.002 -s 0.001 -t 0.003
Place a buy order for 2 BNB @ 0.002 BTC. Once filled, place:
- a stop-limit sell for the scale out amount of 1 BNB @ 0.001 BTC, and
- a stop-limit sell for the remaining 1 BNB @ 0.001 BTC
If a price of 0.003 BTC is reached, cancel first stop-limit order and place a limit sell for the scale out amount 1 BNB @ 0.003 BTC. This process is referred to as 'scaling out' of a position. The second stop-limit sell for the remaining 1 BNB is left in place.
binance-oco -p BNBBTC -a 2 -b 0.002 -s 0.001 -t 0.003 -S 1