Commit Graph

2017 Commits

Author SHA1 Message Date
Matthias
47fca02ba0 Improve docstring 2023-07-25 07:06:42 +02:00
Matthias
327b055468 Add consecutive wins/losses to backtest output 2023-07-24 07:22:33 +02:00
Matthias
f26b49ee06 Ensure return value is an int, not a np.int 2023-07-24 07:09:19 +02:00
Matthias
0f046ceaf2 Implement calc_consecutive_losses 2023-07-24 06:36:24 +02:00
hippocritical
5b8800ee18 didnt intend to change the timerange itself, but the logger-output of the timerange 2023-07-23 20:20:15 +02:00
hippocritical
5bb74e448e Merge remote-tracking branch 'origin/develop' into develop 2023-07-23 20:08:27 +02:00
hippocritical
e4b488cb84 added stake_amount to a fixed 10k value.
In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount.

reason: some strategies demand a custom_stake_amount of 1$ demanding a very large wallet-size (which already was set previously)
Others start with 100% of a slot size and subdivide the base-orders and safety-orders down to finish at 100% of a slot-size and use unlimited stake_amount.

Edited docs to reflect that change.
2023-07-23 20:05:29 +02:00
hippocritical
70fa175f57
Merge branch 'freqtrade:develop' into develop 2023-07-23 20:01:59 +02:00
Matthias
6ddbc8c00d Move generate_wins_draw_losses to bt_output (it's an output function, not a calculation) 2023-07-23 19:57:47 +02:00
hippocritical
ad428aa9b0 added stake_amount to a fixed 10k value.
In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount

reason: some strategies demand a custom_stake_amount of 1$ demanding a very large wallet-size (which already was set previously)
Others start with 100% of a slot size and subdivide the base-orders and safety-orders down to finish at 100% of a slot-size and use unlimited stake_amount.

Edited docs to reflect that change too
2023-07-23 19:50:12 +02:00
hippocritical
1ab357dc32 added mentioning which pair + timerange + idx is biased for visibility and debugging purposes 2023-07-23 15:29:25 +02:00
hippocritical
a33be8a349 added dummy-varholders in case a not-last-trade is force-exit and else the indexes would shift ruining the analysis and making debugging easier (since the same ID will always be the same ID again) 2023-07-23 13:48:54 +02:00
hippocritical
a5f5293bc8 added logger-output when something is skipped or aborted 2023-07-23 11:23:02 +02:00
Matthias
955a63725a Improve resiliance when showing older backtest results 2023-07-22 19:43:20 +02:00
Stefano Ariestasia
40d7d05e4e merge 2 expectancy functions 2023-07-22 17:29:43 +09:00
Stefano Ariestasia
4812bcc28b flake8 fiz 2023-07-22 09:13:24 +09:00
Stefano Ariestasia
c048e7229a modify expectancy and expectancy ratio 2023-07-22 08:36:51 +09:00
Matthias
9bfe96d4d6 Simplify advise calls by extracting that part into a method. 2023-07-21 20:27:52 +02:00
Matthias
91bf8abf38 Add comment to clarify usage of trim_dataframes 2023-07-21 20:22:44 +02:00
Matthias
9c1fea0e7b Add winrate to several bt metrics 2023-07-20 20:51:38 +02:00
Matthias
c64c10e76f Use Fstrings in hyperopt-tools 2023-07-17 18:20:26 +02:00
Matthias
626ea6b119 Add backtesting support for order.stake_amount 2023-07-15 14:55:22 +02:00
Matthias
17296fdf9c Use proper cost for order
closes #8906
2023-07-15 09:02:17 +02:00
Matthias
b593205ad9 No need to use .get() for properties with default values 2023-07-12 18:29:12 +02:00
Matthias
cca8c4e5b8 Update default dataformat to feather 2023-07-12 18:23:30 +02:00
Matthias
accc1b509b Simplify class setups without inheritance 2023-06-29 12:16:10 +00:00
Matthias
1717f86702 Extract edge output to proper module 2023-06-25 17:45:01 +02:00
Matthias
72504e62ad Extract btstorage methods 2023-06-25 17:42:58 +02:00
Matthias
65e8359908 Improve naming of new file 2023-06-25 17:11:13 +02:00
Matthias
794bca1379 Split optimize report generation from visualization 2023-06-25 17:09:57 +02:00
Matthias
5e084ad2e5 convert optimize_reports to a package 2023-06-25 17:08:41 +02:00
Matthias
bf872e8ed4 Simplify comparison depth 2023-06-17 14:25:46 +02:00
Matthias
6bb75f0dd4 Simplify import if only one element is used 2023-06-17 10:12:36 +02:00
Matthias
34e7e3efea Simplify imports 2023-06-17 08:40:09 +02:00
Matthias
964bf76469 Invert parameters for initialize_single_lookahead_analysis
otherwise their order is reversed before calling LookaheadAnalysis for no good reason
2023-06-15 20:42:26 +02:00
Matthias
ad74e65673 Simplify configuration setup 2023-06-15 20:26:45 +02:00
hippocritical
6656740f21 Moved config overrides to its' own function
Added config overrides to dry_run_wallet and max_open_trades to avoid false positives.
2023-06-09 22:11:30 +02:00
Matthias
16b3363970 Fix type problem 2023-06-09 07:16:06 +02:00
Matthias
b89390c06b Reduce log verbosity during bias tester runs 2023-06-09 07:15:36 +02:00
Matthias
05ea36f03b Fix performance when running tons of backtests 2023-06-09 06:45:34 +02:00
Matthias
6b736c49d4 Dont persist Backtesting to avoid memory leak 2023-06-08 20:13:28 +02:00
hippocritical
6b3b5f201d export_to_csv: Added forced conversion of float64 to int to remove the .0 values once and for all ... 2023-05-28 22:13:29 +02:00
hippocritical
eec7837167 - modified help-string for the cli-option lookahead_analysis_exportfilename
- moved doc from utils.md to lookahead-analysis.md and modified it (unfinished)
- added a check to automatically edit the config['backtest_cache'] to be 'none'
- adjusted test_lookahead_helper_export_to_csv to catch the new catching of errors
- adjusted test_lookahead_helper_text_table_lookahead_analysis_instances to catch the new catching of errors
- changed lookahead_analysis.start result-reporting to show that not enough trades were caught including x of y
2023-05-28 20:52:58 +02:00
hippocritical
9bb25be880 modified help-string for the cli-option lookahead_analysis_exportfilename
moved doc from utils.md to lookahead-analysis.md and modified it (unfinished)
added a check to automatically edit the config['backtest_cache'] to be 'none'
2023-05-27 22:31:47 +02:00
hippocritical
eb31b574c1 added returns to text_table_lookahead_analysis_instances
filled in test_lookahead_helper_text_table_lookahead_analysis_instances
2023-05-26 12:55:54 +02:00
Matthias
104fa9e32d Use logger, not the logging module 2023-05-20 19:58:14 +02:00
Matthias
9869a21951 Move strategy to it's own directory to avoid having other 2023-05-20 19:51:54 +02:00
Matthias
e183707979 Further test lookahead_helpers 2023-05-20 19:51:54 +02:00
Matthias
ceddcd9242 Move most of the logic to lookahead_analysis helper 2023-05-20 19:51:54 +02:00
Matthias
1c4a7c7a05 Split Lookahead helper to separate file 2023-05-20 19:51:54 +02:00
Matthias
2e675efa13 Initial fix - test 2023-05-20 11:15:30 +02:00
Matthias
2e79aaae00 Remove usage of args.
It's clumsy to use and prevents specifying settings in the configuration.
2023-05-20 11:02:13 +02:00
hippocritical
36f14249d4
Merge branch 'freqtrade:develop' into develop 2023-05-13 22:41:02 +02:00
Matthias
1552d81f45 Simplify load_exchange interface 2023-05-13 11:03:26 +02:00
hippocritical
91ce1cb2ae removed overwrite_existing_exportfilename_content (won't use it myself, wouldn't make sense for others to not overwrite something they re-calculated)
switched from args to config (args still work)
renamed exportfilename to lookahead_analysis_exportfilename so if users decide to put something into it then it won't compete with other configurations
2023-05-10 22:41:27 +02:00
hippocritical
9aac367534 Merge remote-tracking branch 'origin/develop' into develop 2023-05-08 22:58:30 +02:00
hippocritical
b252bdd3c7 made purging of config.freqai.identifier variable 2023-05-08 22:35:13 +02:00
hippocritical
2306c74dc1 adjusted code to matthias' specifications
did not change the code so that it only loads data once yet.
2023-05-06 21:56:11 +02:00
Matthias
023c155a25 Extract signals generation from backtesting class 2023-04-28 16:14:16 +02:00
Matthias
6e395ad7c9 Refactor methods in backtesting 2023-04-28 16:09:09 +02:00
Matthias
8dd8c24595 Merge branch 'develop' into pr/froggleston/7861 2023-04-28 14:59:03 +02:00
Matthias
e99af87b6d store periodic breakdown in backtest results
This will enable the webserver to use this data.
2023-04-24 10:59:30 +02:00
Matthias
7ff35fea3c Default weekly report to monday
closes #8502
2023-04-17 20:20:38 +02:00
Matthias
cf770d496b Improve visual display of progressbar 2023-04-09 18:25:50 +02:00
Matthias
bfd9e35e34 Replace hyperopt progressbar with rich progressbar 2023-04-09 18:17:22 +02:00
Matthias
df51111c33 Always show strategy summary 2023-04-09 08:53:36 +02:00
Matthias
dd8900a1c6 Improve ordering of backtest output 2023-04-09 08:53:36 +02:00
Matthias
f03a99918a Ensure hyper param file can be loaded
closes #8452
2023-04-04 20:04:28 +02:00
Matthias
80a27bc0db Fix random uvicorn error 2023-03-26 18:18:52 +02:00
Matthias
1c9abd9e35 Properly respect can_short flag in backtesting
closes  #8387
2023-03-26 17:27:52 +02:00
Matthias
c14ac8a205 Properly handle non-replaced first entry orders 2023-03-26 16:46:41 +02:00
Matthias
b09fb5826f don't use "can_short" in backtesting to determine application of leverage 2023-03-26 16:21:51 +02:00
Matthias
73b59df77b Merge branch 'develop' into pr/paranoidandy/8272 2023-03-26 11:22:24 +02:00
Matthias
86aef7cf9d Add current_time to bot_loop_start callbak 2023-03-26 11:22:19 +02:00
Matthias
b317524ed7 protect adjust_trade_position from crashing in case of unsafe code 2023-03-24 20:27:45 +01:00
Matthias
ce3efa8f00 Remove pointless asserts 2023-03-19 18:05:08 +01:00
Matthias
c92f28bf6f ruff: Activate UP ruleset 2023-03-19 17:57:56 +01:00
Matthias
222ecdecd2 Improve code quality 2023-03-19 17:50:08 +01:00
Matthias
f455e3327c Simplify method further 2023-03-19 15:01:37 +01:00
Matthias
cd9c2c4c23 Merge branch 'develop' into pr/froggleston/7861 2023-03-19 15:00:20 +01:00
Matthias
af6fc886f6 Small refactor for new methods 2023-03-19 14:56:41 +01:00
Matthias
8f29312c9e Minimum re-entry stake should not include stoploss 2023-03-14 08:14:01 +01:00
Andy Lawless
a3dee9350f Move bot_loop_start call to run on every candle 2023-03-03 20:37:05 +00:00
Matthias
6e9ff5fdd8
Merge pull request #8202 from freqtrade/remove-populate-any-indicators
remove populate_any_indicators
2023-03-03 06:33:25 +01:00
Matthias
b5f55c9b14 Improve type safety in backtesting 2023-03-01 20:32:32 +01:00
Matthias
f6b3998bbd Fix backtesting type incompatibilities 2023-03-01 20:32:32 +01:00
Matthias
d014e4590e use Path.open() instead of open 2023-02-25 17:15:54 +01:00
Matthias
34c42be74f Fix minor stylistic errors 2023-02-23 20:06:10 +01:00
Matthias
0f878daa98 Remove some too generic noqa statements 2023-02-22 19:56:32 +01:00
robcaulk
fd4e27d889 remove populate_any_indicators 2023-02-21 14:22:40 +01:00
Matthias
5073c780d8 .agg would like strings, not the sum function. 2023-01-31 11:22:04 +00:00
Matthias
f57394c1ce Merge branch 'develop' into bybit 2023-01-30 07:23:41 +01:00
Matthias
25dfbb5a08 Compare stake amout >= in backtesting
closes #8067
2023-01-29 12:47:16 +01:00
Matthias
9286cbed86 add partial Docstring to backtesting enter_trade 2023-01-29 11:02:31 +01:00
Matthias
34e7433844 Add leverage to dry-run liquidation price calculation 2023-01-24 07:21:56 +01:00
Matthias
8108a48f39 Follow PEP 484 - no implicit optionals 2023-01-21 20:01:56 +01:00
Matthias
bb355cfac5 improve naming of backtest function 2023-01-21 19:46:27 +01:00
Matthias
80bb120026 Simplify backtesting by removing now unnecessary private function 2023-01-21 18:01:01 +01:00
Matthias
89eb1b0084 funding-fees need to be recalculated for detailed timeframes, too.
closes #7978
2023-01-21 17:47:37 +01:00
Matthias
c8ecedf6d5 Clarify a variable via typehint 2023-01-17 20:05:18 +01:00
Antonio Della Fortuna
5e10bb2cca Merge branch 'develop' of https://github.com/freqtrade/freqtrade into max-open-trades 2023-01-16 20:19:46 +01:00
Antonio Della Fortuna
ab12aace5f changed trades_space to max_open_trades_space 2023-01-15 11:50:40 +01:00
Antonio Della Fortuna
b0f1d914c8 Changed max_open_trades type to int or inf 2023-01-15 11:44:10 +01:00
Matthias
cbcee02ded call data migration from backtesting 2023-01-14 20:07:33 +01:00
Antonio Della Fortuna
534aa8f7ff Merge branch 'develop' of https://github.com/freqtrade/freqtrade into max-open-trades
# Conflicts:
#	freqtrade/optimize/backtesting.py
2023-01-11 18:55:57 +01:00
Matthias
811f13e09a
Merge pull request #7981 from freqtrade/backtest_detail_speed
Improve backtest detail speed
2023-01-09 18:21:54 +01:00
Antonio Della Fortuna
10d8b016e4 Changed max_open_trades default range for optimization 2023-01-08 12:48:36 +01:00
Antonio Della Fortuna
24ace646c3 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into max-open-trades 2023-01-08 12:40:01 +01:00
Antonio Della Fortuna
464cb4761c Fixed max_open_trades update from hyperopt
Fixed max_open_trades update from hyperopt + removed max_open_trades as a param to backtesting + refactoring
2023-01-08 12:39:39 +01:00
Antonio Della Fortuna
8c3ac56bc5 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into max-open-trades 2023-01-07 11:11:59 +01:00
root
7bf531c8b8 isort fix 2023-01-07 09:50:05 +09:00
Stefano Ariestasia
c1042996db flake8 fix 2023-01-07 09:46:46 +09:00
Stefano Ariestasia
6198b21001 update calmar loss 2023-01-07 09:30:16 +09:00
Stefano Ariestasia
d3b1aa7f01 update sortino calc 2023-01-07 09:19:06 +09:00
Stefano Ariestasia
157bf962f7 add missing imports 2023-01-07 09:14:56 +09:00
Stefano Ariestasia
86ba7dae92 change sharpe hyperopt loss 2023-01-07 08:56:40 +09:00
Matthias
92800930e9 Improve backtest detail speed 2023-01-05 10:14:58 +01:00
Matthias
8e5b4750d6 Continue in "regular backtest" case (no detail-data available).
link to #7967
2023-01-04 18:08:45 +01:00
Antonio Della Fortuna
f2fa476dc6 max_open_trades should be an integer
Max open trades will be always an integer in the strategy (-1 for infinity), but in the config -1 will be parsed as infinity
2023-01-04 16:09:27 +01:00
Antonio Della Fortuna
ce661cb58b Merge branch 'develop' of https://github.com/freqtrade/freqtrade into max-open-trades 2023-01-04 10:35:09 +01:00
Antonio Della Fortuna
5fd85368a9 Added support for max_open_trades hyperopting 2023-01-04 10:34:44 +01:00
Matthias
02eb00fa33 Merge branch 'develop' into pr/stash86/7810 2022-12-28 14:04:54 +01:00
Stefano Ariestasia
6353f3ac1a fix formulas and implement new metrics 2022-12-26 08:19:51 +09:00
Matthias
7a5439321c Show new metrics in backtesting 2022-12-25 21:29:37 +01:00
Matthias
ad0d7c9a9e Don't allow DCA trades to go beyond max order size
closes  #7924
2022-12-23 16:09:35 +01:00
froggleston
f5359985e8 Make CLI option and docs clearer that we're handling signals not trades 2022-12-08 18:47:09 +00:00
froggleston
854f056eaf Fix missing Path constructors 2022-12-05 16:16:36 +00:00
froggleston
5a4e99b413 Add support for collating and analysing rejected trades in backtest 2022-12-05 15:34:31 +00:00
Matthias
2219d2f491
Merge pull request #7707 from freqtrade/bt/full_detail
backtesting - use full detail timeframe
2022-11-27 16:09:23 +01:00
Matthias
79c041b62d Update tests for new export format 2022-11-25 16:57:58 +01:00
Matthias
8c014bd365 Export trade-counts to csv
closes #7789
2022-11-25 16:57:45 +01:00
Matthias
8ee8b6e943 Improve hyperopt list output
closes  #7789
2022-11-25 16:31:21 +01:00
Robert Caulk
cd6f87be17
Merge pull request #7728 from freqtrade/improve_timerange
Simplify timerange handling
2022-11-17 19:57:48 +01:00
Matthias
0a702cdd26 Ensure more methods are typechecked 2022-11-14 20:56:35 +01:00
Matthias
0f9c5f8d41 Simplify timerange handling 2022-11-10 18:28:18 +01:00
Matthias
884014a4b9 Fix some minor typos 2022-11-07 18:35:28 +00:00
Matthias
ded57fb301 Remove no longer valid test part 2022-11-05 20:32:31 +01:00
Matthias
d089fdae34 Fix current-time_det calculation 2022-11-05 20:02:36 +01:00
Matthias
0888b53b5a Udpate current_time handling for detail loop 2022-11-05 17:02:27 +01:00
Matthias
a11d579bc2 Verify order fills on "detail" timeframe 2022-11-05 17:02:27 +01:00
Wagner Costa Santos
6606a0113f refactoring - remove unnecessary config file 2022-10-20 14:53:25 -03:00
Wagner Costa Santos
52b60c5cbb Merge branch 'develop' into backtest_live_models 2022-10-20 11:59:37 -03:00
Matthias
c3d4fb9f1b Simplify backtest calling interface 2022-10-18 06:39:55 +02:00
Matthias
6252ae466e Convert position_stacking to attribute of backtest 2022-10-17 06:57:26 +02:00
Matthias
8534dfb0d4 Extract backtest 1 candle from main function 2022-10-17 06:57:26 +02:00
Matthias
0e8cf366f5 Keep trade state in LocalTrade 2022-10-17 06:57:26 +02:00
Matthias
e82baf5f60 Use helper-method to modify trades_open 2022-10-16 16:45:16 +02:00
Evgeniy Vladimirov
de9f5660f3 Fix counting available trade slots in backtesting. 2022-10-16 12:56:59 +03:00
Matthias
b6c096d3bc Simplify backtest condition 2022-10-16 09:22:56 +02:00
Matthias
05ca725e4d Remove no longer needed local state 2022-10-15 12:07:22 +02:00