Commit Graph

511 Commits

Author SHA1 Message Date
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
Matthias 2b37c1ff0e Merge branch 'develop' into ujson-loader 2018-08-12 13:11:40 +02:00
Matthias 7d72e364aa Remove broken ujson loading - replace with variable-based fix 2018-08-12 13:08:10 +02:00
Matthias a852d2ff32 default since_ms to 30 days if no timerange is given 2018-08-10 11:15:02 +02:00
Matthias a107c4c7b4 Download using asyncio 2018-08-10 11:08:28 +02:00
Matthias 74d6816a1a Fix some comments 2018-08-10 11:00:07 +02:00
Janne Sinivirta 3a5b435dfa
Merge pull request #1089 from freqtrade/feat/backtest_multi_strat
Allow multi strategy backtest without data reload
2018-08-02 12:35:47 +03:00
creslin a741f1144a missing __init__.py 2018-08-02 08:58:04 +00:00
Matthias 40ee86b357 Adapt after rebase 2018-07-31 21:08:03 +02:00
Matthias 76fbb89a03 use print for backtest results to avoid odd newline-handling 2018-07-31 21:04:03 +02:00
Matthias c648e2acfc Adjust documentation to strategy table 2018-07-31 21:04:03 +02:00
Matthias 028589abd2 Add strategy summary table 2018-07-31 21:04:03 +02:00
Matthias 5125076f5d Fix typo 2018-07-31 21:04:03 +02:00
Matthias a57a2f4a75 Store backtest-result in different vars 2018-07-31 21:04:03 +02:00
Matthias bd3563df67 Add test for new functionality 2018-07-31 21:04:03 +02:00
Matthias 644f729aea Refactor strategy loading to __init__ 2018-07-31 21:04:03 +02:00
Matthias 5f2e92ec5c Refactor backtesting 2018-07-31 21:04:03 +02:00
Matthias 65aaa3dffd Extract backtest strategy setting 2018-07-31 21:04:03 +02:00
Matthias 56046b3cb3 Add strategylist option to backtesting 2018-07-31 21:04:03 +02:00
Matthias 787d6042de Switch from pair(str) to metadata(dict) 2018-07-29 20:56:23 +02:00
Matthias 5fbce13830 update hyperopt to use new methods 2018-07-29 20:55:40 +02:00
Matthias 98665dcef4 revert inadvertent wihtespace changes 2018-07-29 20:55:37 +02:00
Matthias df8700ead0 Adapt after merge from develop 2018-07-29 20:55:37 +02:00
Gert Wohlgemuth 0dcaa82c3b fixed test? 2018-07-29 20:55:06 +02:00
Gert Wohlgemuth 3dd7d209e9 more test fixes 2018-07-29 20:55:06 +02:00
Gert Wohlgemuth abc55a6e6b fixing? hyperopt 2018-07-29 20:55:06 +02:00
xmatthias 2e6e5029ba fix mypy and tests 2018-07-29 20:55:06 +02:00
Matthias 7f27beff4b
Revert "backtesting: try to load data with ujson if it exists" 2018-07-29 13:23:11 +02:00
Samuel Husso cb2fff8909 mypy doesn't handle common idiomacy so disable the line (see the open issue more details) 2018-07-28 22:06:26 +03:00
Samuel Husso cdd8cc551c backtesting: try to load data with ujson if it exists 2018-07-28 21:56:11 +03:00
Janne Sinivirta 4b38c8b11d use pandas own min and max for column sorting 2018-07-25 17:04:25 +03:00
Janne Sinivirta 0b3190552e
Merge pull request #1018 from freqtrade/feat/sell_reason
Record sell reason
2018-07-24 09:09:45 +03:00
Matthias 4fb9823cfb fix rebase problem 2018-07-19 19:50:06 +02:00
Matthias 760c79c5e9 Use `.center()` to output trades header line 2018-07-19 19:39:08 +02:00
Matthias a452864b41 Use namedtuple for sell_return 2018-07-19 19:39:08 +02:00
Matthias 506aa0e3d3 Add print_sales table and test 2018-07-19 19:34:14 +02:00
Matthias 2a61629014 Export sell_reason from backtest 2018-07-19 19:29:31 +02:00
Matthias cbffd3650b add sell_reason to backtesting 2018-07-19 19:29:31 +02:00
Janne Sinivirta 0cc1b66ae7
Merge pull request #1037 from freqtrade/fix/backtest-comment
replace --realistic with 2 separate flags
2018-07-19 17:33:19 +03:00
Janne Sinivirta 6070d819b8
Merge pull request #1040 from freqtrade/xmatthias_backtest_duration
Fix backtest duration calculation
2018-07-19 17:32:11 +03:00
Matthias 8f254031c6 Add short form for parameters, change default for hyperopt 2018-07-19 13:19:36 +02:00
Matthias aa69177436 Properly check emptyness and adjust floatfmt 2018-07-19 13:14:21 +02:00
Matthias 79b1030435 output duration in a more readable way 2018-07-18 20:08:55 +02:00
Matthias f9f6a3bd04
cast to int to keep exports constant 2018-07-18 09:29:51 +02:00
Matthias 8e4d2abd4e
Fix typo 2018-07-18 09:10:17 +02:00
Matthias 08237abe20
Fix wrong backtest duration
identified in #1038
2018-07-18 09:06:12 +02:00
Matthias c82276ecbe add --disable-max-market-positions 2018-07-17 21:05:03 +02:00
Matthias e17618407b Rename --realistic-simulation to --enable-position-stacking 2018-07-17 20:26:59 +02:00
Janne Sinivirta aeb4102bcb refactor Analyze class methods to base Strategy class 2018-07-16 08:23:39 +03:00
Janne Sinivirta 85e6c9585a remove pass-through methods from Analyze 2018-07-16 08:23:39 +03:00
Janne Sinivirta a74147c472 move strategy initialization outside Analyze 2018-07-16 08:23:39 +03:00
Matthias 06c9494a46
add missing s to Backtest cum results 2018-07-11 14:50:04 +02:00
Janne Sinivirta aa2366346a
Merge pull request #1001 from xmatthias/feat/backtest_cum_profit
Add cumulative profit to backtest result table
2018-07-11 07:21:28 +03:00
Matthias 8b06000f0f Use open-rates for backtesting 2018-07-08 20:03:11 +02:00
Matthias efaa8f16e7 Improve formattiong of table 2018-07-08 20:01:33 +02:00
Matthias 1a24afef77 add cumsum to backtest-results 2018-07-08 19:55:04 +02:00
Samuel Husso 7dca3c6d03 freqtradebot,main,hyperopt: fstrings in use 2018-07-05 10:11:29 -05:00
Samuel Husso 03c112a601 config, optimize: fstrings in use 2018-07-05 10:11:29 -05:00
Samuel Husso d8d0579c5a
Merge pull request #930 from freqtrade/skopt
Replace Hyperopt with scikit-optimize
2018-07-04 13:51:14 -05:00
Janne Sinivirta bf4d0a9b70 sort imports 2018-07-04 10:31:35 +03:00
Janne Sinivirta 96bb2efe69 use joblib.dump and load for trials 2018-07-03 23:08:29 +03:00
Janne Sinivirta c4a8435e00 change pickle file name to better suit it's current purpose 2018-07-03 22:17:43 +03:00
Janne Sinivirta 3a7056ea1b run at least one epoch 2018-07-03 21:55:22 +03:00
Janne Sinivirta 2cde540645 remove dead code 2018-07-03 21:50:45 +03:00
Janne Sinivirta ef59f9ad24 sort imports in hyperopt.py 2018-07-03 21:50:24 +03:00
Janne Sinivirta ee4754cfb9 avoid re-serialization of whole dataframe 2018-07-03 14:49:58 +03:00
Janne Sinivirta 2713fdb860 use cpu count explicitly in job count 2018-07-03 11:46:56 +03:00
Janne Sinivirta 79aab4cce2 use fstring 2018-07-03 11:44:54 +03:00
Janne Sinivirta fa8fc3e4ce handle the case where we have zero buys 2018-07-02 11:46:55 +03:00
Janne Sinivirta aec3f582e1 Merge branch 'develop' into skopt 2018-07-02 11:27:27 +03:00
Janne Sinivirta 0ce08932ed mypy fixes 2018-06-30 09:54:31 +03:00
Michael Egger 6dd5f85fb6
Merge pull request #954 from freqtrade/feat/allow_backtest_plot
allow backtest ploting
2018-06-29 19:44:06 +02:00
Janne Sinivirta 0bddc58ec4 extract loading previous results to a method 2018-06-25 11:38:14 +03:00
xmatthias e70cb963f7 document what to do with exported backtest results 2018-06-24 17:00:00 +02:00
Janne Sinivirta 118a43cbb8 fixing tests for hyperopt 2018-06-24 15:27:53 +03:00
Anton f82b809fcf Merge with develop 2018-06-23 16:50:27 +03:00
Janne Sinivirta 642ad02316 remove unused import 2018-06-23 15:56:38 +03:00
Janne Sinivirta ab9e2fcea0 fix guard names to match search space 2018-06-23 15:47:19 +03:00
Janne Sinivirta 136456afc0 add three triggers to hyperopting 2018-06-23 15:44:51 +03:00
xmatthias 0440a19171 export open/close rate for backtesting too
preparation to allow plotting of backtest results
2018-06-23 14:19:50 +02:00
Janne Sinivirta e8f2e6956d to avoid pickle problems, get rid of reference to exchange after initialization 2018-06-23 14:37:36 +03:00
Janne Sinivirta a525cba8e9 switch signal handler to try catch. fix pickling and formatting output 2018-06-23 14:37:36 +03:00
Janne Sinivirta 8272120c3a convert stoploss and ROI search spaces to skopt format 2018-06-23 14:37:36 +03:00