Fix stake_currency return by Hyperopt
Hyperopt had BTC hard coded in the result. This commit will display the real stake_currency used. If you used `"stake_currency": "USDT",` in your config file. Before this commit you saw a message like: "2 trades. Avg profit 0.13%. Total profit 0.00002651 BTC (0.0027Σ%). Avg duration 142.5 mins." Now with the commit, we fix the wrong BTC currency: "2 trades. Avg profit 0.13%. Total profit 0.00002651 USDT (0.0027Σ%). Avg duration 142.5 mins."
This commit is contained in:
parent
127cf5d619
commit
fe8ff1b929
@ -479,16 +479,16 @@ class Hyperopt(Backtesting):
|
|||||||
'result': result_explanation,
|
'result': result_explanation,
|
||||||
}
|
}
|
||||||
|
|
||||||
@staticmethod
|
def format_results(self, results: DataFrame) -> str:
|
||||||
def format_results(results: DataFrame) -> str:
|
|
||||||
"""
|
"""
|
||||||
Return the format result in a string
|
Return the format result in a string
|
||||||
"""
|
"""
|
||||||
return ('{:6d} trades. Avg profit {: 5.2f}%. '
|
return ('{:6d} trades. Avg profit {: 5.2f}%. '
|
||||||
'Total profit {: 11.8f} BTC ({:.4f}Σ%). Avg duration {:5.1f} mins.').format(
|
'Total profit {: 11.8f} {} ({:.4f}Σ%). Avg duration {:5.1f} mins.').format(
|
||||||
len(results.index),
|
len(results.index),
|
||||||
results.profit_percent.mean() * 100.0,
|
results.profit_percent.mean() * 100.0,
|
||||||
results.profit_BTC.sum(),
|
results.profit_BTC.sum(),
|
||||||
|
self.config['stake_currency'],
|
||||||
results.profit_percent.sum(),
|
results.profit_percent.sum(),
|
||||||
results.duration.mean(),
|
results.duration.mean(),
|
||||||
)
|
)
|
||||||
|
@ -389,10 +389,12 @@ def test_start_uses_mongotrials(mocker, init_hyperopt, default_conf) -> None:
|
|||||||
# test buy_strategy_generator def populate_buy_trend
|
# test buy_strategy_generator def populate_buy_trend
|
||||||
# test optimizer if 'ro_t1' in params
|
# test optimizer if 'ro_t1' in params
|
||||||
|
|
||||||
def test_format_results():
|
def test_format_results(init_hyperopt):
|
||||||
"""
|
"""
|
||||||
Test Hyperopt.format_results()
|
Test Hyperopt.format_results()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Test with BTC as stake_currency
|
||||||
trades = [
|
trades = [
|
||||||
('ETH/BTC', 2, 2, 123),
|
('ETH/BTC', 2, 2, 123),
|
||||||
('LTC/BTC', 1, 1, 123),
|
('LTC/BTC', 1, 1, 123),
|
||||||
@ -400,8 +402,21 @@ def test_format_results():
|
|||||||
]
|
]
|
||||||
labels = ['currency', 'profit_percent', 'profit_BTC', 'duration']
|
labels = ['currency', 'profit_percent', 'profit_BTC', 'duration']
|
||||||
df = pd.DataFrame.from_records(trades, columns=labels)
|
df = pd.DataFrame.from_records(trades, columns=labels)
|
||||||
x = Hyperopt.format_results(df)
|
|
||||||
assert x.find(' 66.67%')
|
result = _HYPEROPT.format_results(df)
|
||||||
|
assert result.find(' 66.67%')
|
||||||
|
assert result.find('Total profit 1.00000000 BTC')
|
||||||
|
assert result.find('2.0000Σ %')
|
||||||
|
|
||||||
|
# Test with EUR as stake_currency
|
||||||
|
trades = [
|
||||||
|
('ETH/EUR', 2, 2, 123),
|
||||||
|
('LTC/EUR', 1, 1, 123),
|
||||||
|
('XPR/EUR', -1, -2, -246)
|
||||||
|
]
|
||||||
|
df = pd.DataFrame.from_records(trades, columns=labels)
|
||||||
|
result = _HYPEROPT.format_results(df)
|
||||||
|
assert result.find('Total profit 1.00000000 EUR')
|
||||||
|
|
||||||
|
|
||||||
def test_signal_handler(mocker, init_hyperopt):
|
def test_signal_handler(mocker, init_hyperopt):
|
||||||
|
Loading…
Reference in New Issue
Block a user