Commit Graph

1493 Commits

Author SHA1 Message Date
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
Matthias
f347e5934a Small adjustments for moved commands 2020-01-26 13:46:01 +01:00
Matthias
e033df6a2f Move optimize_commands to commands module 2020-01-26 13:46:01 +01:00
Matthias
6e85280467 Adjust imports 2020-01-26 13:46:01 +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
7d2d0235a0 Fix typo in sell-reason table generation 2020-01-22 06:08:34 +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
785cd2a640 Rename test module 2020-01-09 06:53:51 +01:00
Matthias
c475729c13 Extract edge reporting to optimize_reports 2020-01-09 06:52:34 +01:00
Matthias
989ab646a9 Add profit % to sell_reason table 2020-01-09 06:46:39 +01:00
Matthias
a9fbad0741 Improve docstrings 2020-01-02 09:37:54 +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
2537b8cb0c
Merge pull request #2725 from freqtrade/minor_fix
[Minor] Edge-cli should use exchangeresolver
2019-12-30 19:27:40 +01:00
Matthias
1ffda29fd2 Adjust improts to new exception location 2019-12-30 15:02:17 +01:00
Matthias
fb3a53b8af Use ExchangeResolver for edge_cli too 2019-12-30 14:28:34 +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
6d5aca4f32 Convert hyperoptloss resolver to static loader 2019-12-23 10:09:08 +01:00
Matthias
248ef5a0ea Convert HyperoptResolver to static loader 2019-12-23 10:06:19 +01:00
Matthias
560acb7cea Convert ExchangeResolver to static loader class 2019-12-23 10:03:18 +01:00
Matthias
fc5764f9df Edge small cleanup 2019-12-19 19:55:21 +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
hroff-1902
e26f563f4b
Merge pull request #2655 from freqtrade/avoid_keyerror_backtest
Use first pair of pairlist to get fee
2019-12-14 23:10:40 +03:00
Matthias
2f7181e236
Merge pull request #2648 from hroff-1902/hyperopt-random-state
Seed hyperopt random_state if not passed
2019-12-14 15:54:59 +01:00
hroff-1902
f2266ea9f4
Use shorter range for seeded random-state 2019-12-14 15:17:45 +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
703924d6c4
Merge pull request #2643 from freqtrade/mins
Remove min (plural) from codebase
2019-12-12 14:27:39 +01:00
hroff-1902
6e778ad710 Seed hyperopt random_state if not passed 2019-12-12 03:12:28 +03:00
Matthias
f44e3dc319
Merge pull request #2642 from hroff-1902/fix-hyperopt-trailing
Fix generation of hyperopt trailing params
2019-12-11 19:53:42 +01:00
Matthias
7c7ca1cb90 Remove min (plural) from codebase 2019-12-11 07:12:37 +01:00
Matthias
b2a9b87be3
Merge pull request #2632 from freqtrade/dependabot/pip/develop/scikit-learn-0.22
Bump scikit-learn from 0.21.3 to 0.22
2019-12-10 16:20:39 +01:00
Matthias
3f9f29ba4e Fix Flake8 import error 2019-12-10 16:10:51 +01:00
hroff-1902
3448f86263 Suppress scikit-learn FutureWarnings from skopt imports 2019-12-10 15:46:29 +03:00
hroff-1902
641e3fdf7a Fix generation of hyperopt trailing params 2019-12-10 03:32:43 +03:00
hroff-1902
0e4ef33d6a
Merge pull request #2581 from hroff-1902/hyperopt-list
Add hyperopt-list and hyperopt-show commands
2019-12-10 00:30:26 +03: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
hroff-1902
d21ae4edd3 Add fixes for comments in the review 2019-12-05 23:29:31 +03:00
Matthias
4b0a4c936a Fix hyperopt with ticker_interval from strategy 2019-12-05 20:31:02 +01:00
hroff-1902
b61f43835d Make flake happy 2019-12-05 01:11:06 +03:00
hroff-1902
017a94adc1 Merge develop 2019-12-05 01:08:38 +03:00
hroff-1902
54694dd3a4 Manual merge of some conflicts in hyperopt 2019-12-04 23:14:47 +03:00
hroff-1902
668d42447f Refactor log_trials_result() 2019-12-01 16:15:00 +03:00
hroff-1902
69b0767165 Merge remote-tracking branch 'upstream/develop' into hyperopt-trailing-space 2019-12-01 03:28:23 +03:00
hroff-1902
a88bfa8ded Fix: trailing_stop_positive should be positive 2019-12-01 02:27:17 +03:00
hroff-1902
8f9b5095b5 Fix some tests 2019-11-27 22:52:43 +03:00
hroff-1902
8e7512161a Add hyperopt-list and hyperopt-show commands 2019-11-26 15:01:42 +03: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
hroff-1902
067267f4cf Log messages improved (plural/singular) 2019-11-23 12:20:41 +03:00
hroff-1902
737c07c5b6 Make mypy happy 2019-11-23 11:51:52 +03:00
hroff-1902
097cdcb57a Save epochs at intermediate points 2019-11-23 11:32:33 +03:00
hroff-1902
e7ddd81251
Merge branch 'develop' into hyperopt-trailing-space 2019-11-23 03:42:58 +03:00
Matthias
9b050523e9
Merge pull request #2397 from freqtrade/feat/new_args_system
require subcommand for all actions
2019-11-14 06:28:42 +01:00
Matthias
5b62ad876e Remove hyperopts occurances 2019-11-13 09:39:00 +01:00
Matthias
c449e39280 Replace more occurances of ticker_interval 2019-11-12 15:13:06 +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
hroff-1902
31ab32f0b9 Always set trailing_stop=True with 'trailing' hyperspace 2019-11-08 12:47:28 +03:00
hroff-1902
f90676cfc5 Add trailing stoploss hyperspace 2019-11-08 03:07:43 +03:00
Matthias
ca77dbe8da Fix UnicodeError in hyperopt output 2019-11-06 19:33:15 +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
861f10dca6 Allow populate-indicators to come from strategy 2019-11-02 11:10:33 +01:00
Matthias
132a4da7cf Small style fixes and adjusted tests 2019-10-27 10:56:38 +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
4ec83a2c24 DefaultHyperOpts --> DefaultHyperOpt; hyperopts --> hyperopt where it's not correct 2019-10-18 23:29:19 +03:00
Matthias
85c4546333
Merge pull request #2343 from hroff-1902/move-experimental
Move experimental settings to ask_strategy
2019-10-10 16:08:11 +02: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
hroff-1902
9b23376415 Move experimental settings to ask_strategy 2019-10-05 13:29:59 +03: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
ed10048394
Merge pull request #2308 from hroff-1902/hyperopt-config
Allow use of config in custom hyperopt methods
2019-09-28 10:36:46 +02:00
hroff-1902
4ac53f1549 Shorten the default hyperopt stoploss space 2019-09-28 04:13:53 +03:00
hroff-1902
9db915853a Allow use of config in custom hyperopt methods 2019-09-26 11:59:21 +03:00
Matthias
5237723f22
Merge pull request #2303 from freqtrade/feat/hyperopt_optional_install
Optional hyperopt dependency installation
2019-09-26 09:42:16 +02:00
Matthias
b994f5c273
Merge pull request #2294 from hroff-1902/fix-skopt-memory3
Fix skopt memory exhaustion
2019-09-25 19:55:27 +02:00
Matthias
27cc73f47e Dynamically import hyperopt modules 2019-09-25 11:40:34 +02:00
hroff-1902
665e0570ae Fix hyperopt position stacking 2019-09-25 03:41:22 +03:00
hroff-1902
6ffb8b7a70 Fix wordings in comment 2019-09-23 13:25:31 +03:00
hroff-1902
0c6164df7e Fix memory exhaustion in skopt models list 2019-09-23 13:03:43 +03:00
Matthias
313091eb1c some more refresh_pairs cleanups 2019-09-20 20:22:51 +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
5cbc073dd1 minor: Cleanup hyperopt 2019-09-16 21:46:15 +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
Matthias
e6ccc1427c have Arguments return a dict instead of Namespace 2019-09-12 20:16:39 +02: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
hroff-1902
3d028f512e
Merge pull request #2235 from hroff-1902/eliminate_import_strategy
Allow --strategy for hyperopt
2019-09-08 12:23:48 +03:00
hroff-1902
2b00a5d90a Get rid of import_strategy() 2019-09-08 02:43:02 +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
2e49125e87
Merge branch 'develop' into hyperopt-simplified-interface 2019-09-06 15:11:06 +03:00
Matthias
7af445adf3
Merge pull request #2137 from hroff-1902/hyperopt-adaptive-roi-space
Hyperopt: adaptive roi_space
2019-09-06 06:26:52 +02:00
hroff-1902
9a6a89c238 allow simplified hyperopt interface 2019-09-03 19:54:28 +03: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
513e84880e Don't escape ticks where it's not needed 2019-08-25 20:38:51 +02:00
hroff-1902
067208bc9d make backtesting an attribute of Hyperopt 2019-08-24 00:10:35 +03:00
Matthias
91b0394433
Merge pull request #2156 from freqtrade/remove_live
Remove deprecated option live  - deprecate -r
2019-08-22 15:33:39 +02:00
Matthias
aaeeb9c0c6 Merge branch 'develop' into align_userdata 2019-08-21 19:41:10 +02:00
hroff-1902
fcb0ff1b60 do not round values in the debug message 2019-08-20 23:42:44 +03:00
hroff-1902
17b3f01b28
Merge branch 'develop' into hyperopt-adaptive-roi-space 2019-08-20 23:00:23 +03:00
hroff-1902
cadf573170 round printed stoploss value as well 2019-08-20 22:24:59 +03:00
hroff-1902
a12876da92 fine printing for floats in the roi tables (round to 5 digits after the decimal point) 2019-08-20 22:17:21 +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
0a478bc0dc Merge branch 'develop' into align_userdata 2019-08-18 15:00:12 +02:00
Matthias
09286d4918 file_dump_json accepts Path - so we should feed it that 2019-08-16 13:04:48 +02:00
hroff-1902
e525275d10 make flake and mypy happy 2019-08-15 23:13:46 +03:00
hroff-1902
4fa92ec0fa hyperopt: --print-json option added 2019-08-15 21:39:04 +03:00
hroff-1902
5b9711c002 adaptive roi_space 2019-08-14 13:25:49 +03:00
Matthias
51c3a31bb5 Correct imports and calls to parse_timerange 2019-08-14 10:07:32 +02:00
Matthias
c0784b7c33
Merge pull request #2089 from hroff-1902/hyperopt-print-colorized
Hyperopt print colorized results
2019-08-13 19:36:06 +02:00
hroff-1902
8f92912852 final colorization schema
colorization schema-2: red, green, bright/dim

