Commit Graph

433 Commits

Author SHA1 Message Date
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
Janne Sinivirta 8fee2e2409 move result logging out from optimizer 2018-06-23 14:37:36 +03:00
Janne Sinivirta c415014153 use multiple jobs in acq 2018-06-23 14:37:36 +03:00
Janne Sinivirta 964cbdc262 increase initial sampling points 2018-06-23 14:37:36 +03:00
Janne Sinivirta a46badd5c0 reuse pool workers 2018-06-23 14:37:36 +03:00
Janne Sinivirta 0cb1aedf5b problem with pickling 2018-06-23 14:37:36 +03:00
Janne Sinivirta b485e6e0ba start small 2018-06-23 14:37:36 +03:00
gcarq 78f50a1471 move logic from hyperopt to freqtrade.strategy 2018-06-23 14:37:36 +03:00
gcarq 5aae215c94 wrap strategies with HyperoptStrategy for module lookups with pickle 2018-06-23 14:37:36 +03:00
Janne Sinivirta a68c90c512 avoid calling exchange.get_fee inside loop 2018-06-23 14:37:36 +03:00
gcarq c40e6a12d1 move logic from hyperopt to freqtrade.strategy 2018-06-23 11:13:49 +02:00
gcarq 3360bf4001 wrap strategies with HyperoptStrategy for module lookups with pickle 2018-06-23 10:42:33 +02:00
Janne Sinivirta c73b9f5c77 avoid calling exchange.get_fee inside loop 2018-06-22 21:04:07 +03:00
xmatthias 251f7db3ca require exchange object to delete pairs 2018-06-17 23:38:07 +02:00
xmatthias 21edcbdc27 Refactor exchange to class 2018-06-17 23:38:07 +02:00
Anton ae94ab17f4 Merge branch 'develop' into feature-unlimited-stake_amount 2018-06-17 02:23:40 +03:00
Matthias a5511e2e30
Merge pull request #894 from freqtrade/feature/force_close_backtest
Display open trades after backtest period
2018-06-16 12:49:08 +02:00
Janne Sinivirta 0c85febe76 remove all mongodb related code 2018-06-16 09:09:28 +03:00
Janne Sinivirta c1f8f641e6 remove use of hyperopt_conf.py 2018-06-16 09:09:28 +03:00
xmatthias c0289ad844 use list comprehension to build list 2018-06-13 19:53:12 +02:00
xmatthias e600be4f56 Reduce force-sell verbosity 2018-06-13 19:44:00 +02:00
xmatthias 6357812743 fix backtest report able 2018-06-13 06:57:49 +02:00
xmatthias e3ced7c15e extract export from backtest function 2018-06-12 22:29:30 +02:00
xmatthias bfde33c945 Use timestamp() instead of strftime
this will avoid a bug shifting epoch time by 1 hour:
https://stackoverflow.com/questions/11743019/convert-python-datetime-to-epoch-with-strftime
2018-06-12 21:12:55 +02:00
xmatthias 335d1fbbbc Check if no backtest data is found and fail gracefully 2018-06-11 19:50:43 +02:00
Anton ce663f6af5 Merge with develop 2018-06-11 16:25:05 +03:00
xmatthias 12e455cbf5 add buy/sell index to backtest result 2018-06-10 20:52:42 +02:00
xmatthias 4710210cff fix hyperopt to use new backtesting result tuple 2018-06-10 13:56:10 +02:00
xmatthias 27ee8f7360 make flake happy 2018-06-10 13:55:48 +02:00
xmatthias 1cd7ac55a8 Added "left open trades" report 2018-06-10 13:45:16 +02:00
xmatthias b81588307f Add "open_at_end" parameter 2018-06-10 13:37:53 +02:00
xmatthias 31025216f9 fix type of open/close timestmap 2018-06-10 13:32:07 +02:00
xmatthias 322a528c12 fix bug with backtestResult 2018-06-10 13:25:16 +02:00
xmatthias 9c57d3aa8b add BacktestresultTuple 2018-06-10 13:15:46 +02:00
xmatthias c1b2e06eda simplify return from _get_sell_trade_entry 2018-06-10 09:07:04 +02:00
xmatthias 3094acc7fb update comment 2018-06-10 08:58:28 +02:00
xmatthias 24a875ed46 remove experimental parameters - they are read by analyze.py anyway 2018-06-09 21:44:57 +02:00
xmatthias 5623ea3ac6 Add forcesell at end of backtest period 2018-06-09 21:44:20 +02:00
xmatthias 8effc5f929 fix windows-specific init issue with named tuple 2018-06-08 19:46:07 +02:00
Anton b4138f29c8 Merge with develop 2018-06-08 00:29:44 +03:00
Janne Sinivirta b4ae5a36a8 use .copy() to avoid Pandas mistake. drop first row because of shifting 2018-06-07 17:29:40 +03:00
Janne Sinivirta 7f8e0ba25f use buy/sell signal from previous candle, not current to avoid seeing to the future 2018-06-07 17:28:40 +03:00
xmatthias f37c5b70ba Fix tests - read optional argument 2018-06-05 23:53:49 +02:00
xmatthias 7a34578b4d refactor timerange to named tuple 2018-06-05 23:34:26 +02:00
Anton 87f750da35 Merge with develop 2018-06-04 01:50:10 +03:00
xmatthias e3227a741c add --export-filename for backtesting 2018-06-03 19:36:53 +02:00
xmatthias 50fc5f91ca Merge branch 'develop' into mypy_typecheck 2018-06-03 10:35:56 +02:00
Janne Sinivirta a657e3d24a
Merge pull request #826 from gcarq/fix/hyperopt-stake_currency
Fix stake_currency returned by Hyperopt  …
2018-06-03 07:19:24 +03:00
Janne Sinivirta 2cd8782a88
Merge pull request #825 from gcarq/fix/hyperopt-in-progress
Fix the in-progress dot that does not show up during a Hyperopt run
2018-06-03 07:16:39 +03:00
Gerald Lonlas fe8ff1b929 Fix stake_currency return by Hyperopt
Hyperopt had BTC hard coded in the result. This commit  will display
the real stake_currency used.

