Commit Graph

1846 Commits

Author SHA1 Message Date
Matthias 61c41fd919 Merge branch 'develop' into feat/freqai 2022-07-24 16:18:58 +02:00
Matthias 2eb1d18c2a Don't load leverage tiers when not necessary 2022-07-23 19:56:38 +02:00
Matthias f6bfd89cef Merge branch 'develop' into feat/freqai 2022-07-16 18:14:34 +02:00
Matthias 40e2da10f3 Add hypeorpt cloudpickle magic
closes #7078
2022-07-16 11:49:33 +02:00
Matthias e52f82b565 Add leverage to custom_stake_amount callback
closes #7047
2022-07-08 19:44:20 +02:00
robcaulk a6077ac7f4 Merge feat/freqai into develop to get new features 2022-07-03 16:17:13 +02:00
Matthias 07aa372e2a Ensure bot_loop_start is called in hyperopt, too
closes #7001
2022-07-03 14:10:59 +02:00
Matthias 2b07d34611 Revert several undesired changes 2022-06-23 20:47:51 +02:00
Matthias 8bf0bf10c5 Merge branch 'develop' into pr/SmartManoj/6859 2022-06-23 20:43:35 +02:00
Matthias bb61250bfe
Merge pull request #6987 from freqtrade/profit_metrics
Profit metrics
2022-06-18 17:20:20 +02:00
Matthias 474e6705e6 Add Profit factor to backtesting 2022-06-18 16:35:40 +02:00
Matthias 8c46d19071 Fix backtesting bug
balance was never released on cancelled trades
2022-06-18 16:27:54 +02:00
Matthias 6a15d36d14 Add Drawdown and profit_factor to /profit
#6816
2022-06-18 11:14:28 +02:00
Matthias 017fd03180 Fix but with late entries in backtesting 2022-06-18 09:05:22 +02:00
Matthias 3c62df6b86 Ensure the same timestamp is used for backtest and signal export 2022-06-15 06:53:52 +02:00
Italo 7142394121 remove random_state condition
otherwise the random sample always draws the same set of points
2022-06-10 09:46:45 +01:00
Italo dce9fdd0e4 don't overwrite is_random
this should fix issue #6746
2022-06-09 20:06:23 +01:00
Matthias 7eacb847b0 Fix backtesting bug when order is not replaced 2022-06-08 20:21:45 +02:00
Matthias 0b806af487 Add orders column to btresult 2022-06-06 10:59:10 +02:00
Matthias f709222943 Properly close out orders in backtesting 2022-06-05 22:12:27 +02:00
Matthias a790bad1e4 Add entry_tag to leverage callback
closes #6929
2022-06-05 10:24:54 +02:00
Matthias 34a44b9dd2 Fix backtesting bug when canceling orders
closes #6911
2022-05-31 20:32:41 +02:00
Matthias 66edbcd3d5 Fix slight backtesting bug in edge-case scenarios 2022-05-31 20:08:34 +02:00
robcaulk 7523ed825e automatically detect maximum required data based on user fed indicators (to avoid NaNs in dataset for rolling indicators), add new config parameter for backtesting to let users increase their startup_candles to accommodate high timeframe indicators, add docs to explain all. Add new feature for automatic indicator duplication according to user defined intervals (exhibited in example strat and configs now). 2022-05-31 18:42:27 +02:00
Matthias eaa656f859 Hyperoptable parameters can be instance attributes 2022-05-30 07:07:47 +02:00
Matthias 1ee08d22d2 Delay parameter init
closes #6894
2022-05-29 16:39:52 +02:00
Matthias 3e66275c98 Refactor bot_start to separate function
to be reused further ...
2022-05-25 20:01:21 +02:00
Matthias d6773bc32c
Merge pull request #6886 from freqtrade/fix/typing
Fix/typing
2022-05-24 19:41:59 +02:00
Matthias a8ee77cd5e Simplify backtesting typechecking 2022-05-24 19:13:35 +02:00
Matthias 23e089061b
Merge pull request #6870 from freqtrade/should_exit_list
Should exit list
2022-05-24 06:57:50 +02:00
Matthias 0a713faca8 Fix some type errors 2022-05-24 06:54:16 +02:00
robcaulk e1c068ca66 add config asserts, use .get method with default values for optional functionality, move data_cleaning_* to freqai_interface (away from user custom pred model) since it is controlled by config params. 2022-05-23 12:07:09 +02:00
Matthias eb5fe9e3ae
Merge pull request #6857 from froggleston/develop
Add support for fudging unavailable funding rates, allowing backtesti…
2022-05-23 06:31:51 +02:00
Matthias e3beaae8be update hyperopt typing 2022-05-22 19:32:32 +02:00
Matthias bdb904e714 Should_exit should return all sell signals 2022-05-22 10:17:49 +02:00
Matthias f006978caf Be more explicit in default value 2022-05-21 17:35:49 +02:00
Matthias 2df42a3035 Move "funding fillup" logic to exchange class 2022-05-21 08:50:39 +02:00
Matthias 6bd5535d6c Use exchange method to combine funding and mark candles 2022-05-21 08:31:34 +02:00
froggleston c499a92f57 Remove surplus mark columns, and make fillna on funding rate only 2022-05-20 11:48:53 +01:00
froggleston 363098d32d Fix reversed makr/funding_rate columns 2022-05-18 12:56:43 +01:00
froggleston 736f9f4972 Fix docs and add outer join support for merging funding rates across full timerange 2022-05-18 12:47:37 +01:00
மனோஜ்குமார் பழனிச்சாமி 2b61aa282a Removed None in dict.get()
https://stackoverflow.com/a/12631641

