Commit Graph

1206 Commits

Author SHA1 Message Date
Rokas Kupstys 5e872273d1 Provide access to strategy instance from hyperopt class. 2021-03-13 15:13:42 +02: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
Patrick Weber 4532222010
Fixed line length in HyperOpt for new name
Fixed line length errors and multiple f strings to facilitate strategy being added in the name
2021-03-05 13:16:49 -06:00
Patrick Weber 345f7404e9
Add strategy name to HyperOpt results filename
This just extends the HyperOpt result filename by adding the strategy name. This allows analysis of HyperOpt results folder with no additional necessary context. An alternative idea would be to expand the result dict, but the additional static copies are non value added.
2021-03-05 12:56:11 -06:00
Matthias 731ab5d2a7 Fix too long line errors 2021-03-05 19:22:57 +01:00
Matthias bc05d03126 Make best / worst day absolute 2021-03-05 19:21:09 +01:00
raoulus 0968ecc1af added "Median profit" column to hyperopt -> export-csv 2021-03-04 17:27:04 +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 2083cf6ddf Fix mypy errors introduced by Arrow update 2021-03-01 08:57:57 +01:00
Matthias 9cb37409fd Explicitly convert starting-balance to float 2021-02-28 09:56:29 +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 f04f07299c Improve backtesting metrics 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 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 74fc4bdab5 Shorten debug log 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 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 b5177eadab Extract close method for exchange 2021-02-27 09:32:59 +01:00
Matthias 4ce4eadc23 remove only ccxt objects when hyperopting 2021-02-27 09:32:59 +01:00
Matthias 9361aa1c95 Add wallets to backtesting 2021-02-27 09:32:59 +01:00
Matthias 11b20d6932 Add config to hyperopt_loss_function documentation 2021-02-17 07:04:29 +01:00
Matthias eff0d46ea1
Merge pull request #4375 from flomerz/pass_processed_data
pass data and config to loss function
2021-02-16 20:06:50 +01:00
Matthias 009a447d8a Adjust documentation for new parameter in loss functions 2021-02-16 19:51:09 +01:00
Florian Merz 3e06cd8b3a pass data and config to loss function 2021-02-16 10:11:33 +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 c659150d9f Also print trade_duration in seconds to json 2021-01-25 19:42:34 +01:00
Matthias 62e43539c9 Limit max_open_trades to maximum available pairs
closes #4008
2021-01-24 19:59:54 +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 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 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 63a579dbab Add sell_profit_offset parameter
Allows defining positive offsets before enabling the sell signal
2021-01-11 19:30:25 +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 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 887d78171c
Merge pull request #3857 from freqtrade/arrow_deprecation_timestamp
Convert timestamp to int_timestamp for all arrow occurances
2020-11-02 16:40:43 +01:00
Matthias e73203acb8 FIx bug with dmmp 2020-11-01 10:51:07 +01:00
Matthias 7a092271c5 Merge branch 'develop' into arrow_deprecation_timestamp 2020-10-20 20:01:54 +02: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 380e6628e0 Merge branch 'develop' into feat/backtest_speedup_serialize 2020-10-18 16:19:04 +02:00
Matthias 2591a34db4 Don't use arrow objects for backtesting 2020-10-18 16:18:52 +02:00
Matthias ecddaa663b Convert timestamp to int_timestamp for all arrow occurances 2020-10-13 06:24:01 +02:00
Matthias 23bad8fd9f Rename DefahltHyperoptLoss function to ShortTradeDurHyperOptLoss 2020-10-10 14:22:29 +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 40b61bbfe3 Adjust trailing-stop to be python compliant 2020-10-05 07:44:12 +02:00
Matthias cb74c9bcde Fix hyperopt output 2020-10-03 13:27:06 +02:00
Matthias 6977ffdbf9 Merge branch 'develop' into isort_config 2020-09-28 20:21:55 +02:00
Matthias 253b7b763e Apply isort to freqtrade codebase 2020-09-28 19:40:46 +02:00
Matthias c42a924df8 Load latest file 2020-09-27 16:50:42 +02:00
Matthias ff96cf154c Keep hyperopt result history 2020-09-27 16:33:26 +02:00
Matthias b736691e0e Remove hyperopt --continue 2020-09-27 16:18:28 +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 378f03a5b1 Add relevant parameters to stored backtest result 2020-09-25 06:37:40 +02:00
Matthias 6674285b12
Merge pull request #3756 from allenday/patch-1
prettify hyperopt console output
2020-09-19 17:43:05 +02:00
Matthias f0d7f18cf9 Pad wins / draws / losses for hyperopt with spaces instead of 0's 2020-09-19 17:32:22 +02:00
Matthias ec01f20bf8 Add ratio to sell reason stats 2020-09-16 20:27:28 +02:00
Allen Day f63a378967
Update hyperopt.py
zero pad wins/draws/losses (W/D/L) column to preserve alignment in console pretty print
2020-09-07 23:26:55 +08:00
Matthias 284d39930f Allow using pairlists through dataprovider in backtesting 2020-08-30 10:07: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 3d93236709 Remove unused import 2020-08-21 14:55:47 +02:00
Matthias 301f74fd1b
Merge pull request #3418 from freqtrade/hyperopt_colorama_init
Test colorama init again (after the fixes done to progressbar)
2020-08-21 14:54:35 +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 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 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
Matthias a6dac9acf3
Merge pull request #3667 from freqtrade/hyperopt_enable_dataprovider
Hyperopt enable dataprovider
2020-08-17 07:00:48 +02:00
Matthias 1f153f51ee
Merge pull request #3660 from freqtrade/hyperopt_default_tests
Move DefaultHyperopt to tests
2020-08-17 06:49:55 +02:00
Matthias b98107375e Improve formatting of result string to be a bit conciser 2020-08-14 07:31:14 +02:00
Matthias d76ee43246 Show wins / draws / losses in hyperopt table 2020-08-14 07:14:10 +02:00
Matthias 05bd099f51 Merge branch 'develop' into pr/yazeed/3008 2020-08-14 06:58:09 +02:00
Matthias 87e4a82041 Merge branch 'develop' into bt_add_maxdrawdown 2020-08-09 08:34:36 +02:00
Matthias fca41a44bb Also logg timeframe 2020-08-08 20:20:58 +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 8b6d10daf1 Move DefaultHyperopt to test folder (aligned to strategy) 2020-08-06 08:50:41 +02:00
Matthias aab5596fa6 Convert trade open / close to timestamp
(to allow uniform analysis of backtest and real trade data - while
giving control of date-formatting to the endsystem.
2020-07-27 07:20:40 +02:00
Matthias 977a6d4e9c Add profit_total to results line 2020-07-26 16:10:48 +02:00
Matthias 454046f745 Add stake_currency and max_opeN_trades to backtest result 2020-07-26 15:55:54 +02:00
Matthias 8d0f338bf2 Timestamps should be in ms 2020-07-26 15:23:21 +02:00
Matthias 9ed5fed887 Fix output format to be of an identical type 2020-07-26 15:17:54 +02:00
Matthias 902e8fa62f Fix wrong spelling in one subcomponent 2020-07-26 14:39:00 +02:00
Matthias c1191400a4 Allow 0 fee value by correctly checking for None 2020-07-15 19:20:20 +02:00
Matthias bdf611352e Update summary-metrics output 2020-07-14 19:34:01 +02:00
Matthias 1fc4451d2f Avoid \ linebreak 2020-07-03 20:32:04 +02:00
Matthias 0d15a87af8 Remove old store_backtest method 2020-07-03 20:21:32 +02:00
Matthias 987188e41f Add avgduration for winners and losers 2020-07-03 19:58:02 +02:00
Matthias 8e0ff4bd86 Add Win / draw / losing days 2020-07-03 19:45:45 +02:00
Matthias 42868ad24a Add best / worst day to statistics 2020-07-03 19:30:29 +02:00
Matthias 7c5587aeaa exportfilename can be a file or directory 2020-07-03 06:58:27 +02:00
Matthias 2ed808da1f Extract .last_result.json to constant 2020-07-03 06:58:27 +02:00
Matthias 59e0ca0aaa Add pairlist to backtest-result 2020-07-03 06:58:27 +02:00
Matthias c13ec4a1d4 implement fallback loading for load_backtest_data 2020-07-03 06:58:27 +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 03ab61959b Add test for generate_backtest_stats 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 04cbc2cde5 Shorten variable 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 81c8e8677d use 0 as profit mean, not nan 2020-07-03 06:58:27 +02:00
Matthias 480c5117f1 Handle empty return strings 2020-07-03 06:58:27 +02:00
Matthias 5fce7f3b22 Add market Change
closes #2524 and #3518
2020-07-03 06:58:27 +02:00
Matthias cf044d166e Tests should use new Datetime format too 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
Matthias 6922fbc3aa Add max_drawdown error handler 2020-07-03 06:58:27 +02:00
Matthias 455b26ea48 Add max drawdown to backtesting 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 0b2982caed Merge branch 'develop' into hyperopt_colorama_init 2020-06-16 10:16:41 +02:00
Matthias 761407f74d
Merge pull request #3430 from freqtrade/timeframe
ticker_interval -> timeframe
2020-06-15 13:47:26 +02:00
Matthias a3506f4d8e Merge branch 'develop' into timeframe 2020-06-15 06:35:55 +02:00
Matthias d337fb6c6a Update some comments 2020-06-15 06:35:31 +02:00
hroff-1902 ea77edce05
Make flake happy 2020-06-13 18:54:54 +03:00
hroff-1902 3d9b107761
Changes after review 2020-06-13 17:12:37 +03:00
Felipe Lambert 69ac5c1ac7 change hyperopt return to better copy to strategy file 2020-06-10 14:35:31 -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
Matthias a75b94f143 use bracket notation for dataframe access 2020-06-07 15:40:00 +02:00
Matthias 68395d2745 Use bracket notation to query results in hyperopt 2020-06-07 15:39:59 +02:00
Matthias 04779411f5 Add docstring to backtest_stats 2020-06-07 15:39:59 +02:00
Matthias 070913f327 Rename text_table generation 2020-06-07 11:35:02 +02:00
Matthias 499c6772d1 Rename tabulate methods
they don't "generate" anything
2020-06-07 11:31:33 +02:00
Matthias a6f6724752 Reorder functions in optimize_report 2020-06-07 11:29:14 +02:00
hroff-1902 64881a94e2
Merge branch 'develop' into timeframe 2020-06-02 15:56:34 +03:00
Matthias a8005819c9 Add class-level attributes to hyperopt and strategy 2020-06-02 10:19:27 +02:00
Matthias f9bb1a7f22 Update more occurances of ticker_interval 2020-06-02 10:02:55 +02:00
Matthias 3e895ae74a Some more replacements of ticker_interval 2020-06-02 09:41:42 +02:00
Matthias cadc50ce9b Replace more occurances of ticker_interval with timeframe 2020-06-01 20:49:40 +02:00
Matthias d9afef8fe1 Move colorama_init to where it was 2020-06-01 09:37:10 +02:00
Matthias ffa93377b4 Test colorama init again (after the fixes done to progressbar) 2020-06-01 09:34:03 +02:00
Matthias 091693308a Correctly call show_backtest_results 2020-06-01 09:25:26 +02:00
Matthias ceaf32d304 Extract backtesting report generation from show_backtest_Results 2020-06-01 09:24:05 +02:00
Matthias f202e09b10 Extract conversion to trades list to it's own function 2020-06-01 08:57:31 +02:00
Matthias 18a5787a2c
Reorder typing imports
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-05-27 19:17:15 +02:00
Matthias abf79e4ab4 Use temporary variable to clean up code 2020-05-25 20:47:48 +02:00
Matthias 6a9a8f927e Rename some methods, improve some testing 2020-05-25 20:46:31 +02:00
Matthias 462c35cf75 Move stats generation to the top 2020-05-25 20:22:22 +02:00
Matthias 027ea64d48 Fix docstrings, extract strategy-list results 2020-05-25 19:55:02 +02:00
Matthias db257e9f7f Rename method to be public 2020-05-25 19:50:23 +02:00
Matthias 18a2dad684 Extract data generation from generate_text_table 2020-05-25 19:35:32 +02:00
Matthias 0917b17efd Refactor result_line to return dict 2020-05-25 19:21:01 +02:00
Matthias 876a9e4f44 finish refactor of sell_reason table 2020-05-25 07:08:15 +02:00
Matthias d17300fd84 Refactor sell reason stats to return a dict 2020-05-25 07:02:24 +02:00
Matthias 9d1ad70bb7 Split optimize generation from printing 2020-05-25 06:44:51 +02:00
Florian Merz 889a153731 fix PEP8 2020-05-03 17:29:56 +02:00
Florian Merz 690bb7646a hyperopt csv export - add params 2020-05-03 17:00:12 +02:00
Matthias 509f38d3aa Use non-deprectated parameter for progressbar 2020-05-01 17:59:24 +02:00
hroff-1902 726e52aaa7 Use skopt model_queue_size instead of custom hack 2020-04-29 10:49:25 +03:00
hroff-1902 c26835048c Hyperopt cleanup, do not use 'trials' 2020-04-28 22:56:19 +03:00
hroff-1902 a01ed170f5 Improve hyperopt-list logging 2020-04-28 17:33:07 +03:00
hroff-1902 9ebc997e9d
Merge pull request #3215 from freqtrade/backtest_use_pairlists
Backtest use pairlists
2020-04-27 13:34:06 +03:00
Matthias fb8a85da01 Disallow VolumePairList from backtesting for now 2020-04-27 07:56:17 +02:00
Matthias e8530c36d3 Remove pairlists from hyperopt too (it holds a reference to exchange) 2020-04-25 15:46:20 +02:00
Matthias 8987859044 Enable pairlist parsing for backtesting and hyperopt 2020-04-25 15:37:13 +02:00
hroff-1902 d9f255a6c0 Fix asterisk printing for csv output 2020-04-25 12:49:14 +03:00
Yazeed Al Oyoun c9711678fd fixed indent 2020-04-25 11:31:51 +02:00
Yazeed Al Oyoun 181b12b3a8 added wins/draws/losses 2020-04-25 11:31:51 +02:00
Yazeed Al Oyoun 6147498fd4 fixed indent 2020-04-25 11:31:51 +02:00
Yazeed Al Oyoun 2fb3d94938 added wins/draws/losses 2020-04-25 11:31:51 +02:00
hroff-1902 2d994f6feb Better printing of asterisk 2020-04-24 21:57:29 +03:00
hroff-1902 6e5f0869b3 Remove another unused method 2020-04-24 18:39:08 +03:00
hroff-1902 5c012d79eb Remove unused method 2020-04-24 18:14:07 +03:00
Matthias d36e2cf6ab Fix random test failure in hyperopt 2020-04-16 07:06:47 +02:00
hroff-1902 8b6a7e685e
Merge pull request #3133 from freqtrade/backtesting_filenameexpanding
[minor] Fix filename handling with --strategy-list
2020-04-15 12:02:19 +03:00
hroff-1902 4d80f52db4
Merge pull request #3134 from freqtrade/backtesting_memory
Backtesting memory and dataframe
2020-04-13 23:08:45 +03:00
Fredrik81 2c1c1c7f16
Update freqtrade/optimize/hyperopt.py
nice find

Co-Authored-By: Matthias <xmatthias@outlook.com>
2020-04-11 17:42:32 +02:00
Fredrik81 d9e54ab7a4
Update freqtrade/optimize/hyperopt.py
nice find

Co-Authored-By: Matthias <xmatthias@outlook.com>
2020-04-11 17:42:19 +02:00
Fredrik81 4707484a4c Fix issue with colring enabled + styling 2020-04-09 11:42:13 +02:00
Fredrik81 cdc774549e Merge branch 'develop' into progress-bar 2020-04-08 01:56:43 +02:00
Fredrik81 132f5f73f5
Update hyperopt.py 2020-04-07 10:44:18 +02:00
Fredrik81 c95906cfcf
Update hyperopt.py 2020-04-07 10:42:15 +02:00
Fredrik81 d5609d4997 Changed back to progressbar2 for better handling of logger.
Coloring still needs some work (bug + what colors to use)
2020-04-06 13:12:32 +02:00
Matthias de47186263 Use .loc for assignments 2020-04-02 19:31:48 +02:00
Matthias cf6e6488c7 Fix filename handling with --strategy-list 2020-04-02 17:29:18 +02:00
Matthias 3d4664c2a6 Remove unnecessary import 2020-03-15 15:40:12 +01:00
Matthias e1b08ad76c Add docstring to store_backtest_result 2020-03-15 15:38:26 +01: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 51f52c8609
Merge branch 'develop' into no-ticker-2 2020-03-13 16:43:52 +03:00
hroff-1902 a7ed51c642 return back the name of the hyperopt data file 2020-03-13 04:04:23 +03:00
hroff-1902 ebb0187f40 dataframe -> df_analyzed in backtesting and edge 2020-03-13 03:54:56 +03:00
Fredrik81 5737139979 Small fix 2020-03-12 16:47:09 +01:00
Fredrik81 1a59fc11be doh 2020-03-12 02:36:18 +01:00
Fredrik81 df1ae565dc clean-up 2020-03-12 02:26:41 +01:00
Fredrik81 9387ed923c fix for empty lines 2020-03-12 02:07:50 +01:00
Fredrik81 81cbb92556 Switch to TQDM 2020-03-11 22:30:36 +01:00
Fredrik81 3a8b68c0fd Initial work on progressbar 2020-03-10 20:30:36 +01:00
hroff-1902 73c19da4b9 Adjust handling of zero stdev in loss functions 2020-03-10 13:44:16 +03:00
hroff-1902 f148b5f734
cosmetics in lambdas 2020-03-10 10:38:37 +03:00
Fredrik81 bd158eefd2 Fixed loggin 2020-03-10 03:02:52 +01:00
Fredrik81 2f5fc731bb Removed overwrite option 2020-03-09 18:53:30 +01:00
Fredrik81 cb419614cd Spelling miss 2020-03-08 23:00:21 +01:00
Fredrik81 4ad93ed6bb Changed output for null columns 2020-03-08 22:41:05 +01:00
hroff-1902 3208faf7ed Do not use ticker where it's not a ticker 2020-03-08 20:47:02 +03:00
Fredrik81 7606d814fa Initial work on csv-file export. Missing docs and tests 2020-03-05 01:58:33 +01:00
hroff-1902 57523d58df
Merge pull request #2994 from Fredrik81/hyperopt-table
Added dynamic print table function to hyperopt
2020-03-04 23:44:53 +03:00
Fredrik81 090d1e8a70 Alignment and cleanups 2020-03-04 20:51:09 +01:00
Fredrik81 7652a2bb95 Updated table layout and aligning better for hyperopt 2020-03-04 00:10:47 +01:00
Fredrik81 399c419163 Changed table formating. Adding some code to align hyperopt table generation. WIP 2020-03-03 01:14:56 +01:00
hroff-1902 82bdd01843
Merge pull request #3003 from Fredrik81/cores-and-arguments
Hyperopt: fix number of CPU cores, jobs and total epochs
2020-03-03 02:12:21 +03:00
hroff-1902 52cd5f9127
Better use enumerate: more correct and more pythonic 2020-03-03 01:42:25 +03:00
hroff-1902 45c9496792
Do not run optimizer for 'jobs' epochs for the last iteration 2020-03-03 01:33:11 +03:00
hroff-1902 a7d4755859
optimize calculation of current_jobs 2020-03-03 01:20:14 +03:00
hroff-1902 92425642da
Fix config_jobs 2020-03-03 01:00:24 +03:00
Fredrik81 0e4862b0c8 Added logging if argument is miss-configured 2020-03-02 22:58:54 +01:00
Fredrik81 7713cfeb79 Corrected logic for -j + and - argument 2020-03-02 21:02:32 +01:00
Fredrik81 f08c7eedf1 Changed jobs to be dynamic for last loop 2020-03-01 14:35:13 +01:00
Fredrik81 75b4f1a442 Fix alignment of higher values 2020-03-01 14:12:27 +01:00
Fredrik81 e89fd33229 Fix for more arguments 2020-02-29 23:57:15 +01:00
Fredrik81 7a4edb1cd8 Fix: When total epochs is less than cpu cores 2020-02-29 23:41:59 +01:00
Fredrik81 23ae0653bd Changed table output to match hyperopt-list command 2020-02-29 23:24:08 +01:00
hroff-1902 0528af1700
Merge pull request #2879 from freqtrade/sortino_hyperopt_loss
Sortino hyperopt loss
2020-02-29 11:36:27 +03:00
Fredrik81 349aa2f957 Added dynamic print table function to hyperopt 2020-02-28 21:54:04 +01:00
hroff-1902 bee8e92f02
Final changes, use sqrt i.o. statistics.pstdev 2020-02-28 23:50:25 +03:00
Fredrik81 55d471190a Changed table style of backtesting and alignment of headers 2020-02-27 13:28:28 +01:00
hroff-1902 893d9cde8d
Merge pull request #2943 from Fredrik81/add-print-table
Added function to print hyperopt-list as table using tabulate
2020-02-27 05:22:41 +03:00
Fredrik81 cd7efde6c0 Fixed coloring so it's only targeting the values not the table borders 2020-02-24 22:06:21 +01:00
Fredrik81 23bf135b8a Alignment of table content, changed coloring, changed 'Best' column to show if it's initial_point or best 2020-02-24 11:01:14 +01:00
Yazeed Al Oyoun 3fb6818bd8
Merge branch 'develop' into sortino_hyperopt_loss 2020-02-19 02:37:25 +01:00
Fredrik Rydin 2058b492eb Added function to print hyperopt-list as table using tabulate 2020-02-18 22:46:53 +01:00
Matthias 6335d81ceb Merge branch 'develop' into data_handler 2020-02-16 15:12:14 +01:00
hroff-1902 674898bd32 Fix usage of vars in the commented out line 2020-02-16 15:26:40 +03:00
hroff-1902 42dfda9231 Adjust docstring 2020-02-16 13:46:07 +03:00
hroff-1902 fbe5cc44da Use statistics.pstdev 2020-02-16 13:43:23 +03:00
hroff-1902 1e84b2770c Fix values of downside_returns 2020-02-16 04:10:53 +03:00
hroff-1902 161dd1a3e6 Rename risk_free_return to minumum_accepted_return 2020-02-16 03:55:16 +03:00
hroff-1902 b2328cdf4f
Do not subtract risk_free_ratio twice 2020-02-13 07:07:35 +03:00
hroff-1902 9ec9a7b124
Fix t_index to be normalized 2020-02-09 21:20:15 +03:00
hroff-1902 c89a32224c
Fix SharpeHyperOptLossDaily 2020-02-09 18:40:19 +03:00
Matthias d65a06947d Merge branch 'develop' into data_handler 2020-02-09 15:16:43 +01:00
hroff-1902 61ced5e926 Fix typo 2020-02-08 02:49:06 +03:00
Yazeed Al Oyoun e8b9d88eb6 moved line for total_downside 2020-02-07 16:44:55 +03:00
Yazeed Al Oyoun a46b7bcd6d more fixes... 2020-02-07 16:44:43 +03:00
Yazeed Al Oyoun 9bcc5d2eed fixed downside_returns to read from profit_percent_after_slippage 2020-02-07 16:36:12 +03:00
Yazeed Al Oyoun 728ab0ff21 Added both SortinoHyperOptLoss and SortinoHyperOptLossDaily 2020-02-07 16:35:28 +03:00
Yazeed Al Oyoun b56a1f0603 initial push of sortino, work not done, still need own tests 2020-02-07 16:34:20 +03:00
Yazeed Al Oyoun deb0b7ad67 Added both SortinoHyperOptLoss and SortinoHyperOptLossDaily 2020-02-07 16:30:37 +03:00
Yazeed Al Oyoun 44d67389d2 initial push of sortino, work not done, still need own tests 2020-02-07 16:29:27 +03:00
Yazeed Al Oyoun ff819386e1 added draws to backtesting tables, reduced len of some labels to help fit this without increasing total width 2020-02-07 03:51:50 +01:00
Yazeed Al Oyoun 5b00eaa42d
Updated Strategy Summary table to match other backtesting tables (#2864) 2020-02-06 06:58:58 +01:00
Yazeed Al Oyoun 9639ffb140
added daily sharpe ratio hyperopt loss method, ty @djacky (#2826)
* more consistent backtesting tables and labels

* added rounding to Tot Profit % on Sell Reasosn table to be consistent with other percentiles on table.

* added daily sharpe ratio hyperopt loss method, ty @djacky

* removed commented code

* removed unused profit_abs

* added proper slippage to each trade

* replaced use of old value total_profit

* Align quotes in same area

* added daily sharpe ratio test and modified hyperopt_loss_sharpe_daily

* fixed some more line alignments

* updated docs to include SharpeHyperOptLossDaily

* Update dockerfile to 3.8.1

* Run tests against 3.8

* added daily sharpe ratio hyperopt loss method, ty @djacky

* removed commented code

* removed unused profit_abs

* added proper slippage to each trade

* replaced use of old value total_profit

* added daily sharpe ratio test and modified hyperopt_loss_sharpe_daily

* updated docs to include SharpeHyperOptLossDaily

* docs fixes

* missed one fix

* fixed standard deviation line

* fixed to bracket notation

* fixed to bracket notation

* fixed syntax error

* better readability, kept np.sqrt(365) which results in  annualized sharpe ratio

* fixed method arguments indentation

* updated commented out debug print line

* renamed after slippage profit_percent so it wont affect _calculate_results_metrics()

* Reworked to fill leading and trailing days

* No need for np; make flake happy

* Fix risk free rate

Co-authored-by: Matthias <xmatthias@outlook.com>
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-02-06 06:49:08 +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
Yazeed Al Oyoun 3499f1b85c better readability and more consistent with daily sharpe loss method 2020-02-02 08:47:33 +01:00
hroff-1902 f3d500085c Add some type hints 2020-02-02 07:00:40 +03:00
Matthias 19d4e1435c
Merge pull request #2828 from yazeed/line_alignment_fixes
fixed some more line alignments
2020-02-01 11:19:28 +01:00
Yazeed Al Oyoun d038bcedb0 fixed some more line alignments 2020-01-31 22:37:05 +01:00
Matthias c396ad4daa Align quotes in same area 2020-01-31 20:41:51 +01:00
Yazeed Al Oyoun 907a61152c added rounding to Tot Profit % on Sell Reasosn table to be consistent with other percentiles on table. 2020-01-31 04:53:37 +01: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