Commit Graph

1779 Commits

Author SHA1 Message Date
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
adriance 3d9c55d519 restore set_isolated_liq 2022-03-14 11:29:26 +08:00
adriance 0fce0f64d1 Merge branch 'feat/short' into fs_fix 2022-03-13 14:41:22 +08:00
adriance 52bf926066 fix duplicate long 2022-03-13 12:26:57 +08:00
adriance b5662d6547 Merge branch 'feat/short' into fs_fix 2022-03-12 16:50:27 +08:00
Matthias efc313b28b
Merge pull request #6512 from freqtrade/short_order_types
Short order types renamal
2022-03-12 09:32:16 +01:00
Matthias 20fc9459f2 Add test for can_short strategy attribute 2022-03-11 19:37:45 +01:00
Italo d2a5448305 Update hyperopt.py 2022-03-11 17:38:32 +00:00
adriance 499e9c3e98 fix duration 2022-03-10 00:34:59 +08:00
adriance d579febfec add filled time 2022-03-09 23:55:57 +08:00
adriance 1c86e69c34 use filled time calculate duration 2022-03-09 21:55:13 +08:00
adriance 82e0eca128 add short close rate calu 2022-03-09 20:00:06 +08:00
Matthias e492bf3159 Update order_types to use entry/exit definition 2022-03-09 06:37:08 +01:00
dingzhoufeng 9facd5b52a Merge branch 'feat/short' into fs_fix 2022-03-08 15:14:11 +08:00
dingzhoufeng 53ecdb931b add leverage 2022-03-08 12:26:43 +08:00
Matthias 3ff261e22c Update order time in force to use entry/exit wording 2022-03-07 19:55:15 +01:00
Matthias f558d4b132
Merge pull request #6467 from samgermain/backtest-liq
Liquidation price in backtesting
2022-03-03 06:50:32 +01:00
Matthias eb30c40e0c Fix hyperopt for futures 2022-03-02 19:50:16 +01:00
Matthias e8206bc751 Simplify backtesting enter_Trade 2022-02-28 20:10:23 +01:00
Matthias 1b07ad92cf Merge branch 'feat/short' into pr/samgermain/6467 2022-02-28 20:07:19 +01:00
Matthias 79538368db Simplify liquidation price calculation 2022-02-28 19:47:21 +01:00
Matthias 1d27cbd01f Simplify leverage_prep interface 2022-02-28 19:34:10 +01:00
Matthias 8e2d3445a7 Move leverage_prep calculations to exchange class 2022-02-28 19:29:42 +01:00
Sam Germain b103045a05 backtesting._enter_trade update liquidation price on increased position 2022-02-27 12:09:45 -06:00
Sam Germain 6fdcc714bf backtesting margin_mode key fix 2022-02-27 11:59:27 -06:00
Matthias 1b6548c8d8 Don't modify leverage through DCA 2022-02-27 15:44:23 +01:00
Matthias bcfa73d492 Add "nr_of_successfull_entries" 2022-02-27 15:44:23 +01:00
Sam Germain 8af2ea754f add margin mode to backtesting 2022-02-26 14:11:21 -06:00
Sam Germain 6dbd249570 backtesting._enter_trade get liquidation_price and backtesting._leverage_prep 2022-02-26 13:55:01 -06:00
Italo 8d9d003671
Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-02-25 17:58:57 +00:00
Matthias fd936e26ae Merge branch 'develop' into feat/short 2022-02-24 19:56:42 +01:00
Matthias 42df65d4ec Make sure backtesting is cleaned up in tests 2022-02-24 14:22:49 +00:00
Matthias 8952829adc Merge branch 'develop' into feat/short 2022-02-23 06:28:15 +01:00
Matthias 70f4305dfa don't allow short trades in spot mode 2022-02-21 19:19:12 +01:00
Matthias d610b6305d Improve /balance output by removing trailing zeros 2022-02-19 16:40:30 +01:00
Sam Germain a9eb8ce1bf added todos back in 2022-02-16 05:47:41 -06:00
Italo 88459acbeb
Merge branch 'freqtrade:develop' into plot_hyperopt_stats 2022-02-15 19:10:49 +00:00
Matthias 64b98989d2 Update open candle ROI condition 2022-02-15 19:25:32 +01:00
Matthias 30f6dbfc40 Attempt fix for #6261 2022-02-14 20:02:38 +01:00
Sam Germain 19783e0d39 edited todos 2022-02-14 09:02:55 -06:00
Sam Germain fc2d3649a1 edited todos 2022-02-12 16:23:14 -06:00
Matthias 0c6d92a7a6 Merge branch 'develop' into feat/short 2022-02-11 17:02:04 +01:00
Matthias 6a59103869 update wallets in backtesting to ensure a fresh wallet is used
closes #6388
2022-02-10 19:40:36 +01:00
Matthias 9f47853661
Merge pull request #6235 from freqtrade/backtest_order_timeout
Backtest order timeout
2022-02-09 07:12:35 +01:00
Matthias dcf8ad36f9 Backtesting should not allow unrealistic (automatic-filling) orders. 2022-02-08 19:12:01 +01:00
Matthias b192c82731 Only call "custom_exit_price" for limit orders 2022-02-08 07:10:54 +01:00
Matthias 036c2888b4 Track timedout entry/exit orders 2022-02-07 18:49:30 +01:00
zx 4bce64b427 commented method deletition 2022-02-07 14:12:07 +01:00
zx 7811a36ae9 max_drawdown_abs calc fix & .DS_Store deletition 2022-02-07 07:44:13 +01:00
zx 8cdb6e0774 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first 2022-02-07 06:31:16 +01:00
zx 2893d0b50d proper var name 2022-02-07 06:22:27 +01:00
zx 7d3b80fbde isort fix and leftover cleaning 2022-02-06 21:09:40 +01:00
Italo d03378b1df Update hyperopt.py 2022-02-06 15:32:59 +00:00
zx 6b5f63d4d6 change profit_ratio by profit_abs 2022-02-06 16:28:01 +01:00
zx 0b01fcf047 Add ProfitDrawdownHyperoptLoss method 2022-02-06 15:40:54 +01:00
Matthias 644442e2f9 Track timedout orders 2022-02-06 13:37:31 +01:00
Matthias 17d748dd4c Improve handling of left_open_trades 2022-02-06 13:19:00 +01:00
Italo adf8f6b2d5 Update hyperopt.py 2022-02-06 10:33:49 +00:00
Italo 6c1729e20b ignore warnings 2022-02-06 01:07:30 +00:00
Sam Germain e0d42ad9a7
Update backtesting.py 2022-02-05 18:29:48 -06:00
Italo 6a4cae1f8c Update hyperopt.py 2022-02-06 00:17:48 +00:00
Italo 992eac9efa Update hyperopt.py 2022-02-05 17:36:19 +00:00
Matthias 9bf86bbe27 Extract backtesting row validation to separate function 2022-02-05 16:28:47 +01:00
Matthias 58fad72778 Update wallets when necessary
closes #6321
2022-02-05 16:28:47 +01:00
Matthias 4ea79a32e4 Use Order object for ft_timeout check 2022-02-05 16:28:47 +01:00
Matthias 1e603985c5 Extract backtesting order cancelling 2022-02-05 16:28:47 +01:00
Matthias 6637dacd7f Extract protections in backtesting 2022-02-05 16:28:47 +01:00
Matthias 7ac44380f7 Extract backtest order closing to models class 2022-02-05 16:28:46 +01:00