Commit Graph

216 Commits

Author SHA1 Message Date
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
Matthias
63a579dbab Add sell_profit_offset parameter
Allows defining positive offsets before enabling the sell signal
2021-01-11 19:30:25 +01:00
Matthias
5849d07497 Export locks as part of backtesting 2020-12-07 11:39:01 +01:00
Matthias
e40d97e05e Small formatting improvements 2020-11-28 17:52:29 +01:00
Matthias
5d3f59df90 Add best / worst trade 2020-11-28 17:45:56 +01:00
Matthias
a00f852cf9 Add best / worst pair to summary statistics 2020-11-28 17:37:10 +01:00
Matthias
a47d8dbe56 Small refactor, avoiding duplicate calculation of profits 2020-11-28 11:35:29 +01:00
Matthias
730c9ce471 Add Max_open_trades to summary metrics 2020-11-24 06:57:26 +01:00
Matthias
ecddaa663b Convert timestamp to int_timestamp for all arrow occurances 2020-10-13 06:24:01 +02:00
Matthias
253b7b763e Apply isort to freqtrade codebase 2020-09-28 19:40:46 +02:00
Matthias
ff3e2641ae generate_backtest_stats must take config options from the strategy
config

as a strategy can override certain options.
2020-09-25 20:47:37 +02:00
Matthias
378f03a5b1 Add relevant parameters to stored backtest result 2020-09-25 06:37:40 +02:00
Matthias
ec01f20bf8 Add ratio to sell reason stats 2020-09-16 20:27:28 +02:00
Matthias
d8a6410fd1 Fix small bug when using max-open-trades -1 in backtesting 2020-08-23 09:00:57 +02:00
Matthias
4f1179d85c Test for empty case 2020-08-20 20:11:58 +02:00
Matthias
f5a9001dc0 Handle backtest results without any trades 2020-08-20 19:51:36 +02:00
Matthias
9982ad2f36 Add profit to backtest summary output 2020-08-18 16:59:24 +02:00
Matthias
668d167adc Add docstring to store_backtest_stats 2020-08-18 16:15:24 +02:00
Matthias
4eb17b4daf Remove unneeded function 2020-08-18 15:20:37 +02:00