Commit Graph

234 Commits

Author SHA1 Message Date
Matthias f090dcc597 Merge branch 'develop' into feat/short 2022-01-22 17:56:01 +01:00
Rokas Kupstys 5fffc5033a Rework backtesting --no-cahche to --cache=[none, day, week, month].
Fix an issue where config modification during runtime would prevent use of cached results.
2022-01-19 11:44:35 +02:00
Rokas Kupstys 16861db653 Implement previous backtest result reuse when config and strategy did not change. 2022-01-15 17:30:40 +02:00
Matthias dad080f56f Merge branch 'develop' into feat/short 2022-01-08 10:45:15 +01:00
Matthias 04976658da Fix crash when using backtesting-show on a old backtestresult 2022-01-07 17:34:47 +01:00
Matthias 46809f08fe Merge branch 'develop' into feat/short 2022-01-07 10:13:16 +01:00
Matthias e540959c27 Remove btdata from generate_strategy_stats 2022-01-07 09:27:07 +01:00
Matthias 1203d08d1e generate_pair_metrics does not need processed dict 2022-01-07 09:27:07 +01:00
Matthias 2a2392fd73 Update parameter name in docstring 2022-01-06 09:15:30 +01:00
Matthias 6abd6bceb9 Avoid recalculating statistics for comparison line 2022-01-05 20:16:48 +01:00
Matthias 8373a4e713 Small Adjustments to improve compatibility 2022-01-04 19:17:08 +01:00
Matthias 4d9b4ddc28 Update hyperopt-tools to use account drawdown 2022-01-04 17:43:39 +01:00
Matthias 7a2b50ce8b Update drawdown calculation to account drawdown 2022-01-04 17:07:31 +01:00
Matthias 67f3570bf3 Merge branch 'develop' into feat/short 2021-12-01 07:21:36 +01:00
Matthias 6ca6f62509 Remove duplicate code in optimize_reports 2021-11-27 09:39:10 +01:00
Matthias c26c0b6822 Merge branch 'feat/short' into short_buy_tag_compat 2021-11-21 19:31:59 +01:00
Matthias 192ac88314 Update optimize-reports to enter_tag wording 2021-11-21 10:20:09 +01:00
Matthias 5a8824171c Add short/long metrics to backtest result 2021-11-18 20:42:43 +01:00
Matthias 0a50017c84 Add long/short support to backtesting 2021-11-18 20:34:59 +01:00
Matthias e0fd880c11 Improve some more pct formattings 2021-11-11 16:12:23 +01:00
Matthias 4eb9038358 Some more fixes to % formatting 2021-11-11 15:06:16 +01:00
raphael ae2343db93
Update optimize_reports
Update show_backtest_reults() to preserve backwards compatibility by fixing KeyError: 'results_per_buy_tag' for older hyperopt result files.
2021-11-04 10:25:13 -04:00
Matthias 431b96de98 Merge branch 'develop' into pr/theluxaz/5710 2021-11-03 19:43:36 +01:00
Matthias 20904f1ca4 Add tests for new command 2021-10-30 19:43:42 +02:00
Matthias 72ecb45d86 Add test for backtest_show logic 2021-10-30 16:53:48 +02:00
Matthias f472709438 Add option to show sorted pairlist
Allows easy copy/pasting of the pairlist to a configuration
2021-10-30 10:50:40 +02:00
Matthias 6f1e719216 Merge branch 'develop' into pr/cryptomeisternox/5150 2021-10-30 10:26:05 +02:00
Matthias 22dd2ca003 Fix mypy type errors 2021-10-24 15:18:29 +02:00
Matthias 78724e304e Merge branch 'develop' into pr/theluxaz/5710 2021-10-21 17:46:39 +02:00
theluxaz 0e085298e9 Fixed test failures. 2021-10-21 17:25:38 +03:00
Matthias e458c9867a Styling fixes 2021-10-21 07:45:15 +02:00
Matthias 7b5346b984 Add test for breakdown-stats 2021-10-21 07:11:39 +02:00
Matthias fa028c2134 Support day/week/month breakdowns 2021-10-21 06:58:40 +02:00
Matthias 7197f4ce77 Don't show daily % profit (it's wrong) 2021-10-20 20:01:31 +02:00
Matthias de5497c766 backtest_days cannot be below 1 2021-10-20 19:39:37 +02:00
theluxaz 1fdc4425dd Changed exit_tag to be represented as sell_reason 2021-10-20 01:26:15 +03:00
theluxaz 69a59cdf37 Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions 2021-10-18 23:56:41 +03:00
Matthias 7d8cd736b8 Support days-breakdown also for hyperopt results 2021-10-17 16:49:39 +02:00
Matthias 47bba331c1 Merge branch 'develop' into pr/rextea/4606 2021-10-17 16:29:31 +02:00
theluxaz 0bb7ea10ab Fixed minor header for backtesting 2021-10-14 01:34:30 +03:00
theluxaz ed39b8dab0 fixed profit total calculation 2021-10-14 01:18:16 +03:00
theluxaz b151cf032b Merge branch 'develop' of https://github.com/theluxaz/freqtrade into main
# Conflicts:
#	freqtrade/freqtradebot.py
#	freqtrade/optimize/backtesting.py
2021-10-13 02:01:26 +03:00
theluxaz 80b71790bc Added some bigfixes for sell_tag 2021-10-13 01:22:53 +03:00
theluxaz b898f86364 Added sell_tag and buy/sell telegram performance functions 2021-10-13 00:02:28 +03:00
Matthias 8405ccc15e Seperate detail data loading from regular backest-data loading 2021-08-14 16:33:01 +02:00
Sam Germain b9356a5564 Autopep8 formatting 2021-08-06 16:35:39 -06:00
Matthias 6129c5ca9e Fix deprecation warnings from pandas 1.3.0
closes #5251
2021-07-09 20:46:38 +02:00
octaviusgus d1104bd434 fix daily profit data and daily profit curve example 2021-07-06 22:47:39 +02:00
octaviusgus 4aa2ae37bd
add daily_profit_list
added extra key daily_profit in return of optimize_reports.generate_daily_stats
this allows us to analyze and plot a daily profit chart / equity line using snippet below inside jupyter notebook

