Binance trading bot for NodeJS.
IT IS NOT MY RESPONSIBILITY IF YOU GAIN/LOSE MONEY. THERE IS NO SUCH THING AS PERFECT SOFTWARE. PLEASE LOOK THROUGH THE CODEBASE/DOCUMENTATION TO UNDERSTAND THE RISKS YOU ARE TAKING.
- Create an
.env
file in your root directory. - Copy and paste
template.env
into.env
- Fill out required environment variables
npm test
npm start
v3.3.0
March 26, 2018
- Adds profit lock feature
- Adds stop limit feature
v3.2.0
March 10, 2018
- Adds release notes to README.md
- Adds compounding budget feature
W.O.L.F calculates how much to spend per transaction based on your BUDGET
. It watches price movements of a particular TRADING_PAIR
in real-time and will buy at the current price and sell for a calculated PROFIT_PERCENTAGE
.
The synchronous nature of W.O.L.F makes sure that your trades execute as fast and safe as possible. And only sells when it's profitable! Transaction fees are taken account of! Easy peasy!
Brief technical step-by-step:
- Wolf calculates quantity of coin to purchase based of
BUDGET
. - Wolf places a limit buy order at market price.
- Wolf populates the queue with the unfilled limit buy order.
- The queue is as a data store where unfilled orders live until they've been filled.
- The queue is traversed every tick that's fired from the Binance websocket. About once a second, or faster.
- Once the order is filled, Wolf puts the order into the watchlist.
- The watchlist is a data store where filled orders live until they reach your desired
PROFIT_PERCENTAGE
, or any other optional.env
triggers. - The watchlist is traversed every tick from the Binance websocket as well.
- The watchlist is a data store where filled orders live until they reach your desired
- Once your order is ready to be sold, Wolf puts an unfilled sell order in the queue.
- Once the queue detects that the unfilled sell order has been filled, Wolf will repeat steps 1-6.
BUDGET
is the most you're willing to spend. The unit of this number is the second half ofTRADING_PAIR
; e.g ifTRADING_PAIR
isETHBTC
thenBUDGET
is the amount of BTC you're willing to spend.PROFIT_PERCENTAGE
is in whole numbers; e.g1.2
is one-point-two percent.TRADING_PAIR
must be in upper-case; e.g ifTRADING_PAIR
equalsETHBTC
it means you're buying and selling Ethereum with Bitcoin.
COMPOUND
can be set to true to have your budget programmatically increase as you profit for more profit potential.PROFIT_LOCK_PERCENTAGE
is in whole numbers; e.g1.2
is one-point-two percent.- Example: Your
PROFIT_PERCENTAGE
is 5% and yourPROFIT_LOCK_PERCENTAGE
is 3%. W.O.L.F will wait for your order to sell at 5%, however if it passes 3% at anytime and then dips back to say ~2.7% it will do a market order to lock some of your gains. It's important to note that your sell at yourPROFIT_LOCK_PERCENTAGE
will only trigger if the price passes yourPROFIT_LOCK_PERCENTAGE
then dips backwards, otherwise W.O.L.F will continue watching to see if you reach your, more desirable,PROFIT_PERCENTAGE
.
- Example: Your
STOP_LIMIT_PERCENTAGE
is in whole numbers; e.g1.2
is one-point-two percent. If at any point the current market price of your position dips below this percentage, W.O.L.F will sell your position at market price with a limit order. You can either have aSTOP_LIMIT_PERCENTAGE
orSTOP_LOSS_PERCENTAGE
, but not both.
This command runs tests before starting the bot. It then kicks off a recursive loop of functions that keep track of best BUY/SELL prices updated by the second and executes trades that are favored for you.
Pressing these two keys will terminate W.O.L.F and cancel any open orders that W.O.L.F created. It will not cancel any open orders you might already have.
Limit Buy Order was PLACED.
Limit Buy Order was FILLED.
Limit Sell Order was PLACED.
Limit Sell Order was FILLED.
Open up a ticket here to have a question answered or to report a bug: https://github.com/austinyearlykim/wolf/issues
BTC: 13w2zLgzpEfY8o3QYGzdCP1M6qXN9gwn62
LTC: LUKLmXd4oMbJr4RdV1K2hYgo6b43RQper6
ETH: 0x8140fd88fe77907eb96ceb7850751576da214715
Be sure to reach out to me to get listed here after you've made a donation! No donation is too big or small, but >.001btc to get listed as a supporter! Successful pull requests get you there too!
- Chase Reid (@Chase-Reid)