Commit Graph

2168 Commits

Author SHA1 Message Date
Matthias
67636abb30 Fix #10166 with fewer side-effects 2024-05-04 09:01:05 +02:00
Matthias
e5b79eee5a Extract _process_exit_order to separate function 2024-05-04 09:00:46 +02:00
Matthias
62a3ed6f8d partial exit order should not close immediately
closes #10166
2024-05-04 08:41:24 +02:00
Matthias
997db6c706 Type-ignore
we can't type variables of the list-comprehension ...
2024-04-27 19:59:53 +02:00
Matthias
3f2f2a1dbd Use worst case of maker / taker fee for backtest 2024-04-27 18:26:23 +02:00
Matthias
8004829696 Further reduce problematic default args 2024-04-20 09:15:11 +02:00
Christian Clauss
99b4767bf4 Fix typos discovered by codespell 2024-04-18 22:51:25 +02:00
Matthias
54d9dbaea8 Formatting 2024-04-16 20:54:12 +02:00
Matthias
d7920c4b64 Simplify backtest storage 2024-04-16 20:53:06 +02:00
Matthias
c8a5904959 Store and load backtest-market-change data 2024-04-16 19:27:41 +02:00
Matthias
18a4d6972d generate_filename should be private 2024-04-16 18:02:00 +02:00
Matthias
a0a22f62e0 Update typehint for backtesting 2024-04-16 18:00:24 +02:00
Matthias
e7b907a175 Enhance / simplify bt-storage logic
Removes repeated filename generation pattern
2024-04-16 06:57:58 +02:00
Matthias
094bbb3a50 Remove pointless docstring comment 2024-04-11 21:02:54 +02:00
Matthias
df2432bc18 Re-align adjust_trade_position bt with live. 2024-04-11 20:57:03 +02:00
Matthias
7b5e444333 Improve code stability 2024-03-30 13:36:19 +01:00
Matthias
0906f050e5 Fix remaining tests 2024-03-30 13:28:13 +01:00
Matthias
be26e31235 Remove obsolete code, improve resilience 2024-03-30 13:20:43 +01:00
Matthias
36f1111d92 Remove custom handling for exit reason stats.
It's not different from regular tag outputs, really
2024-03-30 13:11:59 +01:00
Matthias
9726c4ae21 don't use cum profit 2024-03-30 11:28:23 +01:00
Matthias
7895eeb3b6 Fix tests after modified output 2024-03-30 11:20:41 +01:00
Matthias
0a186eb8b7 Remove Cum Profit %
it's a missleading metric in any case where stake-amount is not 100% identical.
2024-03-30 11:18:56 +01:00
Matthias
82565a9667
Merge pull request #9955 from Axel-CH/feature/trade-lifecycle-callbacks
Feature: trade lifecycle callbacks
2024-03-28 19:35:53 +01:00
Matthias
666f2fc10a Fix bug where amount becomes 0
closes #10003
2024-03-25 20:59:39 +01:00
Axel-CH
996fcb6f56 fix current_time parameter of order_filled usage in backtest 2024-03-18 22:07:43 -04:00
Axel-CH
08c1866cdc fix mypy artype error 2024-03-18 20:57:47 -04:00
Axel-CH
d1e1b8410b add order parameter to order_filled callback 2024-03-18 20:47:27 -04:00
Axel-CH
18a3489a6f add order_filled callback to bot and backtest 2024-03-18 15:46:47 -04:00
hippocritical
01c0fd0420 If enable_protections are enabled, disable all
- some work on all pairs, and we don't check protections either so ... just disable them completely
- added info in the docs

