mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-11-29 08:33:07 +00:00
Fix remaining tests
This commit is contained in:
@@ -71,7 +71,8 @@ def _generate_result_line(result: DataFrame, starting_balance: int, first_column
|
|||||||
'key': first_column,
|
'key': first_column,
|
||||||
'trades': len(result),
|
'trades': len(result),
|
||||||
'profit_mean': result['profit_ratio'].mean() if len(result) > 0 else 0.0,
|
'profit_mean': result['profit_ratio'].mean() if len(result) > 0 else 0.0,
|
||||||
'profit_mean_pct': result['profit_ratio'].mean() * 100.0 if len(result) > 0 else 0.0,
|
'profit_mean_pct': round(result['profit_ratio'].mean() * 100.0, 2
|
||||||
|
) if len(result) > 0 else 0.0,
|
||||||
'profit_sum': profit_sum,
|
'profit_sum': profit_sum,
|
||||||
'profit_sum_pct': round(profit_sum * 100.0, 2),
|
'profit_sum_pct': round(profit_sum * 100.0, 2),
|
||||||
'profit_total_abs': result['profit_abs'].sum(),
|
'profit_total_abs': result['profit_abs'].sum(),
|
||||||
|
|||||||
@@ -15,16 +15,16 @@ from freqtrade.data.btanalysis import (get_latest_backtest_filename, load_backte
|
|||||||
from freqtrade.edge import PairInfo
|
from freqtrade.edge import PairInfo
|
||||||
from freqtrade.enums import ExitType
|
from freqtrade.enums import ExitType
|
||||||
from freqtrade.optimize.optimize_reports import (generate_backtest_stats, generate_daily_stats,
|
from freqtrade.optimize.optimize_reports import (generate_backtest_stats, generate_daily_stats,
|
||||||
generate_edge_table, generate_exit_reason_stats,
|
generate_edge_table, generate_pair_metrics,
|
||||||
generate_pair_metrics,
|
|
||||||
generate_periodic_breakdown_stats,
|
generate_periodic_breakdown_stats,
|
||||||
generate_strategy_comparison,
|
generate_strategy_comparison,
|
||||||
generate_trading_stats, show_sorted_pairlist,
|
generate_trading_stats, show_sorted_pairlist,
|
||||||
store_backtest_analysis_results,
|
store_backtest_analysis_results,
|
||||||
store_backtest_stats, text_table_bt_results,
|
store_backtest_stats, text_table_bt_results,
|
||||||
text_table_exit_reason, text_table_strategy)
|
text_table_strategy)
|
||||||
|
from freqtrade.optimize.optimize_reports.bt_output import text_table_tags
|
||||||
from freqtrade.optimize.optimize_reports.optimize_reports import (_get_resample_from_period,
|
from freqtrade.optimize.optimize_reports.optimize_reports import (_get_resample_from_period,
|
||||||
calc_streak)
|
calc_streak, generate_tag_metrics)
|
||||||
from freqtrade.resolvers.strategy_resolver import StrategyResolver
|
from freqtrade.resolvers.strategy_resolver import StrategyResolver
|
||||||
from freqtrade.util import dt_ts
|
from freqtrade.util import dt_ts
|
||||||
from freqtrade.util.datetime_helpers import dt_from_ts, dt_utc
|
from freqtrade.util.datetime_helpers import dt_from_ts, dt_utc
|
||||||
@@ -392,20 +392,21 @@ def test_text_table_exit_reason():
|
|||||||
)
|
)
|
||||||
|
|
||||||
result_str = (
|
result_str = (
|
||||||
'| Exit Reason | Exits | Win Draws Loss Win% | Avg Profit % |'
|
'| Exit Reason | Exits | Avg Profit % | Tot Profit BTC | Tot Profit % |'
|
||||||
' Tot Profit BTC | Tot Profit % |\n'
|
' Avg Duration | Win Draw Loss Win% |\n'
|
||||||
'|---------------+---------+--------------------------+----------------+'
|
'|---------------+---------+----------------+------------------+----------------+'
|
||||||
'------------------+----------------|\n'
|
'----------------+-------------------------|\n'
|
||||||
'| roi | 2 | 2 0 0 100 | 15 |'
|
'| roi | 2 | 15.00 | 0.60000000 | 2.73 |'
|
||||||
' 0.6 | 15 |\n'
|
' 0:20:00 | 2 0 0 100 |\n'
|
||||||
'| stop_loss | 1 | 0 0 1 0 | -10 |'
|
'| stop_loss | 1 | -10.00 | -0.20000000 | -0.91 |'
|
||||||
' -0.2 | -5 |'
|
' 0:10:00 | 0 0 1 0 |\n'
|
||||||
|
'| TOTAL | 3 | 6.67 | 0.40000000 | 1.82 |'
|
||||||
|
' 0:17:00 | 2 0 1 66.7 |'
|
||||||
)
|
)
|
||||||
|
|
||||||
exit_reason_stats = generate_exit_reason_stats(max_open_trades=2,
|
exit_reason_stats = generate_tag_metrics('exit_reason', starting_balance=22,
|
||||||
results=results)
|
results=results, skip_nan=False)
|
||||||
assert text_table_exit_reason(exit_reason_stats=exit_reason_stats,
|
assert text_table_tags('exit_tag', exit_reason_stats, 'BTC') == result_str
|
||||||
stake_currency='BTC') == result_str
|
|
||||||
|
|
||||||
|
|
||||||
def test_generate_sell_reason_stats():
|
def test_generate_sell_reason_stats():
|
||||||
@@ -423,10 +424,10 @@ def test_generate_sell_reason_stats():
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
exit_reason_stats = generate_exit_reason_stats(max_open_trades=2,
|
exit_reason_stats = generate_tag_metrics('exit_reason', starting_balance=22,
|
||||||
results=results)
|
results=results, skip_nan=False)
|
||||||
roi_result = exit_reason_stats[0]
|
roi_result = exit_reason_stats[0]
|
||||||
assert roi_result['exit_reason'] == 'roi'
|
assert roi_result['key'] == 'roi'
|
||||||
assert roi_result['trades'] == 2
|
assert roi_result['trades'] == 2
|
||||||
assert pytest.approx(roi_result['profit_mean']) == 0.15
|
assert pytest.approx(roi_result['profit_mean']) == 0.15
|
||||||
assert roi_result['profit_mean_pct'] == round(roi_result['profit_mean'] * 100, 2)
|
assert roi_result['profit_mean_pct'] == round(roi_result['profit_mean'] * 100, 2)
|
||||||
@@ -435,7 +436,7 @@ def test_generate_sell_reason_stats():
|
|||||||
|
|
||||||
stop_result = exit_reason_stats[1]
|
stop_result = exit_reason_stats[1]
|
||||||
|
|
||||||
assert stop_result['exit_reason'] == 'stop_loss'
|
assert stop_result['key'] == 'stop_loss'
|
||||||
assert stop_result['trades'] == 1
|
assert stop_result['trades'] == 1
|
||||||
assert pytest.approx(stop_result['profit_mean']) == -0.1
|
assert pytest.approx(stop_result['profit_mean']) == -0.1
|
||||||
assert stop_result['profit_mean_pct'] == round(stop_result['profit_mean'] * 100, 2)
|
assert stop_result['profit_mean_pct'] == round(stop_result['profit_mean'] * 100, 2)
|
||||||
|
|||||||
Reference in New Issue
Block a user