Commit Graph

498 Commits

Author SHA1 Message Date
rextea eb5d69dcd4 Add confirm_trade_exit and confirm_trade_entry to backtesting 2021-03-23 10:12:08 +02:00
rextea 6856963aef Add confirm_trade_exit and confirm_trade_entry to backtesting 2021-03-23 10:09:41 +02:00
Matthias b57c150654 Final balance should include forcesold pairs 2021-03-14 09:48:40 +01:00
Matthias d1acc8092c Improve backtest performance 2021-03-13 10:17:14 +01:00
Matthias 0db5c9746f
Merge pull request #4454 from freqtrade/backtest_compound_speed
Backtest compound, wallet, ...
2021-03-10 10:07:40 +01:00
Matthias 4b550dab17 Always reset fake-databases
Otherwise results may stick around for the next strategy
2021-03-08 19:40:29 +01:00
Matthias 0b81b58d28 Use pandas.values.tolist instead of itertuples
speeds up backtesting
closes #4494
2021-03-07 11:28:54 +01:00
Matthias 2083cf6ddf Fix mypy errors introduced by Arrow update 2021-03-01 08:57:57 +01:00
Matthias b2e9295d7f Small stylistic fixes 2021-02-27 19:57:42 +01:00
Matthias 324b9dbdff Simplify wallet code 2021-02-27 10:33:25 +01:00
Matthias 98f3142b30 Improve handling of backtesting params 2021-02-27 09:33:00 +01:00
Matthias fc256749af Add test for backtesting _enter_trade 2021-02-27 09:33:00 +01:00
Matthias 53a57f2c81 Change some types
Fix types of new model object
2021-02-27 09:33:00 +01:00
Matthias 03eb23a4ce 2 levels of Trade models, one with and one without sqlalchemy
Fixes a performance issue when backtesting with sqlalchemy, as that
uses descriptors for all properties.
2021-02-27 09:33:00 +01:00
Matthias 394a6bbf2a Fix some type errors 2021-02-27 09:33:00 +01:00
Matthias 52acacbed5 Check min-trade-stake in backtesting 2021-02-27 09:33:00 +01:00
Matthias 7913166453 Improve performance by updating wallets only when necessary 2021-02-27 09:33:00 +01:00
Matthias 74fc4bdab5 Shorten debug log 2021-02-27 09:32:59 +01:00
Matthias 8d61a26382 Allow dynamic stake for backtesting and hyperopt 2021-02-27 09:32:59 +01:00
Matthias e4abe902fc Enable compounding for backtesting 2021-02-27 09:32:59 +01:00
Matthias 0faa6f84dc Improve Wallet logging disabling for backtesting 2021-02-27 09:32:59 +01:00
Matthias 081b9be45c use get_all_locks to get locks for backtest result 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
Matthias 9361aa1c95 Add wallets to backtesting 2021-02-27 09:32:59 +01:00
Matthias 789a980a30 Fix tests for new export format 2021-01-24 19:42:32 +01:00
Matthias deb8432d33 Streamline trade to dataframe conversion 2021-01-24 08:58:41 +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 0b65fe6afe Capture backtest start / end time 2021-01-14 19:09:25 +01:00
Matthias 9147106259 call bot_loop_start() in backtesting to allow setup-code to run 2021-01-14 19:09:25 +01:00
Matthias baa1142afa Use preprocessed to get min/max date in hyperopt 2021-01-14 19:09:21 +01:00
Matthias 9d4cdcad10 Extract backtesting of one strategy 2021-01-14 19:04:42 +01:00
Matthias f3de0dd3eb Fix support for protections in hyperopt
closes #4208
2021-01-14 06:53:40 +01:00
Matthias f11fd2fee1 Sort imports 2020-12-23 17:00:02 +01:00
Matthias 67193bca3d Move pairlists to be a plugin submodule 2020-12-23 16:54:35 +01:00
Matthias 266031a6be Disallow PerformanceFilter for backtesting
closes #4072
2020-12-16 19:24:47 +01:00
Matthias f047297995 Improve wording, fix bug 2020-12-07 15:48:06 +01:00
Matthias 5849d07497 Export locks as part of backtesting 2020-12-07 11:39:01 +01:00
Matthias bb51da8297 Fix slow backtest due to protections 2020-12-07 11:39:01 +01:00
Matthias 75a5161650 Support multis-strategy backtests with protections 2020-12-07 11:39:01 +01:00
Matthias a3f9cd2c26 Only load protections when necessary 2020-12-07 11:39:01 +01:00
Matthias e2d15f4082 Add parameter to enable protections for backtesting 2020-12-07 11:39:01 +01:00
Matthias 32189d27c8 Disable output from plugins in backtesting 2020-12-07 11:39:01 +01:00
Matthias 9f34aebdaa Allow closing trades without message 2020-12-07 11:39:01 +01:00
Matthias b606936eb7 Make changes to backtesting to incorporate protections 2020-12-07 11:39:01 +01:00
Matthias e73203acb8 FIx bug with dmmp 2020-11-01 10:51:07 +01:00
Matthias cf2ae788d7 Convert backtesting rows to Tuples for performance gains 2020-10-18 17:16:57 +02:00
Matthias 5d3a67d324 Don't debug-log during backtesting.
Even though log-messages are surpressed, calling "debug" will always
have to do something.
2020-10-18 16:38:16 +02:00
Matthias b80a219d03 Improve typehints for backtesting 2020-10-18 16:35:23 +02:00
Matthias 2591a34db4 Don't use arrow objects for backtesting 2020-10-18 16:18:52 +02:00
Matthias 23278e52db remove obsolete logging statements 2020-10-08 20:22:59 +02:00
Matthias e8f2c09f08 Extract handling of left open trades to seperate method 2020-10-08 20:11:45 +02:00
Matthias 52502193c4 Backtesting should not double-loop for sell signals 2020-10-07 20:59:05 +02:00
Matthias 253b7b763e Apply isort to freqtrade codebase 2020-09-28 19:40:46 +02:00
Matthias bb27b236ce Remove unused arguments 2020-09-26 14:55:12 +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 284d39930f Allow using pairlists through dataprovider in backtesting 2020-08-30 10:07:28 +02:00
Matthias 3d515ed5bf
Merge pull request #3558 from freqtrade/bt_add_maxdrawdown
Revise backtesting export format, add some metrics
2020-08-19 06:39:47 +02:00
Matthias 87e4a82041 Merge branch 'develop' into bt_add_maxdrawdown 2020-08-09 08:34:36 +02:00
Matthias 2afe1d5b11 Add link to full sample 2020-08-08 17:30:31 +02:00
Matthias dd430455e4 Enable dataprovier for hyperopt 2020-08-08 17:04:32 +02:00
Matthias c1191400a4 Allow 0 fee value by correctly checking for None 2020-07-15 19:20:20 +02:00
Matthias 0d15a87af8 Remove old store_backtest method 2020-07-03 20:21:32 +02:00
Matthias 7727292861 Rename duration to trade_duration 2020-07-03 06:58:27 +02:00
Matthias f368aabcc7 Add amount to backtest-result 2020-07-03 06:58:27 +02:00
Matthias 6e94734678 Add fee to backtestresult 2020-07-03 06:58:27 +02:00
Matthias 075eb0a161 Fix sequence of saving 2020-07-03 06:58:27 +02:00
Matthias 0fa56be9d2 remove openIndex and closeIndex from backtest-report 2020-07-03 06:58:27 +02:00
Matthias b068e7c564 Rename open_time and close_time to *date 2020-07-03 06:58:27 +02:00
Matthias 415853583b Save backtest-stats 2020-07-03 06:58:27 +02:00
Matthias fbddfaeacf Introduce DatetimePrintFormat 2020-07-03 06:58:27 +02:00
Matthias cbcf3dbb43 Add more metrics to summarytable 2020-07-03 06:58:27 +02:00
hroff-1902 02c0488d45
Merge pull request #3453 from freqtrade/fix/3363
Backtesting should load pairlists after the strategy
2020-06-29 21:53:33 +03:00
Matthias 72ae4b1500 Load pairlist after strategy to use strategy-config
fail in certain conditions when using strategy-list