If you used `"stake_currency": "USDT",` in your config file.
Before this commit you saw a message like:
"2 trades. Avg profit  0.13%. Total profit  0.00002651 BTC (0.0027Σ%). Avg duration 142.5 mins."

Now with the commit, we fix the wrong BTC currency:
"2 trades. Avg profit  0.13%. Total profit  0.00002651 USDT (0.0027Σ%). Avg duration 142.5 mins."
2018-06-02 14:07:31 -07:00
Gerald Lonlas 127cf5d619 Backtesting: Add the Interval required when data is missing
Change the message:
"No data for pair ETH/BTC, use --refresh-pairs-cached to download the data"
for:
"No data for pair: "ETH/BTC", Interval: 5m. Use --refresh-pairs-cached to download the data"

The message structure is unified with the download message:
"Download the pair: "ETH/BTC", Interval: 5m"
2018-06-02 13:55:05 -07:00
Gerald Lonlas dc65753a64 Fix the in-progress dot that does not show up during a Hyperopt run 2018-06-02 12:35:07 -07:00
Raymond Luo 2791d543ea Make backtesting report markdown shareable
Small tweak to make the backtesting report markdown ready and much easier to share reports on many markdown publishing tools and editors that already support Markdown Extra with just a copy and paste

Example:
![Example](https://i.imgur.com/HXlNkfm.png)
2018-06-02 19:52:16 +02:00
xmatthias f88729f0e8 add ignore comment 2018-06-02 14:14:28 +02:00
xmatthias 3447e4bb97 comment on ignore hint 2018-06-02 14:13:17 +02:00
xmatthias 0007002c80 fix test failure 2018-06-02 14:07:54 +02:00
xmatthias 0a595190a3 fix last typechecks 2018-06-02 13:59:35 +02:00
xmatthias d9e951447f remove _init function in backtesting (and according test) 2018-06-02 13:54:22 +02:00
xmatthias 4a322abd4d Typecheck improvements 2018-06-02 13:44:05 +02:00
Gerald Lonlas 792dd556a1 Fix wrong hint '--update-pairs-cached' from Backtesting/Hyperopt 2018-06-01 19:46:53 -07:00
xmatthias 3fb1dd02f1 add typehints and type: ignores 2018-05-31 22:00:46 +02:00
xmatthias 45909af7e0 type anotation fixes 2018-05-30 22:38:09 +02:00
Anton 3427c7eb54 Use constants 2018-05-25 17:04:08 +03:00
Anton 9be98cd8f7 Add ability to set unlimited stake_amount 2018-05-23 13:15:03 +03:00
Anton 8c22cfce37 Fix tests; fix codestyle 2018-05-21 23:15:01 +03:00
Anton e1cb0dbf28 Do not try to redownload pair data if --refresh-pairs-cached is not set 2018-05-21 22:31:08 +03:00
Anton 2bfce64e6a Fix conflicts 2018-05-04 13:38:51 +03:00
Anton ceeb98dda9 Fix conflicts 2018-05-03 11:16:29 +03:00
gcarq 306885e174 Merge branch 'develop' into feat/objectify-ccxt 2018-05-02 22:49:55 +02:00
Anton 24ab1b5be5 Fix review comments, documenation update 2018-05-01 00:27:05 +03:00
Anton a127e1db07 Fix case with empty dict 2018-04-28 01:40:48 +03:00
Anton 2267a420a4 Fix codestyle 2018-04-28 00:30:42 +03:00
Anton 82ea56c8fd Fix review comments. Add support of datetime timeganges 2018-04-28 00:16:34 +03:00
Matthias Voppichler a140748b5a Merge branch 'feat/objectify-ccxt' into cxxt_obj_sellfix 2018-04-21 22:39:22 +02:00
gcarq f4077a51c1 log hyperopt progress to stdout instead to the logger 2018-04-21 20:52:01 +02:00
gcarq 403f59ef45 use native python logger 2018-04-21 20:47:06 +02:00
Matthias Voppichler ce90ee4ac2 have backtesting use fee_open and fee_close 2018-04-21 20:05:49 +02:00
enenn 94287d66a8 Flake8 fixes 2018-04-12 18:16:27 +02:00
enenn 1678518cd4 Add dry_run=True to config during backtesting 2018-04-12 18:16:26 +02:00