Commit Graph

712 Commits

Author SHA1 Message Date
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?at=master&fileviewer=file-view-default#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
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
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
enenn e42403fecc Change date to timestamp conversion method in backtesting 2018-04-12 18:07:44 +02:00
enenn db46ad6502 Change ticker interval from minutes as integer to string (1m, 5m, 1h,...) 2018-04-07 16:57:47 +02:00
enenn c1c6ed6ed7 Replace 'BTC_XXX' with 'XXX/BTC' for pairs and 'XXX_BTC' for files 2018-04-07 16:51:50 +02:00
enenn 1f75636e56 [1/3] Add support for multiple exchanges with ccxt (objectified version) (#585)
* remove obsolete helper functions and make _state a public member.

* remove function assertions

* revert worker() changes

* Update pytest from 3.4.2 to 3.5.0

* Adapt exchange functions to ccxt API
Remove get_market_summaries and get_wallet_health, add exception handling

* Add NetworkException

* Change pair format in constants.py

* Add tests for exchange functions that comply with ccxt

* Remove bittrex tests

* Remove Bittrex and Interface classes

* Add retrier decorator

* Remove cache from get_ticker

* Remove unused and duplicate imports

* Add keyword arguments for get_fee

* Implement 'get_pair_detail_url'

* Change get_ticker_history format to ccxt format

* Fix exchange urls dict, don't need to initialize exchanges

* Add "Using Exchange ..." logging line
2018-04-06 10:57:08 +03:00
gcarq fee8d0a2e1 refactor get_timeframe 2018-03-29 20:16:25 +02:00
gcarq 702402e1fe simplify download_backtesting_testdata 2018-03-29 20:15:32 +02:00
Janne Sinivirta 85a81b18a3
Merge pull request #586 from xmatthias/obj_backtest_pr2
fix backtest --export format
2018-03-27 12:43:52 +03:00
Matthias Voppichler a182cab27f fix backtest --export format
reverts regression introduced in c623564
2018-03-26 20:28:51 +02:00
gcarq 611bb52d1f log hyperopt progress to stdout instead to the logger 2018-03-25 22:57:40 +02:00
gcarq f374a062e1 remove freqtrade/logger.py 2018-03-25 21:43:00 +02:00
gcarq fa7f74b4bc use native python logger 2018-03-25 21:43:00 +02:00
gcarq 3f8d7dae39 make name a required argument and add fallback to getEffectiveLevel 2018-03-25 21:42:03 +02:00
Matthias Voppichler f51ef1a791 refactor format_ms_time to misc.py 2018-03-25 13:38:50 +02:00
Matthias Voppichler 016232a8e9 Revert OHLVC dataformat to ccxt format
* Also fixes backtesting - but data must be refreshed for now as no
conversation is happening yet
2018-03-25 13:32:46 +02:00
Matthias Voppichler 85af68d807 ccxt - make backtesting work 2018-03-24 19:45:23 +01:00
Samuel Husso eb4ac73b78 remove last bittrex references so that bot is runnable 2018-03-22 08:29:52 +02:00
gcarq d2aea7bdc1 optimize imports 2018-03-20 19:50:04 +01:00
gcarq 5327533188 optimize: set correct typehints 2018-03-20 19:48:03 +01:00
gcarq a6a38735b1 backtesting: only respect max_open_trades with realistic_simulation 2018-03-20 19:38:33 +01:00
gcarq 93931eb32b fix typo in _generate_text_table 2018-03-19 23:05:12 +01:00
Gerald Lonlas 0bb7cc8ab5 Hyperopt: fix 'Ran out of input' error 2018-03-05 20:49:45 -08:00