Extra Changes: freqtrade\freqtradebot.py:70
freqtrade\plugins\pairlistmanager.py:31
2022-05-18 03:41:10 +05:30
froggleston 37e4ede65c Fix flake issues 2022-05-17 22:32:17 +01:00
froggleston bb758da940 Add support for fudging unavailable funding rates, allowing backtesting of timeranges where futures candles are available, but rates are not 2022-05-17 22:05:33 +01:00
eSeR1805 34684ec86a
Merge branch 'freqtrade:develop' into feat_bt_cancel_entry_reporting 2022-05-17 14:09:57 +03:00
eSeR1805 0585b378b3
BT: Report canceled/replaced orders also. 2022-05-17 14:07:42 +03:00
eSeR1805 6e8f24f6a7
BT: track canceled/replaced orders also. 2022-05-17 14:07:02 +03:00
Matthias 6fd003c655
Merge pull request #6851 from eSeR1805/feat_bt_cancel_entry_reporting
BT: Reporting canceled trade entries
2022-05-17 07:05:26 +02:00
மனோஜ்குமார் பழனிச்சாமி 7cd0f8a7b1
Merge branch 'develop' into patch-10 2022-05-17 08:07:13 +05:30
eSeR1805 f2e2e57237
Report trade entries canceled by user. 2022-05-17 01:41:31 +03:00
eSeR1805 fb7c0792c0
Track trade entries canceled by user. 2022-05-17 01:41:01 +03:00
robcaulk aae233bd6c try passing the check tests 2022-05-15 17:42:15 +02:00
robcaulk b03c7b514d optional style for interfacing freqai with backtesting 2022-05-15 17:42:15 +02:00
Matthias a0b25938f4 Fix exit_reason assignment in backtesting 2022-05-15 17:41:59 +02:00
robcaulk 764f9449b4 fix logger, debug some flake8 appeasements 2022-05-15 17:41:34 +02:00
robcaulk fc837c4daa add freqao backend machinery, user interface, documentation 2022-05-15 17:38:58 +02:00
Matthias 18fd3bb333 Update stoploss handling for entry-order adjustment 2022-05-15 15:45:39 +02:00
eSeR1805 1c20fb7638
Refresh open_rate and stoploss on order replacement. 2022-05-14 16:37:04 +03:00
மனோஜ்குமார் பழனிச்சாமி 64670726a6
flake8 fix 2022-05-13 21:52:26 +05:30
மனோஜ்குமார் பழனிச்சாமி 71a80cab3a
fixed variable naming style 2022-05-13 21:19:40 +05:30
Matthias 277e07589e update/fix some comments and docs 2022-05-07 17:47:37 +02:00
Matthias d11c44940e Slightly reword docs
remove some Note-boxes - people tend to skip these.
2022-05-06 06:42:01 +02:00
Matthias 2d9be6dace move open_rate updating to close_bt_order 2022-05-05 19:50:16 +02:00
eSeR1805 2bed0eab0c
BT: Update trade open_rate on first filled order. 2022-05-05 12:19:05 +03:00
eSeR1805 496bf84e3a
Merge branch 'develop' into feat_readjust_entry 2022-05-04 21:43:41 +03:00
Matthias 88c8fe5570
Merge pull request #6715 from nicolaspapp/feat/relative-drawdown
Add relative drawdown
2022-05-02 21:09:14 +02:00
Matthias 3f64c6307f Maintain compatibility with old backtest results 2022-05-02 20:01:44 +02:00
Matthias 1e2523af61 Fix some assumptions on the data
available_capital is not guaranteed to be available, while dry-run-wallet is.
2022-05-02 19:44:14 +02:00
eSeR1805 04c51d2d1a
Merge branch 'develop' into feat_readjust_entry 2022-05-01 21:42:15 +03:00
eSeR1805 4e43194dfe
BT: Refactor open order management. 2022-05-01 18:06:20 +03:00
Matthias 995c48b642 Merge branch 'develop' into pairlocks_direction 2022-05-01 14:59:04 +02:00
eSeR1805 9d205132d0
Revert unintended comment change. 2022-05-01 12:10:11 +03:00
eSeR1805 8c19953cdd
Quick exit when order should be maintained. 2022-05-01 12:08:19 +03:00
Matthias 53a2f55cf0 Merge branch 'develop' into pr/nicolaspapp/6715 2022-05-01 10:03:10 +02:00
Matthias 4580127fa8 Small refactor 2022-04-30 14:51:57 +02:00
Matthias c6c569b772 chore: split BTAnalyais to metrics 2022-04-30 14:47:27 +02:00
Matthias 4262f84744 Merge branch 'develop' into pr/nicolaspapp/6715 2022-04-30 14:22:18 +02:00
Matthias 2acb68e6e2 Move hyperopt-loss functions to their own package 2022-04-30 13:59:23 +02:00
eSeR1805 3be2afdd88
Merge branch 'develop' into feat_readjust_entry 2022-04-30 13:39:23 +03:00
eSeR1805 ad0c5d9440
Refactor entry adjustment for backtesting. 2022-04-30 13:38:17 +03:00
Matthias 09b74cebce Move edge bot_loop_start to edge_cli
(otherwise it's called twice when running trade mode with edge on).
2022-04-30 08:55:07 +02:00
Sam Germain 4a6f1e90c3 Merge branch 'develop' into bot-start 2022-04-29 22:23:42 -06:00
Matthias 43049e0465 Evict cache if parameter file changed
closes #6735
2022-04-29 19:44:17 +02:00
Matthias fbd142844f Refactor bt-caching stuff to it's own module 2022-04-29 19:37:13 +02:00
eSeR1805 eb23170c43
Merge branch 'develop' into feat_readjust_entry 2022-04-28 23:06:52 +03:00
Matthias d1a61f9c61 Don't start futures backtest if leverage-tiers don't contain pair 2022-04-28 20:05:19 +02:00
Matthias 1e83589641 Fix hyperopt 2022-04-28 06:59:03 +02:00
Matthias 30c9dc6975 Fix exit-signa being assigned when tag is set but no signal is present. 2022-04-27 13:53:11 +02:00
Rokas Kupstys 6d99222320 Add 'exit_tag' parameter to 'custom_exit_price' callback. 2022-04-26 10:01:51 +03:00
Sam Germain 4fd904e0a9 added bot_start to backtesting 2022-04-25 17:48:57 -06:00
Matthias 44000ae0b3 Fix CAGR missing for old results 2022-04-25 17:37:25 +02:00
Matthias 246a336f56
Merge pull request #6726 from froggleston/bt_concat
Move df append to pd concat
2022-04-25 16:03:27 +02:00
froggleston 431c539cbd Fix isort import order 2022-04-25 10:42:24 +01:00
Matthias 4444259078 Fix hyperopt-loss interface to enforce kwargs 2022-04-25 11:33:18 +02:00
froggleston 580da21dda Move df append to pd concat 2022-04-25 10:31:19 +01:00
Matthias 4143ebbeae Add CAGR calculation to backtesting 2022-04-25 10:51:11 +02:00
Matthias 737bdfe844 Use "side" parameter when calling Pairlocks 2022-04-24 14:33:24 +02:00
Matthias 7c79d937e0 Properly type "side" parameter 2022-04-24 14:33:24 +02:00
Matthias 9e199165b4 Update protection-interface to support per-side locks 2022-04-24 14:33:24 +02:00
Matthias 25c6c5e326 Update backtest sell terminology to exit 2022-04-24 14:30:50 +02:00
Matthias 3c17409bd7 Update buy to entry in backtesting 2022-04-24 14:28:15 +02:00
Nicolas Papp 0f943c482b PEP8 code compliance 2022-04-23 13:15:14 -03:00
Matthias d4e12371c2
Merge pull request #6558 from samgermain/recursive-strategy-folder
Recursively search subdirectories in config['user_data_dir']/strategies for a strategy
2022-04-23 14:23:53 +02:00
Matthias f2912f8815 Improve mypy runs 2022-04-23 11:31:12 +02:00
Matthias 89f16ad3a5
Merge pull request #6543 from froggleston/v3_fixes
Add support for storing buy candle indicator rows in backtesting results
2022-04-23 09:45:11 +02:00
Matthias 5a90d5ece6 Fix docstring quotes 2022-04-23 09:44:04 +02:00
Matthias 7328553c0b
Merge pull request #6563 from italodamato/opt-ask-force-new-points
Optimize only new points
2022-04-23 09:43:33 +02:00
Matthias 580a2c6545 Don't repeat backtest-storing 2022-04-23 09:23:53 +02:00
Matthias f1f4846053 Merge branch 'develop' into pr/samgermain/6558 2022-04-23 09:16:28 +02:00
Matthias ba92e09b7b list-strategies should find recursively as well 2022-04-23 09:11:50 +02:00
Matthias dff9d52b30 Remove hints on no longer used option, add very primitive test 2022-04-23 08:51:52 +02:00
froggleston 767592a1d6 Add signals enum to 'export' cli option 2022-04-22 18:46:12 +01:00
froggleston f92997d378 Move signal candle generation into separate function 2022-04-20 14:05:33 +01:00
froggleston b3cb722646 Use joblib instead of pickle, add signal candle read/write test, move docs to new Advanced Backtesting doc 2022-04-20 13:38:52 +01:00
froggleston aa5984930d Fix filename generation 2022-04-19 13:00:09 +01:00
froggleston 84f486295d Add tests for new storing of backtest signal candles 2022-04-19 12:48:21 +01:00
eSeR1805 d24ee9032a
Update usage in backtest. No functional update. 2022-04-18 21:21:38 +03:00
froggleston 34fb8dacd7 Fix isort complaints 2022-04-16 17:03:24 +01:00
froggleston b738c4e695 Fix flake8 complaints 2022-04-16 16:49:20 +01:00
froggleston 7210a11730 Fix flake8 complaints 2022-04-16 16:37:06 +01:00
froggleston a63affc5f1 Fix flake8 complaints 2022-04-16 16:32:04 +01:00
froggleston f55a9940a7 Fix line spacing 2022-04-16 16:15:04 +01:00
froggleston b1bcf9f33c Fix backtest_enable typo 2022-04-16 14:58:17 +01:00
froggleston 8990ba2709 Fix store signal candles 2022-04-16 14:49:53 +01:00
froggleston 21734c5de7 Add pickle import 2022-04-16 14:46:30 +01:00
froggleston 26ba899d7d Add constant, boolean check, rename option to fit with other x_enable, check that RunMode is BACKTEST 2022-04-16 14:37:36 +01:00
Robert Davey afd3a32883
Merge branch 'develop' into v3_fixes 2022-04-16 14:23:13 +01:00
eSeR1805 d65b64a46f
Merge branch 'develop' into feat_readjust_entry 2022-04-16 15:20:50 +03:00
eSeR1805 bf5799ef9e
Add new functionality to backtesting. 2022-04-16 15:07:18 +03:00
Italo 1153e65b3e fix flake8 2022-04-14 14:34:04 +01:00
Italo 340c0ea391 update is_random before asked_non_tried
is_random depends on asked_non_tried and needs to be updated first
2022-04-14 14:15:11 +01:00
Matthias 4acb77305a Don't break when running hyperopt-x tools on old resuts 2022-04-13 19:33:27 +02:00
Italo 35cea6dcfa fix unique_list 2022-04-13 09:36:46 +01:00
Italo fa298d6f1c fix unique_list logic 2022-04-12 23:57:40 +01:00
Nicolas Papp 178240aa6c Merge branch 'develop' of https://github.com/nicolaspapp/freqtrade into feat/relative-drawdown 2022-04-11 14:42:10 -03:00
Matthias baefda80d1 Enable flake8 E226 rule 2022-04-11 18:02:06 +02:00
Nicolas Papp 47a6ef4f00 Max relative drawdown 2022-04-10 12:53:47 -03:00
Matthias 68fe7476c9 Update more terminology to forceexit 2022-04-10 15:56:29 +02:00
Matthias 54633e90a7 Merge branch 'develop' into pr/italodamato/6563 2022-04-10 09:16:31 +02:00
Matthias 8e98a2ff9f api - provide assset_currency via API 2022-04-09 16:42:18 +02:00
Italo 1559692e47 Update hyperopt.py
remove duplicates from list of asked points
2022-04-08 11:44:42 +01:00
Matthias ea1c55b161 Update backtesting to use row instead of sell_row 2022-04-07 19:43:34 +02:00
Matthias 299dd84cfe
Merge pull request #6656 from freqtrade/use_sell_signal
Use sell signal -> use_exit_signal
2022-04-06 19:46:46 +02:00
மனோஜ்குமார் பழனிச்சாமி 7e97e58820 renamed enter-side 2022-04-06 06:32:13 +05:30
Matthias b1378efdeb ignore_roi_if_buy_signal -> ignore_roi_if_entry_signal 2022-04-05 20:21:39 +02:00
Matthias 4897731030 use_sell_signal -> use_exit_signal 2022-04-05 20:10:20 +02:00
Matthias 5ce5c70be6 sell_profit_offset -> exit_profit_offset 2022-04-05 20:03:27 +02:00
Matthias bba9629a2a Rename sell_profit_only to exit_profit_only 2022-04-05 20:00:35 +02:00
Matthias 6d9218cb34 sell_signal -> exit_signal 2022-04-04 17:11:11 +02:00
Matthias 1917527179 custom_sell -> custom_exit 2022-04-04 17:04:43 +02:00
Matthias 54ad130bb9 Update force_sell to force_exit 2022-04-04 16:59:27 +02:00
Matthias 33841da382 Slightly imporve Typing by reusing long/short type 2022-04-04 16:51:57 +02:00
Matthias f8783c908e Add side to custom_entry_price 2022-04-04 16:48:27 +02:00
Matthias e894f620c2 Improve compatibility 2022-04-03 08:15:23 +02:00
Matthias ec63cfd656 Add compatibility layer for backtesting results 2022-04-02 20:04:30 +02:00
Matthias 543aa74278 update sell_reason to exit_reason 2022-04-02 20:04:29 +02:00
Matthias b0fab3ad50 Properly handle empty dataframes after trimming
closes #6629
2022-04-02 16:16:29 +02:00
Italo 9f171193ef Revert "Merge branch 'plot_hyperopt_stats' into opt-ask-force-new-points"
This reverts commit 4eb9cc6e8b, reversing
changes made to a3b401a762.
2022-03-30 09:39:07 +01:00
Matthias b91b7b4464 Fix hyperopt assigning sell_signal to wrong field 2022-03-30 07:16:48 +02:00
Matthias e1ccbdb927
Merge pull request #6607 from freqtrade/short_pricing
Short pricing updates
2022-03-30 06:59:40 +02:00
Italo 4eb9cc6e8b
Merge branch 'plot_hyperopt_stats' into opt-ask-force-new-points 2022-03-30 00:30:33 +01:00
Italo a3b401a762 highlight random points in hyperopt results table 2022-03-30 00:29:14 +01:00
Italo 229b0b037e reduce search loops 2022-03-29 19:33:35 +01:00
adriance d6082c33a7 fix type error 2022-03-28 21:29:50 +08:00
adriance a0971a3e2c fix using future data to fill when use timeout 2022-03-28 21:00:05 +08:00
Matthias bcf326a035 Initial steps to change bid/ask pricing to enter/exit 2022-03-27 18:03:49 +02:00
Matthias 6f1b14c013 Update buy_timeout and sell_timeout methods 2022-03-25 19:57:06 +01:00
Matthias 743a7b7849 Merge branch 'develop' into feat/short 2022-03-25 10:04:18 +01:00
Matthias a004bcf00f Small refactor to backtesting 2022-03-25 08:03:32 +01:00
Matthias dcfa3e8648 Update SellType to ExitType 2022-03-25 06:55:37 +01:00
Matthias c07883b1f9 Move ExitCheckTuple to enums 2022-03-25 06:50:18 +01:00
Matthias 8d111d357a Update SellCheckTuple to new naming 2022-03-25 06:46:29 +01:00
Matthias d7f76ee452 Update confirm_trade_exit to use sell_reason terminology 2022-03-25 06:37:40 +01:00
Matthias b1e3ead88b Merge branch 'develop' into feat/short 2022-03-22 20:28:38 +01:00
Italo b5a346a46d Update hyperopt.py 2022-03-22 11:01:38 +00:00
Matthias 5b4f343d36 Update buy output for backtesting 2022-03-22 06:45:36 +01:00
Matthias 08777abd85 Update backtesting output terminology to "exit" 2022-03-22 06:43:37 +01:00
Italo 2733aa33b6 Update hyperopt.py 2022-03-22 00:28:11 +00:00
Italo 37a43019d6 fix
- clear cache before calling `ask`
- avoid errors in case asked_non_tried has less than n_points elements
2022-03-21 11:36:53 +00:00
Italo fca93d8dfe Update hyperopt.py 2022-03-20 16:12:06 +00:00
Italo f8a674f24d make robust in case all points have been tried 2022-03-20 16:08:38 +00:00
Italo 23f1a1904b more compact 2022-03-20 16:06:41 +00:00
Italo 0fd269e4f0 typo 2022-03-20 16:03:07 +00:00
Italo e16bb1b34e Optimize only new points
Enforce points returned from `self.opt.ask` have not been already evaluated
2022-03-20 16:02:03 +00:00
Italo 112738d68d
Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-03-20 15:42:53 +00:00
Italo d796ce0935 Update hyperopt.py
1. Try to get points using `self.opt.ask` first
        2. Discard the points that have already been evaluated
        3. Retry using `self.opt.ask` up to 3 times
        4. If still some points are missing in respect to `n_points`, random sample some points
        5. Repeat until at least `n_points` points in the `asked_non_tried` list
        6. Return a list with legth truncated at `n_points`
2022-03-20 15:41:14 +00:00
Matthias 95f69b905a Remove ticker_interval support 2022-03-20 09:00:53 +01:00
Matthias 052758bbac Refactor price and stake out of _enter_trade 2022-03-19 15:45:43 +01:00
Matthias b292f28b35 Call leverage before custom_stake_amount to properly determine min-stake-amount 2022-03-19 15:44:37 +01:00
Matthias d6309449cf Fix short bug where close_rate is wrongly adjusted 2022-03-16 20:12:09 +01:00
Matthias a89c1da19f Fix 2 bugs in ROI calculation 2022-03-16 20:12:09 +01:00
froggleston 162e94455b Add support for storing buy candle indicator rows in backtesting results 2022-03-16 12:16:24 +00:00
Matthias 7c9d2dd20a Fix a few more short bugs in backtesting 2022-03-16 07:00:50 +01:00
adriance ceba4d6e9b Remove meaningless code 2022-03-15 14:03:06 +08:00
Matthias cbbdf00ddd Update comments in short backtest rates 2022-03-15 06:39:07 +01:00
adriance fd211166f0 fixed side error 2022-03-15 12:23:59 +08:00
adriance 7059892304 Optimize the code. Fix stop_rate judgment error 2022-03-15 12:04:02 +08:00
adriance 31182c4d80 format 2022-03-14 18:38:44 +08:00
adriance 26a74220fd remove buy filled logic 2022-03-14 13:43:42 +08:00
adriance bea38a2e7c remove filled date logic 2022-03-14 13:42:52 +08:00