```
# Plotting equity line (starting with 0 on day 1 and adding daily profit for each backtested day)

from freqtrade.configuration import Configuration
from freqtrade.data.btanalysis import load_backtest_data, load_backtest_stats
import plotly.express as px
import pandas as pd

# strategy = 'Strat'
# config = Configuration.from_files(["user_data/config.json"])
# backtest_dir = config["user_data_dir"] / "backtest_results"

stats = load_backtest_stats(backtest_dir)
strategy_stats = stats['strategy'][strategy]

equity = 0
equity_daily = []
for dp in strategy_stats['daily_profit']:
    equity_daily.append(equity)
    equity += float(dp)

dates = pd.date_range(strategy_stats['backtest_start'], strategy_stats['backtest_end'])

df = pd.DataFrame({'dates':dates,'equity_daily':equity_daily})

fig = px.line(df, x="dates", y="equity_daily")
fig.show()

```
2021-07-04 14:38:17 +02:00
Matthias 77293b1f1e Remove Zero duration Trades
after the recent backtesting fixes, this metric no longer makes sense, as it can't really be 0 any longer.
2021-07-04 10:50:10 +02:00
barbarius a8117c6e0b Refactored to use results variable from for loop 2021-06-29 11:24:49 +02:00
barbarius a0f28f4a15 Added max open trades to strategy summary first line 2021-06-28 17:05:12 +02:00
barbarius 2e5b719de8 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:54:54 +02:00
barbarius c99ae3b419 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:20:34 +02:00
Matthias 1067a9f356 Move strategy-override signals to top-level of the config
closes #2867
2021-06-26 16:06:13 +02:00
aayush-jain18 d294ef10d7 unexpected docstring params 2021-06-25 23:56:16 +05:30
aayush-jain18 a46f60bd94 spell corrections 2021-06-25 22:10:04 +05:30
Cryptomeister Nox 85979c3176 * Adding command for Filtering
* Read latest Backtest file and print trades
2021-06-17 20:35:02 +02:00
Matthias 1c9def2fdb
Update freqtrade/optimize/optimize_reports.py 2021-06-16 20:17:44 +01:00
barbarius 1bb04bb0c2 Moved daily avg trade row next to total trades on backtest results 2021-06-16 11:40:55 +02:00
Matthias f920c26802 fix Hyperopt-list avg-time filters
These should use a numeric field (which currently isn't available).

closes #5061
2021-05-31 20:01:40 +02:00
Matthias 971d5b2ecc
Merge pull request #5002 from freqtrade/track_rejected_trades
Track rejected trades
2021-05-23 14:56:50 +01:00
Matthias 3f956441fc Properly format % of zero_duration_trades 2021-05-23 15:53:54 +02:00
Matthias a39860e0de Add tests for rejected signals 2021-05-23 14:15:02 +02:00
Matthias 7f125315b0 Track Rejected Trades
closes #3423
2021-05-23 09:42:05 +02:00
Rokas Kupstys db985cbc2e Fix hyperopt-show failing to display old results with missing new fields. 2021-05-23 09:45:26 +03:00
Rokas Kupstys 25cc4eae96 Fix tests that broke after table formatting changed. 2021-05-22 15:25:37 +02:00
Rokas Kupstys 981b2df7ca Include win:loss ratio in results tables. 2021-05-21 12:18:08 +03:00
Rokas Kupstys debd98ad9a Make results table more compact by merging win/draw/loss columns and drawdown abs/% into single columns. 2021-05-21 11:36:23 +03:00
Rokas Kupstys e1dc1357ce Add drawdown column to strategy summary table. 2021-05-21 11:36:23 +03:00
Rokas Kupstys edcfa94093 Include zero duration trades in backtesting report. 2021-05-21 11:36:23 +03:00
Matthias 7398ea88e0 Change optimize_reports to convert dates to string earlier 2021-05-11 20:37:49 +02:00
Matthias 4f529fe424 Don't use Arrow to get min/max backtest dates 2021-05-06 19:43:14 +02:00
Matthias 420e75af65 Extract show_backtest_result for one strategy 2021-05-02 09:46:27 +02:00
Matthias f2e182002d Simplify calling backtesting by returning the proper result 2021-05-02 09:46:27 +02:00
Matthias 545cba7fd8 Refactor optimize_report
we should not calculate non-daily statistics in the daily stats method
2021-05-02 09:46:27 +02:00
Matthias 9994fce577 Extract generation of report for one strategy to it's own method 2021-05-02 09:46:27 +02:00
Matthias b125c975c7 Rename strategy_comparison method 2021-05-02 09:46:27 +02:00
rextea 9e56f6d4eb Sort pair lists by total profit 2021-04-04 01:19:38 +03:00
rextea 76a02ff70a fix indentations 2021-03-26 18:49:17 +03:00
rextea 2bed41da5d Add days breakdown table to backtesting 2021-03-26 18:40:50 +03:00
Matthias bc05d03126 Make best / worst day absolute 2021-03-05 19:21:09 +01:00
Matthias 078b77d41b Fix crash when using unlimited stake and no trades are made 2021-03-02 16:12:22 +01:00
Joe Schr 55a315be14 fix: avg_stake_amount should not be `NaN` if df is empty 2021-03-02 13:38:55 +01:00
Matthias 9cb37409fd Explicitly convert starting-balance to float 2021-02-28 09:56:29 +01:00
Matthias 394a6bbf2a Fix some type errors 2021-02-27 09:33:00 +01:00
Matthias f04f07299c Improve backtesting metrics 2021-02-27 09:33:00 +01:00
Matthias f367375e5b ABS drawdown should show wallet high and low values 2021-02-27 09:33:00 +01:00
Matthias 0d2f877e77 Use absolute drawdown calc 2021-02-27 09:32:59 +01:00
Matthias 72f21fc5ec Add trade-volume metric 2021-02-27 09:32:59 +01:00
Matthias 35e6a9ab3a Backtest-reports should calculate total gains based on starting capital 2021-02-27 09:32:59 +01:00
Matthias 712d503e6c Use sell-reason value in backtesting, not the enum object 2021-02-27 09:32:59 +01:00
Florian Reitmeir 5c263c7ffd add backtesting results abs profit min/abs profit max, to get a better view if a strategy has a enough money to succeed 2021-02-14 19:41:12 +01:00
Matthias e7acee7904 Improve coin value output by rounding coin specific 2021-02-13 16:05:56 +01:00
Matthias 072abde9b7 Introduce round_coin_value to simplify coin rounding 2021-02-13 16:05:35 +01:00
Matthias 62e43539c9 Limit max_open_trades to maximum available pairs
closes #4008
2021-01-24 19:59:54 +01:00
Matthias 8ee264bc59 Don't use profit_percent for backtesting results anymore 2021-01-24 08:58:41 +01:00
Matthias 48977493bb Backtesting does not need to convert to BacktestResult object 2021-01-24 08:58:41 +01:00
Matthias 7c80eeea95 Add use_custom_stoploss to optimize_report 2021-01-19 22:51:12 +01:00
Matthias 0b65fe6afe Capture backtest start / end time 2021-01-14 19:09:25 +01:00