Changed pairs-check to if no definition is in the config (but it s maybe in the strategy) it will just force-set it to the proper amount of len(config['pairs']
2024-03-17 09:53:45 +01:00
Matthias
225ef6b8ca Update to latest ruff format 2024-03-11 17:50:47 +01:00
Matthias
6f0f4f06ef
Merge pull request #6908 from eSeR1805/feature_keyval_storage
Persistent storage of user-custom information
2024-03-08 07:00:17 +01:00
Matthias
1176c16b93 REmove unnecessary assignment 2024-03-03 12:41:51 +01:00
Matthias
c0e9726f49 don't use "1M" - but be explicit in the intend 2024-02-27 06:20:08 +01:00
Matthias
0021e2c205 fillna needs explicit type. 2024-02-27 06:19:54 +01:00
Matthias
e2d3774b07 Clearer wallets variable/parameter wording 2024-02-25 09:07:53 +01:00
Matthias
4700782f60 Merge branch 'develop' into feature_keyval_storage 2024-02-07 07:13:41 +01:00
Matthias
c5948693a3 enable sub-minute backtest detail timeframes
closes #9635
2024-02-03 13:14:46 +01:00
Matthias
0d14b7a800 perf: only create detail timedelta object once for detail backtests 2024-02-02 07:03:44 +01:00
Matthias
79b8496f38 Fix backtesting not setting entry_tag out of position adjustments 2024-01-30 07:24:36 +01:00
Matthias
830a004dfd Move response handling to interface wrappermethod 2024-01-30 07:24:36 +01:00
Matthias
95e51bf816 allow adjust_trade_position to return tuples in backtesting 2024-01-30 07:24:36 +01:00
Matthias
e8288a34c9 add ft_order_tag to backtesting 2024-01-30 07:24:36 +01:00
Matthias
39ffee381b Improve type hint 2024-01-30 07:24:36 +01:00
Matthias
85dd371ee3 use prepared timedelta object for backtesting 2024-01-24 17:57:18 +01:00
Matthias
a1b93dc915 Improve call sequence 2024-01-23 06:42:12 +01:00
Matthias
ea1b3c38f8 remove last utcnow usage 2024-01-14 20:00:30 +01:00
Matthias
7fcbe9788d Extract database cleanup functions to persistence package 2024-01-10 19:53:06 +01:00
Matthias
74bb1a29b6 Fix indentation 2024-01-06 17:55:03 +01:00
Matthias
9f682b5829 Improve Coin formatter naming 2024-01-06 16:02:47 +01:00
Matthias
e1ad87a565 Extract number-formatters from misc 2024-01-06 13:04:49 +01:00
Matthias
983764ad0a Add "migrate funding fee timeframe" logic 2024-01-04 16:44:17 +01:00
Matthias
a12f368796 Move binance migration to behind migrations gate 2024-01-04 16:25:40 +01:00
Matthias
d5d3188b99 Load "correct" timeframes (mark vs. funding fees)... 2024-01-04 15:30:06 +01:00
Matthias
ec1b2e1da5 Remove further deprecated metric report 2024-01-04 14:51:21 +01:00
Matthias
73970d27bf Remove deprecated bt-output option 2024-01-04 14:45:42 +01:00
Matthias
292ef85d96 Add additional, optional arguments to metadata files
closes #9517
2023-12-31 12:07:02 +01:00
Matthias
3e7d5bbae8
Merge pull request #9515 from stash86/bt-metrics
In partial exit, do full exit if remaining == 0
2023-12-30 16:39:46 +01:00
Matthias
e664527da6 Align backtest and bot method 2023-12-29 20:02:24 +01:00
Stefano Ariestasia
f7c7990aff
Merge branch 'freqtrade:develop' into bt-metrics 2023-12-20 20:33:45 +09:00
Matthias
94363061ae Attempt fix timerange problem 2023-12-18 20:06:49 +00:00
robcaulk
9a9a6eaa63 Revert "Merge pull request #9450 from freqtrade/fix/startup-candle-count"
This reverts commit 15771043f7, reversing
changes made to b417a0297b.
2023-12-17 17:44:15 +01:00
Stevan Stevic
c580e8783f fixup 2023-12-16 22:36:56 +01:00
Stevan Stevic
bc1ad3acbd Improve logging 2023-12-16 22:09:02 +01:00
Matthias
e3fda16d16 Don't overpopulate points at the first iteration
improves hyperopt-performance quite some.
2023-12-15 06:19:50 +01:00
Matthias
9e2e60e7ad Correct conditions for remaining stake checking 2023-12-14 20:34:58 +01:00
Matthias
bb2024f789 Add "full partial exit" logic to backtesting 2023-12-14 20:08:03 +01:00
Matthias
47a952e41c Don't use config['stake_amount'] in wallets 2023-12-12 22:43:46 +01:00
Matthias
55efaec83d
Merge pull request #9522 from freqtrade/bt/improve_futures_speed
Improve funding fee calculation
2023-12-12 06:33:57 +01:00
Matthias
105cd99395 use max_open_trades from straetgy instead of config 2023-12-11 19:52:49 +01:00
Matthias
db7799d2fb Use variable instead of config for startup_candle_count 2023-12-11 19:42:13 +01:00
Matthias
30f94ef5b7 Use LocalTrade for typehint 2023-12-11 19:12:08 +01:00
Matthias
8964c138f1 Call funding fee calculation whenever a trade is closed 2023-12-10 14:00:06 +01:00
Matthias
074343f0f1 Don't calculate funding_fees on every iteration 2023-12-10 14:00:06 +01:00
Matthias
966eb59fd3 Extract funding fee calculation to separate method 2023-12-10 14:00:06 +01:00
Robert Caulk
15771043f7
Merge pull request #9450 from freqtrade/fix/startup-candle-count
Bug: freqai backtesting startup_candle_count handling
2023-12-02 21:01:11 +01:00
chas s
10ae0ed9c1
Removed redudant negative from sentence 2023-11-20 16:33:22 -06:00
robcaulk
d52936fd42 chore: try to keep startup_candle_count behaving the same as a normal FT strat 2023-11-20 09:13:01 +01:00
Matthias
b8a6330c3f Improve pandas handling 2023-10-30 19:16:22 +01:00
Matthias
9297a90d7f Use proper indexing to avoid deprecation warnings 2023-10-30 18:26:25 +01:00
Matthias
b19f17fdfa Improve handling of bt results in optimize_reports 2023-10-30 18:26:01 +01:00
Matthias
0a5cee6a73 Ensure we're not erroring on invalid custom_entry / exit prices
closes #9323
2023-10-19 22:06:21 +02:00
Matthias
b65fa98cee Simplify backtesting by using current_time more consequently 2023-10-11 19:45:00 +02:00
Matthias
b57821b273 Add set_funding_fees to backtesting 2023-10-11 19:38:58 +02:00
Stefano Ariestasia
f14b4133c3 fix wording 2023-10-03 13:36:31 +09:00
Stefano
609ed2d7b3 fix return values 2023-10-03 08:41:05 +09:00
Stefano Ariestasia
183166b3fb fix output if no variance, and fix docs 2023-10-03 08:27:28 +09:00
Matthias
84335d58b3 Greatly speed up recursive by caching exchange 2023-10-02 06:34:35 +02:00
Matthias
19af144b33 Improve of analysis files further 2023-10-01 07:58:46 +02:00
Matthias
7e6f2cba53 Move analysis command into their own subspace 2023-10-01 07:54:09 +02:00
Matthias
659cbd987a
Merge pull request #9152 from stash86/bt-metrics
Add recursive-analysis sub-command
2023-09-29 17:59:37 +02:00
Stefano Ariestasia
7971cb29bb fix error message 2023-09-29 14:17:44 +09:00
Matthias
37550d3bdb Fix typo in --strategy_list 2023-09-28 21:01:37 +02:00
Matthias
504f51fabb Fix liquidation price setting in backtesting
closes #9205
2023-09-27 06:40:24 +02:00
Matthias
966247baaf Make sure use_db is set as early as possible. 2023-09-23 18:20:19 +02:00
Stefano
89d47ffd8f 4 more tests 2023-09-21 17:47:51 +09:00
Stefano
b9e9f82503 first test done 2023-09-21 16:45:43 +09:00
Stefano Ariestasia
37fa186c55 remove 1 column 2023-09-20 22:43:01 +09:00
Stefano Ariestasia
1555667da7 Merge remote-tracking branch 'origin/bt-metrics2' into bt-metrics2 2023-09-20 17:55:59 +09:00
Stefano Ariestasia
8a52a7b50d
Merge branch 'freqtrade:develop' into bt-metrics2 2023-09-20 17:48:52 +09:00
Axel-CH
a7cd9d77f2 ignore custom_entry_price trade object type test, remove LocalTrade as type 2023-09-16 13:58:59 -04:00
axel
cf96ad1d1b add trade param to custom entry price in interface, bot, backtesting, exemples 2023-09-16 02:32:03 -04:00
Stefano Ariestasia
08dffc95d8 fix wording 2023-09-13 11:58:28 +09:00
Stefano Ariestasia
5019fb5bf3 fix flake8 2023-09-12 19:58:40 +09:00
Stefano Ariestasia
a0e0d7fe27 more fixes 2023-09-12 19:57:16 +09:00
Stefano Ariestasia
6377fd2689 flake8 fix 2023-09-12 19:54:25 +09:00
root
bd9ea9bd8c precommit fix 2023-09-12 19:50:39 +09:00
Stefano Ariestasia
cfeefa8754 remove prepare data from baseanalysis 2023-09-12 19:29:13 +09:00
Stefano Ariestasia
475d8486bb fix mutable Backtest 2023-09-12 19:21:01 +09:00
Stefano Ariestasia
4d1810c2b6 update lookahead analysis 2023-09-12 19:11:19 +09:00
Stefano Ariestasia
6360e7fb15 debug 2023-09-12 16:20:04 +09:00
Stefano Ariestasia
40695a39d5 add missing var 2023-09-12 16:14:25 +09:00
Stefano Ariestasia
008f621211 create BaseAnalysis class 2023-09-12 15:42:32 +09:00
Stefano Ariestasia
5608bbde9c
Merge branch 'freqtrade:develop' into bt-metrics 2023-09-12 13:56:24 +09:00
Matthias
2ee152c5a6
Merge pull request #8779 from Axel-CH/feature/multiple_open_orders
Feature: Multiple open orders
2023-09-10 17:22:26 +02:00
Matthias
f8b97b6aa7 Fix dtype mismatch error 2023-09-08 07:05:38 +02:00
Matthias
8c95207ca4 Merge branch 'develop' into pr/Axel-CH/8779 2023-09-07 20:19:25 +02:00
Stefano Ariestasia
cea3f7d3fa fix flake8 2023-09-04 11:53:59 +09:00
Stefano Ariestasia
a9f63c6a99 fix mypy 2023-09-04 11:52:09 +09:00
Stefano Ariestasia
0ada2d9390 fix mypy 2023-09-04 11:45:25 +09:00
Stefano Ariestasia
e1b6b9b5a6 ruff fix 2023-09-04 11:41:24 +09:00
root
3fea2a35a2 pre-commit fixes 2023-09-04 11:38:13 +09:00
Stefano Ariestasia
821a598ff4 fix ruff 2023-09-04 11:35:44 +09:00
Stefano Ariestasia
b77f926cdd add recursive analysis 2023-09-04 10:53:04 +09:00
Matthias
1a8b793c0a Merge branch 'develop' into feat/stoploss_adjust 2023-08-29 07:04:08 +02:00
Matthias
95daff182d Update backtesting to not use open_order_id 2023-08-25 07:08:24 +02:00
Matthias
452e1ab016 get_analyzed_dataframe should provide dataframe with startup candles
closes #7389
2023-08-15 19:43:04 +02:00
Matthias
161ab14ed0 Avoid lookahead bias through informative pairs in callbacks 2023-08-15 17:48:07 +02:00
Matthias
070a1990e8 Improve handling of None values from custom_stoploss 2023-08-14 16:46:33 +02:00
Matthias
fc60c0df19 Add call to stoploss-adjust for backtesting 2023-08-14 16:00:33 +02:00
Matthias
d53b6871ea Bump pre-commit mypy 2023-08-14 13:22:55 +02:00
Matthias
08bc615826 Further simplify backtest order handling 2023-08-14 13:22:55 +02:00
Matthias
bcc2dd9803 Simplify backtest order closing 2023-08-14 13:22:55 +02:00
Matthias
d7e9f87b33 Improve comment indent 2023-08-14 13:22:55 +02:00
Matthias
d7556cd66a Remove duplicate call in backtesting 2023-08-14 13:22:55 +02:00
Matthias
05e1828617 Improve Fee check 2023-08-09 20:26:08 +02:00
Matthias
4a62ebbf93 Don't hardcode fee, but use fee from the very first iteration. 2023-08-09 18:36:09 +02:00
hippocritical
25602ceac3 Added a fixed fee to 0.02 (any fixed value would suffice) since kucoin dynamically decides which pair gets which amount of fees and thereby producing false-positives upon verifying the entries/exits.
Added a check for timerange being set.
2023-08-05 08:24:47 +02:00
hippocritical
065899b426
Merge branch 'freqtrade:develop' into develop 2023-08-05 07:36:29 +02:00
Matthias
81cd241954 Update API backtest to return proper metadata 2023-08-03 07:05:57 +02:00
hippocritical
fe6deef1bd
Merge branch 'freqtrade:develop' into develop 2023-08-02 20:02:55 +02:00
Matthias
1a1103c239 Add backtest-result typing 2023-07-30 10:54:03 +02:00
Matthias
3148cd39c2 Don't drop metadata from original dict when storing backtest results 2023-07-30 10:54:03 +02:00
Matthias
6659d26131 Merge branch 'develop' into dataformat/feather 2023-07-29 20:04:12 +02:00
Matthias
47fca02ba0 Improve docstring 2023-07-25 07:06:42 +02:00
Matthias
327b055468 Add consecutive wins/losses to backtest output 2023-07-24 07:22:33 +02:00
Matthias
f26b49ee06 Ensure return value is an int, not a np.int 2023-07-24 07:09:19 +02:00
Matthias
0f046ceaf2 Implement calc_consecutive_losses 2023-07-24 06:36:24 +02:00
hippocritical
5b8800ee18 didnt intend to change the timerange itself, but the logger-output of the timerange 2023-07-23 20:20:15 +02:00
hippocritical
5bb74e448e Merge remote-tracking branch 'origin/develop' into develop 2023-07-23 20:08:27 +02:00
hippocritical
e4b488cb84 added stake_amount to a fixed 10k value.
In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount.

reason: some strategies demand a custom_stake_amount of 1$ demanding a very large wallet-size (which already was set previously)
Others start with 100% of a slot size and subdivide the base-orders and safety-orders down to finish at 100% of a slot-size and use unlimited stake_amount.

Edited docs to reflect that change.
2023-07-23 20:05:29 +02:00