Fix #3363
2020-06-07 16:15:26 +02:00
hroff-1902 64881a94e2
Merge branch 'develop' into timeframe 2020-06-02 15:56:34 +03:00
Matthias cadc50ce9b Replace more occurances of ticker_interval with timeframe 2020-06-01 20:49:40 +02:00
Matthias 091693308a Correctly call show_backtest_results 2020-06-01 09:25:26 +02:00
Matthias fb8a85da01 Disallow VolumePairList from backtesting for now 2020-04-27 07:56:17 +02:00
Matthias 8987859044 Enable pairlist parsing for backtesting and hyperopt 2020-04-25 15:37:13 +02:00
Matthias de47186263 Use .loc for assignments 2020-04-02 19:31:48 +02:00
Matthias e95665ceca Make backtestresult storing independent from printing 2020-03-15 15:36:23 +01:00
Matthias a13d581658 Move backtest-result visualization out of backtesting class 2020-03-15 15:17:53 +01:00
Matthias 6106d59e1a Move store_backtest_results to optimize_reports 2020-03-15 15:17:35 +01:00
Matthias 328dbd3930 Remove unnecessary parameter to generate_text_table_sell_reason 2020-03-15 15:04:48 +01:00
Matthias 0f1640bed4 convert exportfilename to Path when config parsing 2020-03-15 09:39:45 +01:00
hroff-1902 ebb0187f40 dataframe -> df_analyzed in backtesting and edge 2020-03-13 03:54:56 +03:00
hroff-1902 3208faf7ed Do not use ticker where it's not a ticker 2020-03-08 20:47:02 +03:00
Fredrik81 55d471190a Changed table style of backtesting and alignment of headers 2020-02-27 13:28:28 +01:00
Matthias d65a06947d Merge branch 'develop' into data_handler 2020-02-09 15:16:43 +01:00
Yazeed Al Oyoun 5b00eaa42d
Updated Strategy Summary table to match other backtesting tables (#2864) 2020-02-06 06:58:58 +01:00
hroff-1902 d457d43999
Merge pull request #2833 from hroff-1902/type-hints
Add some type hints
2020-02-03 23:24:26 +03:00
hroff-1902 f3d500085c Add some type hints 2020-02-02 07:00:40 +03:00
Yazeed Al Oyoun e2b3907df5 more consistent backtesting tables and labels 2020-01-31 04:39:18 +01:00
Matthias 1b9af9d2d8 Merge branch 'develop' into data_handler 2020-01-26 20:31:13 +01:00
Matthias bd4dd8403b Fix type-errors with stake_amount 2020-01-25 12:49:37 +01:00
hroff-1902 f4c7edf551 No args for backtest(), use arguments 2020-01-25 12:49:37 +01:00
Matthias fc2970f41b Merge branch 'develop' into data_handler 2020-01-21 06:58:48 +01:00
Tejesh f73f0b1653 Update comments on backtesting 2020-01-15 19:29:00 +05:30
Matthias c475729c13 Extract edge reporting to optimize_reports 2020-01-09 06:52:34 +01:00
Matthias 904e1647e1 Extract generate_text_table_strategy to seperate module 2020-01-02 09:31:53 +01:00
Matthias caec345c0b Extract generate_text_table_sell_reason from backtesting class 2020-01-02 09:31:53 +01:00
Matthias 18a53f4467 Extract generate_text_table from backtesting class 2020-01-02 09:31:47 +01:00
Matthias 699c0d6bc3 Merge branch 'develop' into data_handler 2019-12-30 19:40:43 +01:00
Matthias 1ffda29fd2 Adjust improts to new exception location 2019-12-30 15:02:17 +01:00
Matthias f4a532ef6d Pass format to load_data 2019-12-28 14:57:39 +01:00
Matthias 416517b0c9 Move trim_dataframe from history to converter 2019-12-28 11:01:41 +01:00
hroff-1902 6db75bc244
Merge pull request #2706 from freqtrade/data_dir
Convert datadir within config to Path
2019-12-28 05:14:48 +03:00
Matthias e5aed098b5 Enhance backtest results with sell reason profit / loss table 2019-12-25 09:39:29 +01:00
Matthias c6b9c8eca0 Forgot to save 2019-12-23 19:32:31 +01:00
Matthias c6d2233978 Convert StrategyLoader to static loader 2019-12-23 10:23:48 +01:00
Matthias 560acb7cea Convert ExchangeResolver to static loader class 2019-12-23 10:03:18 +01:00
hroff-1902 cf4c3642ce Minor improvements in data.history 2019-12-18 01:06:03 +03:00
Matthias a2964afd42 Rename profit_percent to profit_ratio to be consistent 2019-12-17 08:53:30 +01:00
hroff-1902 26ab108890 Fix mypy errors in develop 2019-12-15 01:10:09 +03:00
hroff-1902 1cc174c007
Merge pull request #2624 from freqtrade/backtest_refactor
handle and document ROI=-1
2019-12-14 23:11:36 +03:00
Matthias a48c0ad868 Use first pair of pairlist to get fee
Use this instead of hardcoded ETH/BTC - so backtesting works with
exchanges without ETH/BTC pair
2019-12-14 12:55:02 +01:00
Matthias 7c7ca1cb90 Remove min (plural) from codebase 2019-12-11 07:12:37 +01:00
Matthias de33ec4250 use sell_row.open also when the active ROI value just changed 2019-12-09 16:52:12 +01:00
Matthias 45d12dbc83 Avoid a few calculations during backtesting 2019-12-07 15:28:56 +01:00
Matthias 3163cbdf8a Apply special case for negative ROI 2019-12-07 15:18:12 +01:00
Matthias 3091869115 refactor get_close_rate out of get_sell_trade-entry 2019-12-07 14:30:14 +01:00
Matthias af3eea3805 Move config json validation to after strategy loading
Otherwise attributes are mandatory in configuration
while they could be set in the strategy
2019-11-25 07:05:30 +01:00
Matthias 1c57a4ac35 more replacements of ticker_interval 2019-11-12 15:13:06 +01:00
Matthias d801dec6aa Some more places with ticker_interval gone 2019-11-12 15:13:06 +01:00
Matthias e4bdb92521 Replace some occurances of ticker_interval with timeframe 2019-11-12 15:13:06 +01:00
Matthias eb0b0350e0 Introduce remove_credentials to remove code duplication 2019-11-05 12:39:19 +01:00
Matthias 1e44f93c31 Fix pandas access warning 2019-11-03 10:58:31 +01:00
Matthias 33164ac78e Refactor loading of bt data to backtesting ... 2019-10-27 09:44:56 +01:00
Matthias bd4a23beeb Refactor start-adjust logic to timerange 2019-10-27 09:44:56 +01:00
Matthias 6382a4cd04 Implement startup-period to default-strategy 2019-10-27 09:44:56 +01:00
Matthias 704121c197 Move most logic to history 2019-10-27 09:44:56 +01:00
Matthias 9c7696a8ce Add required_startup to backtesting 2019-10-27 09:44:56 +01:00
hroff-1902 2ec8376af9
Merge pull request #2342 from freqtrade/fix/negativeroi
Don't have backtest sells outside of a candle
2019-10-08 11:19:34 +03:00
Matthias 0664a8c0e6 add `--fee` to change fees to other values 2019-10-05 15:29:00 +02:00
Matthias 7ea9da9605 Fix #2277 2019-10-05 10:54:28 +02:00
Matthias dc47a391da Move ignore to corrct line for mypy 730 2019-09-30 19:32:46 +02:00
Matthias 1cd8ed0c1a Remove --refresh-pairs 2019-09-20 20:02:07 +02:00
hroff-1902 69f29e8907 minor: Cleanup for backtesting 2019-09-18 22:57:17 +03:00
hroff-1902 76e45883bd
Merge pull request #2253 from hroff-1902/backtesting-improve-logs
Improve logs for backtesting
2019-09-14 11:23:46 +03:00
hroff-1902 849d694c27 Don't inherit from object 2019-09-12 04:39:52 +03:00
hroff-1902 9bdfaf3803 Remove quotes around the pairs 2019-09-11 23:32:08 +03:00
hroff-1902 35580b135a Improve backtesting logs 2019-09-10 10:42:45 +03:00
Matthias 972b8a1726 Remove defaulting to test_data folder when no datadir is present 2019-09-07 21:06:20 +02:00
hroff-1902 d9c2b7d460 fix fetching ticker_interval from strategy 2019-08-26 22:31:24 +03:00
hroff-1902 bfc68ec792 minor cleanup in Backtesting 2019-08-25 23:36:42 +03:00
Matthias 9e24992835 Remove calls to load_data using live= 2019-08-20 07:00:43 +02:00
Matthias 9e8ca8d4bf
Merge pull request #2138 from freqtrade/history_docstrings
Refactorings to history
2019-08-20 06:35:54 +02:00
Matthias 09286d4918 file_dump_json accepts Path - so we should feed it that 2019-08-16 13:04:48 +02:00
Matthias 51c3a31bb5 Correct imports and calls to parse_timerange 2019-08-14 10:07:32 +02:00
Matthias 3d3b0938e5
Merge pull request #2101 from freqtrade/backtest_ticker_interval_unset
Backtest ticker interval unset
2019-08-07 14:20:36 +02:00