Issue title: Limit order ('Waiting for coin to buy...')
 Issue body: **Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
 - OS: [e.g. Windows 10]

**Additional context**
Add any other context about the problem here.

 Comments: 
 Comment 0: > why it takes the weighted avg price wAvgPrice=ticker["weightedAvgPrice"]) and not the e.g. lastBid? Sometimes with the weightedAvg the limit order is raised very below down the bids orderbook.

It takes the weighted price to avoid buying pre-pumped coins.
> ii) if the limit order is below the market order then every second prints 'Waiting for coin to buy...'. So if the order gets filled however the Binance API somehow does not return the 'FILLED' value and then the user has to kill the process in order to stop. Which means no oco orders are raised. I guess the problem with this is the very nature of the REST API Vs websockets where the latter maintains persistence. May be a piece of code that implement websockets streams for limit orders might help.

If the order isn't getting fulfilled (because the price rises too quickly for the bot to buy) then the user has to increase the buyLimit parameter to increase how much they are willing to spend. If the bot doesn't buy the coin instantly, then the price of the coin has already jumped higher than buyLimit limit so this is a user issue not a bot issue I think.
I'll try and improve the code so that it doesn't infinitely loop with a web-socket but I'm not sure if its even needed tbh (since the order should be carried out almost instantaneously).

 Comment 1: Thank you fj317 and is very much appreciated.
For i) above, yes it makes sense but regardless in a strong pumping situation the user is going to go for a market buy order anyway or at least to choose a limit order times an appropriate multiplier(e.g. buyLimit=1.1 or 1.2).
For ii) I had in mind using the bot also for up trending conditions; **I get it though it has not been designed for that purpose.** Nevertheless, can still see a benefit using the bot for up-trending with limit orders (now you can see the association with the 'lastBid' price I mentioned earlier) I think with a few lines of code for web-socket will be very helpful.
 Comment 2: > For i) above, yes it makes sense but regardless in a strong pumping situation the user is going to go for a market buy order anyway or at least to choose a limit order times an appropriate multiplier(e.g. buyLimit=1.1 or 1.2).

Yeah I realise this but the option is always nice. The user can do a market order if they set the buyLimit to 1 now (since I've just implemented this into the bot).

>For ii) I had in mind using the bot also for up trending conditions; I get it though it has not been designed for that purpose. Nevertheless, can still see a benefit using the bot for up-trending with limit orders (now you can see the association with the 'lastBid' price I mentioned earlier)

Yeah sure you can use it in any situation like you said. 

> I think with a few lines of code for web-socket will be very helpful.

And yeah I'll look into this and see how to implement it to stop the infinite loop error.

 Comment 3: thank you so much fj317, that will be great if you can to get out of that infinite loop error. I believe one way to do it is through the websockets https://github.com/binance/binance-spot-api-docs/blob/master/user-data-stream.md. Luckily, Binance provides the relevant python module for this: from binance.websockets import BinanceSocketManager , and then WSS for orders and the key order update event type is: executionReport
 Comment 4: This is now implemented into the program!
 Comment 5: Thank you so much fj317. I am glad to see the WSS been implemented. I put it into test e.g. to create a limit buy order. The order was successfully created but once the order was 'filled' in Binance the program threw the following error:
======================
Buy order has been made!
Processing sell order.

coinOrderInfo = order["fills"][0]
IndexError: list index out of range
======================

 Comment 6: Hm that's a weird error I haven't seen before. I'll take a look later and see what could be causing it. 
 Comment 7: ....thanks you fj317. Also, I suggest we add a line under the 'quitProgram()' function to stop the websocket:
    # stop websocket
    bsm.stop_socket(bm.start_user_socket(process_message))
makes sense?
 Comment 8: I have already. The line ' reactor.stop()' should close the socket according to the documentation. 
{'source': 'GithubIssues', 'repo_name_with_owner': 'fj317/PumpBot', 'issue_id': 848595230, 'repo_stars': 193.0}