Repository: hummingbot/hummingbot
Issue: Telegram - Various commands not working correctly

**Describe the bug**
If you enter the command "trades" via the bot UI it will report trades for the last 24 hours, ie using default values for the positional arguments

If you enter the same command via telegram the following error is generated:

2021-03-10 07:27:39,622 - 1 - hummingbot.client.ui.hummingbot_cli - ERROR - Unhandled error in prompt_toolkit: trades() missing 3 required positional arguments: 'days', 'market', and 'open_order_markets'


**Release version**
dev-0.37.0



Changed files:
hummingbot/client/command/balance_command.py, hummingbot/client/command/ticker_command.py, hummingbot/client/command/history_command.py, hummingbot/client/command/trades_command.py, hummingbot/client/command/pnl_command.py, hummingbot/client/command/start_command.py, hummingbot/client/command/stop_command.py, hummingbot/client/command/order_book_command.py

diff --git a/hummingbot/client/command/balance_command.py b/hummingbot/client/command/balance_command.py
index 01b60b51e..bf6cf79af 100644
--- a/hummingbot/client/command/balance_command.py
+++ b/hummingbot/client/command/balance_command.py
@@ -15,6 +15,7 @@ from hummingbot.core.rate_oracle.rate_oracle import RateOracle
 import pandas as pd
 from decimal import Decimal
 from typing import TYPE_CHECKING, Dict, Optional, List
+import threading
 
 if TYPE_CHECKING:
     from hummingbot.client.hummingbot_application import HummingbotApplication
@@ -30,6 +31,10 @@ class BalanceCommand:
                 option: str = None,
                 args: List[str] = None
                 ):
+        if threading.current_thread() != threading.main_thread():
+            self.ev_loop.call_soon_threadsafe(self.balance, option, args)
+            return
+
         self.app.clear_input()
         if option is None:
             safe_ensure_future(self.show_balances())
diff --git a/hummingbot/client/command/history_command.py b/hummingbot/client/command/history_command.py
index 21e6fe207..d3a29121b 100644
--- a/hummingbot/client/command/history_command.py
+++ b/hummingbot/client/command/history_command.py
@@ -41,7 +41,7 @@ class HistoryCommand:
                 precision: Optional[int] = None
                 ):
         if threading.current_thread() != threading.main_thread():
-            self.ev_loop.call_soon_threadsafe(self.history)
+            self.ev_loop.call_soon_threadsafe(self.history, days, verbose, precision)
             return
 
         if self.strategy_file_name is None:
diff --git a/hummingbot/client/command/order_book_command.py b/hummingbot/client/command/order_book_command.py
index 7701261f4..c5387c0e2 100644
--- a/hummingbot/client/command/order_book_command.py
+++ b/hummingbot/client/command/order_book_command.py
@@ -3,6 +3,7 @@ import pandas as pd
 from typing import TYPE_CHECKING
 if TYPE_CHECKING:
     from hummingbot.client.hummingbot_application import HummingbotApplication
+import threading
 
 
 class OrderBookCommand:
@@ -11,6 +12,9 @@ class OrderBookCommand:
                    exchange: str = None,
                    market: str = None,
                    live: bool = False):
+        if threading.current_thread() != threading.main_thread():
+            self.ev_loop.call_soon_threadsafe(self.order_book, lines, exchange, market, live)
+            return
         safe_ensure_future(self.show_order_book(lines, exchange, market, live))
 
     async def show_order_book(self,  # type: HummingbotApplication
diff --git a/hummingbot/client/command/pnl_command.py b/hummingbot/client/command/pnl_command.py
index 35ee5e881..d4409fd1a 100644
--- a/hummingbot/client/command/pnl_command.py
+++ b/hummingbot/client/command/pnl_command.py
@@ -30,7 +30,7 @@ class PnlCommand:
             open_order_markets: bool
             ):
         if threading.current_thread() != threading.main_thread():
-            self.ev_loop.call_soon_threadsafe(self.trades)
+            self.ev_loop.call_soon_threadsafe(self.pnl, days, market, open_order_markets)
             return
         safe_ensure_future(self.pnl_report(days, market, open_order_markets))
 
diff --git a/hummingbot/client/command/start_command.py b/hummingbot/client/command/start_command.py
index 6e079fd82..399d2d61a 100644
--- a/hummingbot/client/command/start_command.py
+++ b/hummingbot/client/command/start_command.py
@@ -52,7 +52,7 @@ class StartCommand:
               log_level: Optional[str] = None,
               restore: Optional[bool] = False):
         if threading.current_thread() != threading.main_thread():
-            self.ev_loop.call_soon_threadsafe(self.start, log_level)
+            self.ev_loop.call_soon_threadsafe(self.start, log_level, restore)
             return
         safe_ensure_future(self.start_check(log_level, restore), loop=self.ev_loop)
 
diff --git a/hummingbot/client/command/stop_command.py b/hummingbot/client/command/stop_command.py
index 3413f2d90..399f1decb 100644
--- a/hummingbot/client/command/stop_command.py
+++ b/hummingbot/client/command/stop_command.py
@@ -12,7 +12,7 @@ class StopCommand:
     def stop(self,  # type: HummingbotApplication
              skip_order_cancellation: bool = False):
         if threading.current_thread() != threading.main_thread():
-            self.ev_loop.call_soon_threadsafe(self.stop)
+            self.ev_loop.call_soon_threadsafe(self.stop, skip_order_cancellation)
             return
         safe_ensure_future(self.stop_loop(skip_order_cancellation), loop=self.ev_loop)
 
diff --git a/hummingbot/client/command/ticker_command.py b/hummingbot/client/command/ticker_command.py
index 36e19a11d..f953eebb4 100644
--- a/hummingbot/client/command/ticker_command.py
+++ b/hummingbot/client/command/ticker_command.py
@@ -2,6 +2,7 @@ import pandas as pd
 from hummingbot.core.utils.async_utils import safe_ensure_future
 from hummingbot.core.event.events import PriceType
 from typing import TYPE_CHECKING
+import threading
 
 if TYPE_CHECKING:
     from hummingbot.client.hummingbot_application import HummingbotApplication
@@ -12,6 +13,9 @@ class TickerCommand:
                live: bool = False,
                exchange: str = None,
                market: str = None):
+        if threading.current_thread() != threading.main_thread():
+            self.ev_loop.call_soon_threadsafe(self.ticker, live, exchange, market)
+            return
         safe_ensure_future(self.show_ticker(live, exchange, market))
 
     async def show_ticker(self,  # type: HummingbotApplication
diff --git a/hummingbot/client/command/trades_command.py b/hummingbot/client/command/trades_command.py
index 726595461..a50c1fb6b 100644
--- a/hummingbot/client/command/trades_command.py
+++ b/hummingbot/client/command/trades_command.py
@@ -27,7 +27,7 @@ class TradesCommand:
                market: str,
                open_order_markets: bool):
         if threading.current_thread() != threading.main_thread():
-            self.ev_loop.call_soon_threadsafe(self.trades)
+            self.ev_loop.call_soon_threadsafe(self.trades, days, market, open_order_markets)
             return
         safe_ensure_future(self.trades_report(days, market, open_order_markets))