A lot of people don’t understand why their Gunbot shows a message “Waiting to trade… Safety switch is on” from time to time.

First of all, it’s not an error. Then what does it mean? Ok, let’s start talking about TRADES_TIMEOUT parameter. After Gunbot buys a coin, the exchange takes some time to update the trading history. Here is where TRADES_TIMEOUT comes into scene, we need to wait some time to avoid some problems:
1- Avoid to buy multiple times if the bot doesn’t detect a previous purchase.
2- Avoid the bot to “think” the last bought price is an old purchase.
So, TRADES_TIMEOUT is a protection and it sets the number of seconds the bot will wait until it will be able to buy a coin after a purchase.
In conclusion, “Waiting to trade…Safety Switch is on…” is not an error, it just states that the bot is waiting the amount of seconds stated in TRADES_TIMEOUT parameter to avoid a problem. Obviously if you set TRADES_TIMEOUT to 0, you won’t see that message again, but it’s not recommended. The recommended values are 300 for Bittrex and 100 for Poloniex.