Merge pull request #7211 from ecoppen/rpc/whitelist_options
Optional /whitelist args - sorted, nobase
This commit is contained in:
commit
22ac291c3a
@ -187,7 +187,7 @@ official commands. You can ask at any moment for help with `/help`.
|
|||||||
| `/stats` | Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells
|
| `/stats` | Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells
|
||||||
| `/exits` | Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells
|
| `/exits` | Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells
|
||||||
| `/entries` | Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells
|
| `/entries` | Shows Wins / losses by Exit reason as well as Avg. holding durations for buys and sells
|
||||||
| `/whitelist` | Show the current whitelist
|
| `/whitelist [sorted] [baseonly]` | Show the current whitelist. Optionally display in alphabetical order and/or with just the base currency of each pairing.
|
||||||
| `/blacklist [pair]` | Show the current blacklist, or adds a pair to the blacklist.
|
| `/blacklist [pair]` | Show the current blacklist, or adds a pair to the blacklist.
|
||||||
| `/edge` | Show validated pairs by Edge if it is enabled.
|
| `/edge` | Show validated pairs by Edge if it is enabled.
|
||||||
| `/help` | Show help message
|
| `/help` | Show help message
|
||||||
|
@ -1368,6 +1368,12 @@ class Telegram(RPCHandler):
|
|||||||
try:
|
try:
|
||||||
whitelist = self._rpc._rpc_whitelist()
|
whitelist = self._rpc._rpc_whitelist()
|
||||||
|
|
||||||
|
if context.args:
|
||||||
|
if "sorted" in context.args:
|
||||||
|
whitelist['whitelist'] = sorted(whitelist['whitelist'])
|
||||||
|
if "baseonly" in context.args:
|
||||||
|
whitelist['whitelist'] = [pair.split("/")[0] for pair in whitelist['whitelist']]
|
||||||
|
|
||||||
message = f"Using whitelist `{whitelist['method']}` with {whitelist['length']} pairs\n"
|
message = f"Using whitelist `{whitelist['method']}` with {whitelist['length']} pairs\n"
|
||||||
message += f"`{', '.join(whitelist['whitelist'])}`"
|
message += f"`{', '.join(whitelist['whitelist'])}`"
|
||||||
|
|
||||||
@ -1487,7 +1493,8 @@ class Telegram(RPCHandler):
|
|||||||
"*/fx <trade_id>|all:* `Alias to /forceexit`\n"
|
"*/fx <trade_id>|all:* `Alias to /forceexit`\n"
|
||||||
f"{force_enter_text if self._config.get('force_entry_enable', False) else ''}"
|
f"{force_enter_text if self._config.get('force_entry_enable', False) else ''}"
|
||||||
"*/delete <trade_id>:* `Instantly delete the given trade in the database`\n"
|
"*/delete <trade_id>:* `Instantly delete the given trade in the database`\n"
|
||||||
"*/whitelist:* `Show current whitelist` \n"
|
"*/whitelist [sorted] [baseonly]:* `Show current whitelist. Optionally in "
|
||||||
|
"order and/or only displaying the base currency of each pairing.`\n"
|
||||||
"*/blacklist [pair]:* `Show current blacklist, or adds one or more pairs "
|
"*/blacklist [pair]:* `Show current blacklist, or adds one or more pairs "
|
||||||
"to the blacklist.` \n"
|
"to the blacklist.` \n"
|
||||||
"*/blacklist_delete [pairs]| /bl_delete [pairs]:* "
|
"*/blacklist_delete [pairs]| /bl_delete [pairs]:* "
|
||||||
@ -1524,7 +1531,7 @@ class Telegram(RPCHandler):
|
|||||||
"*/weekly <n>:* `Shows statistics per week, over the last n weeks`\n"
|
"*/weekly <n>:* `Shows statistics per week, over the last n weeks`\n"
|
||||||
"*/monthly <n>:* `Shows statistics per month, over the last n months`\n"
|
"*/monthly <n>:* `Shows statistics per month, over the last n months`\n"
|
||||||
"*/stats:* `Shows Wins / losses by Sell reason as well as "
|
"*/stats:* `Shows Wins / losses by Sell reason as well as "
|
||||||
"Avg. holding durationsfor buys and sells.`\n"
|
"Avg. holding durations for buys and sells.`\n"
|
||||||
"*/help:* `This help message`\n"
|
"*/help:* `This help message`\n"
|
||||||
"*/version:* `Show version`"
|
"*/version:* `Show version`"
|
||||||
)
|
)
|
||||||
|
@ -1458,6 +1458,27 @@ def test_whitelist_static(default_conf, update, mocker) -> None:
|
|||||||
assert ("Using whitelist `['StaticPairList']` with 4 pairs\n"
|
assert ("Using whitelist `['StaticPairList']` with 4 pairs\n"
|
||||||
"`ETH/BTC, LTC/BTC, XRP/BTC, NEO/BTC`" in msg_mock.call_args_list[0][0][0])
|
"`ETH/BTC, LTC/BTC, XRP/BTC, NEO/BTC`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
context = MagicMock()
|
||||||
|
context.args = ['sorted']
|
||||||
|
msg_mock.reset_mock()
|
||||||
|
telegram._whitelist(update=update, context=context)
|
||||||
|
assert ("Using whitelist `['StaticPairList']` with 4 pairs\n"
|
||||||
|
"`ETH/BTC, LTC/BTC, NEO/BTC, XRP/BTC`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
context = MagicMock()
|
||||||
|
context.args = ['baseonly']
|
||||||
|
msg_mock.reset_mock()
|
||||||
|
telegram._whitelist(update=update, context=context)
|
||||||
|
assert ("Using whitelist `['StaticPairList']` with 4 pairs\n"
|
||||||
|
"`ETH, LTC, XRP, NEO`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
context = MagicMock()
|
||||||
|
context.args = ['baseonly', 'sorted']
|
||||||
|
msg_mock.reset_mock()
|
||||||
|
telegram._whitelist(update=update, context=context)
|
||||||
|
assert ("Using whitelist `['StaticPairList']` with 4 pairs\n"
|
||||||
|
"`ETH, LTC, NEO, XRP`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
|
||||||
def test_whitelist_dynamic(default_conf, update, mocker) -> None:
|
def test_whitelist_dynamic(default_conf, update, mocker) -> None:
|
||||||
mocker.patch('freqtrade.exchange.Exchange.exchange_has', MagicMock(return_value=True))
|
mocker.patch('freqtrade.exchange.Exchange.exchange_has', MagicMock(return_value=True))
|
||||||
@ -1471,6 +1492,27 @@ def test_whitelist_dynamic(default_conf, update, mocker) -> None:
|
|||||||
assert ("Using whitelist `['VolumePairList']` with 4 pairs\n"
|
assert ("Using whitelist `['VolumePairList']` with 4 pairs\n"
|
||||||
"`ETH/BTC, LTC/BTC, XRP/BTC, NEO/BTC`" in msg_mock.call_args_list[0][0][0])
|
"`ETH/BTC, LTC/BTC, XRP/BTC, NEO/BTC`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
context = MagicMock()
|
||||||
|
context.args = ['sorted']
|
||||||
|
msg_mock.reset_mock()
|
||||||
|
telegram._whitelist(update=update, context=context)
|
||||||
|
assert ("Using whitelist `['VolumePairList']` with 4 pairs\n"
|
||||||
|
"`ETH/BTC, LTC/BTC, NEO/BTC, XRP/BTC`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
context = MagicMock()
|
||||||
|
context.args = ['baseonly']
|
||||||
|
msg_mock.reset_mock()
|
||||||
|
telegram._whitelist(update=update, context=context)
|
||||||
|
assert ("Using whitelist `['VolumePairList']` with 4 pairs\n"
|
||||||
|
"`ETH, LTC, XRP, NEO`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
context = MagicMock()
|
||||||
|
context.args = ['baseonly', 'sorted']
|
||||||
|
msg_mock.reset_mock()
|
||||||
|
telegram._whitelist(update=update, context=context)
|
||||||
|
assert ("Using whitelist `['VolumePairList']` with 4 pairs\n"
|
||||||
|
"`ETH, LTC, NEO, XRP`" in msg_mock.call_args_list[0][0][0])
|
||||||
|
|
||||||
|
|
||||||
def test_blacklist_static(default_conf, update, mocker) -> None:
|
def test_blacklist_static(default_conf, update, mocker) -> None:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user