colorization schema-3: red, green, bright only green bests

colorization schema-4: no red, green for profit, bright for bests
2019-08-12 21:08:52 +03:00
hroff-1902
e5dcd520ba cosmetics in sample_hyperopt and default_hyperopt 2019-08-12 02:19:50 +03:00
Matthias
2c5a499a8b Merge branch 'develop' into align_userdata 2019-08-10 20:15:07 +02:00
Matthias
74e583a612
Merge pull request #2094 from hroff-1902/hyperopt-roi-stoploss
Simplify custom hyperopts -- no need to copy ugly methods in every custom implementation
2019-08-10 15:49:52 +02:00
hroff-1902
ae39f6fba5 use of termcolor eliminated 2019-08-09 14:51:03 +03:00
Cedric Schmeits
8ad5afd3a1
As -sharp_ratio is returned the value should be nagative.
This leads in a high positive result of the loss function, as it is a minimal optimizer
2019-08-08 22:10:51 +02:00
hroff-1902
0d4a2c6c3a advanced sample hyperopt added; changes to helpstrings 2019-08-08 22:51:37 +03: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
Matthias
7e91a0f4a8 Fail gracefully if ticker-interval is not set 2019-08-06 06:45:44 +02:00
Matthias
bc2e920ae2 Adjust code to verify "current" candle for buy/sells 2019-08-05 20:07:29 +02:00
hroff-1902
c6444a10a8 move roi_space, stoploss_space, generate_roi_table to IHyperOpt 2019-08-05 18:07:25 +03:00
Matthias
383b24ab84 Merge branch 'develop' into align_userdata 2019-08-05 06:55:51 +02:00
hroff-1902
9cbab35de0 colorization by means of termcolor and colorama 2019-08-04 22:54:19 +03:00
hroff-1902
f200f52a16 hyperopt print colorized results 2019-08-03 19:09:42 +03:00
hroff-1902
13620df717 'with values:' line removed 2019-08-03 11:05:05 +03:00
hroff-1902
3b65c986ee wordings fixed 2019-08-03 10:20:20 +03:00
hroff-1902
aa8f44f68c improvements to hyperopt output 2019-08-02 22:22:58 +03:00
Matthias
39e8e507d9 Merge branch 'develop' into align_userdata 2019-08-02 20:08:26 +02:00
hroff-1902
065ebd39ef cleanup in hyperopt 2019-08-01 23:57:26 +03:00
Matthias
bcccdda7c0 Merge branch 'develop' into align_userdata 2019-08-01 19:33:45 +02:00
Matthias
8cef567abc create and use hyperopt-results folder 2019-07-31 07:10:17 +02:00
hroff-1902
8f1f416a52 hyperopt cleanup and output improvements 2019-07-30 11:47:28 +03:00
Matthias
2c7a248307 Use user_data_dir in hyperopt 2019-07-28 14:57:05 +02:00
Matthias
0a253d66d0 Remove os.path from hyperopt 2019-07-28 14:57:05 +02:00
hroff-1902
e9b77298a7 max() removed 2019-07-25 08:17:41 +03:00
hroff-1902
0c2c094db6 minor: add OnlyProfitHyperOptLoss 2019-07-23 18:51:24 +03:00
Matthias
639a4d5cf7 Allow importing interface from hyperopt.py 2019-07-17 07:15:43 +02:00
Matthias
0e500de1a0 Add sample loss and improve docstring 2019-07-17 06:32:24 +02:00
Matthias
8ccfc0f316 Remove unused variables 2019-07-17 06:24:40 +02:00
Matthias
ec49b22af3 Add sharpe ratio hyperopt loss 2019-07-16 06:45:13 +02:00
Matthias
d23179e25c Update hyperopt-loss to use resolver 2019-07-16 06:27:43 +02:00
Matthias
7d62bb8c53 Revert --clean argument to --continue 2019-07-16 05:51:26 +02:00
Matthias
07a1c48e8c Fix wrong intendation for custom-hyperopt check 2019-07-15 23:14:07 +02:00
Matthias
7be25313a5 Add some mypy ignores 2019-07-15 22:59:28 +02:00
Matthias
55e8092cbf Add sharpe ratio as loss function 2019-07-15 22:52:33 +02:00
Matthias
e5170582de Adapt tests to new loss-function method 2019-07-15 22:45:14 +02:00
Matthias
710443d200 Add documentation for custom hyperopt 2019-07-15 21:38:49 +02:00
Matthias
2a20423be6 Allow loading custom hyperopt loss functions 2019-07-15 21:35:42 +02:00
Matthias
2fedae6060 Move unnecessary things out of generate_optimizer 2019-07-15 20:31:55 +02:00
Matthias
b1b4048f97 Add test for hyperopt 2019-07-15 20:28:02 +02:00
Matthias
107f00ff8f Add hyperopt option to clean temporary pickle files 2019-07-15 20:17:15 +02:00
Matthias
5144e98a82
Merge pull request #2015 from hroff-1902/refactor/config2
Make configuration a module
2019-07-15 19:41:57 +02:00
Matthias
cbe25178d7
Merge pull request #2009 from hroff-1902/fix-2008
fix #2008
2019-07-15 10:55:33 +02:00
hroff-1902
65f77306d3 using logger.debug, info was too noisy 2019-07-14 21:00:48 +03:00
hroff-1902
efbc7cccb1 enable --dmmp for hyperopt 2019-07-14 20:56:17 +03:00
hroff-1902
1bdffcc73b make configuration a sep. module, including arguments 2019-07-12 00:49:23 +03:00
hroff-1902
e993e010f4 Fix #2013 2019-07-11 23:02:57 +03:00
hroff-1902
c474e2ac86 fix #2008 2019-07-10 01:53:40 +03:00
Matthias
700bc087d3
Merge pull request #1952 from hroff-1902/fix/1948
Fix #1948
2019-06-27 19:36:06 +02:00
hroff-1902
e5a8030dd7 comment added 2019-06-27 16:42:10 +03:00
Matthias
a07653a6cc Merge branch 'develop' into fix/validate_dataframe 2019-06-24 06:21:08 +02:00
hroff-1902
7fbdf36c64 avoid code duplication while selecting min_roi entries 2019-06-23 19:23:51 +03:00
Matthias
4cbcb5f36f Move .title to ExchangeResolver (it does not make sense to do this over
and over again)
2019-06-22 16:52:14 +02:00
Matthias
7a0d86660e Mypy type errors 2019-06-21 07:10:30 +02:00
hroff-1902
813c008af2 setup_configuration() cleanup 2019-06-16 21:37:43 +03:00
Matthias
89ff614e1d Add pair as parameter, and warn when fillup was necessary 2019-06-15 13:46:19 +02:00
Matthias
55079831a1 Don't explicitly validate backtest data (it's done while loading now). 2019-06-15 13:45:50 +02:00
Misagh
ad9dc349e4 edge cli should override stake_amount 2019-06-15 12:20:32 +02:00
Matthias
1afe6c1437 Don't run validation per strategy, it's only eneded once 2019-06-14 19:37:54 +02:00
Matthias
4dc3a0ca1d Small cleanup to reduce dict lookups during backtesting/hyperopt 2019-06-10 16:20:19 +02:00
hroff-1902
90b0f1daa8 minor optimize cleanup 2019-06-10 02:08:54 +03:00
Matthias
c2f6897d8b Move download of live data to load_data
Avoids code duplication in backtesting and plot_dataframe
2019-05-29 20:20:20 +02:00
Matthias
55bdd26439 Edgecli -> Edge for Runmode and start_edge() 2019-05-28 19:25:01 +02:00
Matthias
104f1212e6 Move edge_cli_start to optimize 2019-05-25 20:06:15 +02:00
Matthias
236c392d28 Don't load hyperopts / optimize dependency tree if that module is not
used
2019-05-25 20:00:31 +02:00
Matthias
b38c43141c Adjust imports to new location 2019-05-25 16:53:35 +02:00
Matthias
9225cdea8a Move validate_backtest_data and get_timeframe to histoyr 2019-05-25 16:51:52 +02:00
hroff-1902
c3e93e7593 fix reduce() TypeError in hyperopts 2019-05-24 23:08:56 +03:00
hroff-1902
406e266bb4 typo in comment fixed 2019-05-22 14:34:35 +03:00
hroff-1902
2c9a519c5e edge: handle properly the 'No trades' case 2019-05-22 14:21:36 +03:00
hroff-1902
8b95e12468 log message adjusted in backtesting and hyperopt 2019-05-15 12:05:35 +03:00
hroff-1902
5677c4882e minor: add ticker data validation; log backtesting interval 2019-05-13 23:56:59 +03:00
hroff-1902
00b4501c59 avg profit and total profit corrected (to be %, not ratio); comments cleaned up a bit; typo in the log msg fixed 2019-05-12 21:14:00 +03:00
hroff-1902
0f43e0bb7d minor hyperopt output improvements 2019-05-10 10:54:44 +03:00
hroff-1902
e7b81e4d46 hyperopt --min-trades parameter 2019-05-01 15:27:58 +03:00
hroff-1902
ea44bbff9f prevent hyperopt from running simultaneously 2019-04-25 11:11:04 +03:00
Matthias
bf56e25404
Merge pull request #1746 from hroff-1902/json-defaults
Support for defaults in json schema
2019-04-24 12:20:39 +02:00
Matthias
d16ccd7e37 Merge branch 'develop' into json-defaults 2019-04-24 09:51:04 +02:00
hroff-1902
6a0f527e0e
merge --job-workers and commit printing debug log messages with the opt state 2019-04-24 10:35:04 +03:00
hroff-1902
2898067318
Merge branch 'develop' into hyperopt-jobs 2019-04-24 10:31:03 +03:00
hroff-1902
fc4ef2b430
Merge branch 'develop' into hyperopt-opt-params 2019-04-23 21:58:27 +03:00
hroff-1902
e3b0474901
Merge branch 'develop' into hyperopt-jobs 2019-04-23 21:34:38 +03:00
hroff-1902
cc9f899cd6 removed explicit dependency on multiprocessing module 2019-04-23 21:25:36 +03:00
hroff-1902
a022b1a6c1 --random-state for optimzer to get reproducible results added 2019-04-23 21:18:52 +03:00
Matthias
4971b9fc39
Merge pull request #1793 from hroff-1902/hyperopt-debug-state
hyperopt: print optimizer state in debug log messages
2019-04-23 20:11:04 +02:00
hroff-1902
3e3fce5f38 print optimizer state in debug log messages 2019-04-23 09:49:24 +03:00
hroff-1902
7c8e26c717 -j/--job-workers option added for controlling the number of joblib parallel worker processes used in hyperopt
docs refreshed
2019-04-23 00:52:07 +03:00
hroff-1902
ad85ac3dde make --refresh-pairs-cached common option for optimization; added support for it into hyperopt 2019-04-22 21:24:45 +03:00
hroff-1902
6b87d94bb0 --print-all command line option added for hyperopt 2019-04-22 01:10:01 +03:00
hroff-1902
9fbe573cca limit usage of ccxt to freqtrade/exchange only 2019-04-09 12:27:35 +03:00
hroff-1902
4559a38172 PoC: use defaults in json schema for some exchange options 2019-04-08 04:42:28 +03:00
hroff-1902
8cb1024ff6
Merge branch 'develop' into ccxt-parse_timeframe 2019-04-05 23:16:27 +03:00
Misagh
9dc2a30793
Merge pull request #1683 from gianlup/fix_bt_partial_data
Fix backtest problem with partial data
2019-04-05 07:28:57 +02:00
Matthias
7010c835d2 Improve commentign 2019-04-04 20:23:10 +02:00
hroff-1902
2aa1b43f01 get rid of TICKER_INTERVAL_MINUTES dict, use ccxt's parse_timeframe() instead 2019-04-04 20:56:40 +03:00
Matthias
32cbb714f9 Improve commenting on backtsting and backtest_multi_tst 2019-04-04 19:44:03 +02:00
Matthias
0307ba7883 Remove one branch - python does lazy evaluation 2019-04-03 20:04:04 +02:00
Matthias
e085fd9e95 Disable dataprovider from hyperopt.
Dataprovider uses weak links to initialize, which cannot be pickled, and
therefore cannot be used during hyperopt.
2019-03-25 19:49:58 +01:00
Matthias
0ae81d4115 Provide dataprovider access during backtesting 2019-03-25 19:26:51 +01:00
Matthias
00e6749d8b Refactor backtest() to be a bit more concise 2019-03-23 15:00:07 +01:00
Gianluca Puglia
6b89e86a97 Removed Timestamp cast 2019-03-20 19:44:59 +01:00
Gianluca Puglia
0eff324ce0 Use dedicated index for every pair 2019-03-20 18:38:10 +01:00
Matthias
e67ffd2d87 Fix issue that backtest is broken when stoploss_on_exchange is on 2019-03-06 19:55:34 +01:00
Matthias
02d13645b0 Merge branch 'develop' into feat/dataprovider 2019-01-26 19:29:41 +01:00
Matthias
3afe54790e
Merge pull request #1510 from gianlup/add_totprofit_to_bt
Added total profit column to backtest result
2019-01-25 06:38:39 +01:00
Matthias
d136cac181 Merge branch 'develop' into feat/dataprovider 2019-01-23 21:01:19 +01:00
Gianluca Puglia
896c9d34fd Added total profit column do backtest result 2019-01-22 22:41:53 +01:00
Matthias
13e2f71d30 Add flake8 plugins and implement small improvements 2019-01-22 20:01:12 +01:00
Matthias
0aa0b1d4fe Store tickers by pair / ticker_interval 2019-01-22 07:07:15 +01:00
Matthias
a206777fe5 Rename refresh_tickers to refresh_latest_ohlcv 2019-01-22 07:05:09 +01:00
Matthias
1340b71633 Add RunMode setting to determine bot state 2019-01-22 07:04:19 +01:00
Matthias
a2c01916e1 Add type-ignores to floatfmt
tabulate supports this:
30554300d7/tabulate.py (tabulate.py-1291):1294
2019-01-17 20:28:21 +01:00
Matthias
cd2bccd441 Have backtest use the same logic to get the ROI entry 2019-01-12 13:45:43 +01:00
Matthias
40b1d8f067 Fix CI problems 2019-01-06 14:57:14 +01:00
Matthias
dd2af86a41 pprint results 2019-01-06 14:47:38 +01:00
Matthias
167088827a include default buy/sell trends for the hyperopt strategy 2019-01-06 14:13:15 +01:00
Matthias
a0df7b9d7c Use sell/buy trends from hyperopt file if available 2019-01-06 14:12:55 +01:00
Matthias
2147bd8847 Fix problem when no experimental dict is available 2019-01-06 13:29:14 +01:00
Matthias
798ae460d8 Add check if trigger is in parameters 2019-01-06 13:29:14 +01:00
Matthias
68ba1e1f37 Add sell signal hyperopt 2019-01-06 13:29:14 +01:00
Misagh
26a77e193e
Merge pull request #1454 from freqtrade/feat/interpolate_missing
interpolate missing candles
2019-01-04 22:33:53 +01:00
Matthias
2bc76771bf Align backtest to interface.py
interface.py roi calculation skips on <= duration
the correct selection is therefore trade_duration > x.
2019-01-01 16:50:10 +01:00
Matthias
fae875f588 Implement missing_data_fillup to tests and operations 2018-12-31 19:15:49 +01:00
Matthias
8b9cc45f41 move test for data completeness
should be done before analyzing strategy
2018-12-31 15:09:50 +01:00
Matthias
429f846ad1 Switch load_data to kwargs 2018-12-15 20:31:05 +01:00
Matthias
6c02cc5993 Adjust test to pathlib 2018-12-15 14:14:38 +01:00
Matthias
21aba1620c Replace calls to load_data 2018-12-15 14:10:33 +01:00
Matthias
407139b0e0 remove unused imports 2018-12-14 06:32:49 +01:00
Matthias
432cc00283 Adjust imports to data.history 2018-12-14 06:32:49 +01:00
Matthias
1a3fcd4771 extract data-handling methods from optimize 2018-12-14 06:32:49 +01:00
Matthias
04c330f10b
Merge pull request #1404 from freqtrade/feat/pass_df
keep DF instead of list
2018-12-13 20:14:32 +01:00
Matthias
7e3955b04c Fix edge-cli comments (refer to edge, not backtest 2018-12-12 20:04:14 +01:00
Matthias
7a533de1a8 Use list ticker history for backtesting 2018-12-12 19:17:09 +01:00
Matthias
3ac2106a16
Merge pull request #1290 from freqtrade/fix/backtest_toomanyopen
fix backtesting not respecting max_open_trades
2018-11-30 19:17:09 +01:00
Matthias
cc7b820978 Move hyperoptresolver to resolvers package 2018-11-24 20:14:08 +01:00
Matthias
21a093bcdb extract resolvers to IResolvers and it's own package 2018-11-24 20:00:02 +01:00
Matthias
805f509498 Merge branch 'develop' into fix/backtest_toomanyopen 2018-11-24 10:39:16 +01:00
Matthias
64028647a0
Merge pull request #571 from stephendade/userhyper
Separated out custom hyperopts
2018-11-21 19:14:30 +01:00
Matthias
a3b6004115 IHyperopt: all methods static, somef ixes for mypy 2018-11-20 19:41:07 +01:00
Matthias
7757c53b06 Small fixes 2018-11-20 17:43:49 +01:00
Matthias
5dd013c3b1 Rename hyperopt interface and resolver 2018-11-20 17:40:45 +01:00
misagh
f666d1596b renaming edge to edge_cli for command line version 2018-11-15 10:31:56 +01:00
Matthias
4f800bfbc8 Fix pickling-error 2018-11-14 20:25:43 +01:00
misagh
ca22a116ad timerange added to args 2018-11-14 17:14:37 +01:00
misagh
5d73b303fe unnecessary libraries removed + arg help enriched 2018-11-14 16:49:16 +01:00
misagh
dd47d7adb4 cli blank line added to readability 2018-11-14 16:37:26 +01:00
misagh
b0e4aa8eff stop loss range added to args 2018-11-14 16:31:23 +01:00
misagh
36030176bb nb_trades and avg_trade_duration added to cli 2018-11-14 13:38:23 +01:00
misagh
5de3f1d9dd showing result in tabular 2018-11-14 13:25:44 +01:00
misagh
95cbbf1cb5 adding edge configuration to cli 2018-11-14 12:53:20 +01:00
misagh
cf974168e9 Edge cli drafted 2018-11-14 12:37:15 +01:00
Matthias
93429a58b2 remove TODO 2018-11-09 07:13:20 +01:00
Matthias
9cd2ed5a16 fix hyperopt get_timeframe mock 2018-11-09 07:13:20 +01:00
Matthias
66487f2a13 require start/end-date argument in backtest 2018-11-09 07:13:20 +01:00
Matthias
96efd12a31 add new options to hyperopt 2018-11-09 07:12:41 +01:00
Matthias
e94da7ca41 inverse backtest logic to loop over time - not pairs (more realistic) 2018-11-09 07:12:41 +01:00
Matthias
7b62e71f23 Fix some tests and rebase issues 2018-11-07 20:45:52 +01:00
Matthias
8044846d37 Fix some refactoring problems 2018-11-07 07:05:40 +01:00
Stephen Dade
477515c4b5 Now using resolver for custom hyperopts 2018-11-07 06:58:20 +01:00
Stephen Dade
e0f420983e Updated logger in custom_hyperopt 2018-11-07 06:55:28 +01:00
Stephen Dade
469db0d434 Decoupled custom hyperopts from hyperopt.py 2018-11-07 06:26:16 +01:00
Matthias
95d271ca5d Fix ROI close-rate calculation to work with fees - adjust tests 2018-11-01 13:14:59 +01:00
Matthias
8c93760a6d simplify some code 2018-10-30 20:23:31 +01:00
Matthias
f96f0cdea7 Add additional comment 2018-10-30 20:02:31 +01:00
Matthias
98050ff594 use all min_roi entries 2018-10-29 19:27:23 +01:00
Matthias
233c442af9 Adjust backtest so sell uses stop-loss or roi value as closerate 2018-10-29 19:27:23 +01:00
Matthias
db9a85f4a2
Merge pull request #1282 from freqtrade/feat/add_missingdata_warning
Show warning if part of backtest data is missing
2018-10-27 11:16:10 -04:00
Matthias
3c6d10f03e Print missing value count too 2018-10-18 20:05:57 +02:00
Matthias
bc356c4d65 Return true/false for validation function 2018-10-18 19:48:54 +02:00
Matthias
fb52d32296 Add validate_backtest_data function 2018-10-18 19:42:54 +02:00
Matthias
d7459bbbf3 refactor get_timeframe out of backtesting class 2018-10-17 19:59:33 +02:00
Matthias
8a3272e7c5 don't copy tickerdata_to_dataframe into backtesting
it's used only once, so this does not make sense and hides the origin of
the function
2018-10-17 19:47:19 +02:00
Matthias
631ba464f3 Show warning if part of backtest data is missing 2018-10-14 14:40:03 +02:00
Matthias
84622dc84b Move test for strategy out of constructor 2018-09-29 14:23:53 +02:00
Matthias
1b290ffb5d Update hyperopt to show errors if non-supported variables are used 2018-09-29 13:49:38 +02:00
Matthias
6e66763e5f Only load strategy once during backtesting 2018-09-27 19:23:55 +02:00
Matthias
567211e9f9 don't print "NAN" lines in "left_open_trades" 2018-09-20 20:35:26 +02:00
Matthias
54ddd908e6 Merge branch 'develop' into ccxt-async 2018-08-29 19:43:09 +02:00
Matthias
a077955efa update json.load to json_load - followup to #1142 2018-08-19 19:58:07 +02:00
Matthias
6d1c82a5fa Remove last refreence to get_candle_history 2018-08-19 19:50:14 +02:00