diff --git a/docs/configuration.md b/docs/configuration.md
index 0163e1671..99a5fea04 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -97,6 +97,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi
| `telegram.enabled` | Enable the usage of Telegram.
**Datatype:** Boolean
| `telegram.token` | Your Telegram bot token. Only required if `telegram.enabled` is `true`.
**Keep it in secret, do not disclose publicly.**
**Datatype:** String
| `telegram.chat_id` | Your personal Telegram account id. Only required if `telegram.enabled` is `true`.
**Keep it in secret, do not disclose publicly.**
**Datatype:** String
+| `telegram.balance_dust_level` | Dust-level (in stake currency) - currencies with a balance below this will not be shown by `/balance`.
**Datatype:** float
| `webhook.enabled` | Enable usage of Webhook notifications
**Datatype:** Boolean
| `webhook.url` | URL for the webhook. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details.
**Datatype:** String
| `webhook.webhookbuy` | Payload to send on buy. Only required if `webhook.enabled` is `true`. See the [webhook documentation](webhook-config.md) for more details.
**Datatype:** String
diff --git a/docs/telegram-usage.md b/docs/telegram-usage.md
index 57f2e98bd..d4a6fb118 100644
--- a/docs/telegram-usage.md
+++ b/docs/telegram-usage.md
@@ -83,10 +83,13 @@ Example configuration showing the different settings:
"sell": "on",
"buy_cancel": "silent",
"sell_cancel": "on"
- }
+ },
+ "balance_dust_level": 0.01
},
```
+`balance_dust_level` will define what the `/balance` command takes as "dust" - Currencies with a balance below this will be shown.
+
## Create a custom keyboard (command shortcut buttons)
Telegram allows us to create a custom keyboard with buttons for commands.
diff --git a/freqtrade/constants.py b/freqtrade/constants.py
index 51f178806..c03bff0ad 100644
--- a/freqtrade/constants.py
+++ b/freqtrade/constants.py
@@ -54,6 +54,11 @@ DECIMALS_PER_COIN = {
'ETH': 5,
}
+DUST_PER_COIN = {
+ 'BTC': 0.0001,
+ 'ETH': 0.01
+}
+
# Soure files with destination directories within user-directory
USER_DATA_FILES = {
@@ -230,6 +235,7 @@ CONF_SCHEMA = {
'enabled': {'type': 'boolean'},
'token': {'type': 'string'},
'chat_id': {'type': 'string'},
+ 'balance_dust_level': {'type': 'number', 'minimum': 0.0},
'notification_settings': {
'type': 'object',
'properties': {
@@ -244,7 +250,6 @@ CONF_SCHEMA = {
}
},
'required': ['enabled', 'token', 'chat_id'],
- 'balance_dust_level': 0.0001
},
'webhook': {
'type': 'object',
diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py
index ad3a00292..9d05ae142 100644
--- a/freqtrade/rpc/telegram.py
+++ b/freqtrade/rpc/telegram.py
@@ -17,6 +17,7 @@ from telegram.ext import CallbackContext, CommandHandler, Updater
from telegram.utils.helpers import escape_markdown
from freqtrade.__init__ import __version__
+from freqtrade.constants import DUST_PER_COIN
from freqtrade.exceptions import OperationalException
from freqtrade.misc import round_coin_value
from freqtrade.rpc import RPC, RPCException, RPCHandler, RPCMessageType
@@ -487,7 +488,9 @@ class Telegram(RPCHandler):
result = self._rpc._rpc_balance(self._config['stake_currency'],
self._config.get('fiat_display_currency', ''))
- balance_dust_level = self._config['telegram'].get('balance_dust_level', 0.0001 )
+ balance_dust_level = self._config['telegram'].get('balance_dust_level', 0.0)
+ if not balance_dust_level:
+ balance_dust_level = DUST_PER_COIN.get(self._config['stake_currency'], 1.0)
output = ''
if self._config['dry_run']:
@@ -507,7 +510,8 @@ class Telegram(RPCHandler):
f"\t`Est. {curr['stake']}: "
f"{round_coin_value(curr['est_stake'], curr['stake'], False)}`\n")
else:
- curr_output = f"*{curr['currency']}:* not showing <{balance_dust_level} {curr['stake']} amount \n"
+ curr_output = (f"*{curr['currency']}:* not showing <{balance_dust_level} "
+ f"{curr['stake']} amount \n")
# Handle overflowing messsage length
if len(output + curr_output) >= MAX_TELEGRAM_MESSAGE_LENGTH:
diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py
index f065bb4c5..922aa2de8 100644
--- a/tests/rpc/test_rpc_telegram.py
+++ b/tests/rpc/test_rpc_telegram.py
@@ -520,7 +520,7 @@ def test_telegram_balance_handle(default_conf, update, mocker, rpc_balance, tick
assert 'Balance:' in result
assert 'Est. BTC:' in result
assert 'BTC: 12.00000000' in result
- assert '*XRP:* not showing <1$ amount' in result
+ assert '*XRP:* not showing <0.0001 BTC amount' in result
def test_balance_handle_empty_response(default_conf, update, mocker) -> None: