Commit Graph

875 Commits

Author SHA1 Message Date
Matthias
4580127fa8 Small refactor 2022-04-30 14:51:57 +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
Sam Germain
4a6f1e90c3 Merge branch 'develop' into bot-start 2022-04-29 22:23:42 -06: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
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
froggleston
431c539cbd Fix isort import order 2022-04-25 10:42:24 +01:00
froggleston
580da21dda Move df append to pd concat 2022-04-25 10:31:19 +01: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
Matthias
580a2c6545 Don't repeat backtest-storing 2022-04-23 09:23:53 +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
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
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
bf5799ef9e
Add new functionality to backtesting. 2022-04-16 15:07:18 +03:00
Matthias
68fe7476c9 Update more terminology to forceexit 2022-04-10 15:56:29 +02:00
Matthias
8e98a2ff9f api - provide assset_currency via API 2022-04-09 16:42:18 +02:00
Matthias
ea1c55b161 Update backtesting to use row instead of sell_row 2022-04-07 19:43:34 +02:00
மனோஜ்குமார் பழனிச்சாமி
7e97e58820 renamed enter-side 2022-04-06 06:32:13 +05:30
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
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
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
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
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
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
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
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
Sam Germain
a9eb8ce1bf added todos back in 2022-02-16 05:47:41 -06: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
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
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
Sam Germain
e0d42ad9a7
Update backtesting.py 2022-02-05 18:29:48 -06: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
Matthias
090554f197 Try fill backtest order imediately for adjusted order 2022-02-05 16:28:21 +01:00
Matthias
f4149ee462 Force ROI to be within candle 2022-02-05 16:28:21 +01:00
Matthias
44e616c264 Add unfilledtimeout to required props for backtesting 2022-02-05 16:28:21 +01:00
Matthias
49cecf1cb2 Small cosmetic fix 2022-02-05 16:28:21 +01:00
Rokas Kupstys
9140679bf4 Backtest order timeout continued. 2022-02-05 16:28:21 +01:00
Rokas Kupstys
15698dd1ca Fix errors so it runs, implement timeout handling. 2022-02-05 16:28:21 +01:00
Matthias
f7a1cabe23 Add first version to fill orders "later" in backtesting 2022-02-05 16:28:21 +01:00
Matthias
c12e5a3b6c Initial idea backtesting order timeout 2022-02-05 16:28:21 +01:00
Sam Germain
8b57827676 exchange.get_max_pair_stake_amount hard set leverage to 0 2022-02-04 14:26:15 -06:00
Sam Germain
dc6cb445fd Merge branch 'feat/short' into max-amount 2022-02-04 04:42:38 -06:00
Sam Germain
3ee2b7978c wallets.validate_stake_amount added param max_stake_available 2022-02-03 20:33:16 -06:00
Sam Germain
7465037906 freqtradebot.execute_entry test for too high stake amount 2022-02-03 20:33:16 -06:00
Sam Germain
8c680d75b9 moved max_stake_amount check for None to exchange.get_max_pair_stake_amount 2022-02-03 20:33:16 -06:00
Sam Germain
6b6b35ac1c check for max stake limit in freqtradebot and backtesting 2022-02-03 20:33:04 -06:00
Sam Germain
edc0e9c75f backtesting._get_ohlcv_as_lists changed candle_type to candle_type_def 2022-02-03 17:48:34 -06:00
Sam Germain
977f87659c edited backtesting._get_sell_trade_entry TODO: removed "Other fees" 2022-02-03 17:48:33 -06:00
Sam Germain
73d10b5c02 backtesting._get_ohlcv_as_lists removed # TODO-lev: Candle-type should be conditional, either "spot" or futures 2022-02-03 17:48:33 -06:00
Matthias
a4e1aaa9bd
Merge pull request #6307 from freqtrade/bt_shift
Remove shift in analyzed dataframe columns
2022-02-02 19:52:10 +01:00
Matthias
463714832d Merge branch 'develop' into feat/short 2022-01-29 14:19:30 +01:00
Matthias
5d0c2bcb44 Shift candles after pushing them to dataprovider
this will ensure that the signals are not shifted in callbacks
closes #6234
2022-01-28 07:25:10 +01:00
Matthias
002226f5fd Update setting to max_entry_position_adjustment 2022-01-27 16:57:50 +01:00
Stefano Ariestasia
0fa7986369
Merge branch 'freqtrade:develop' into pos_adjust 2022-01-25 10:30:18 +09:00
Matthias
e252830229 Add entry_tag to "entry" callbacks 2022-01-24 07:02:01 +01:00
Reigo Reinmets
451eca51c8 Optimise the multiple usages of the same timestamp. 2022-01-23 20:58:25 +02:00
Reigo Reinmets
e67a54f7a9 Fix missing order time info in backtesting. 2022-01-23 20:52:35 +02:00
Matthias
7429f535c1 Imrpove code by reusing available properties 2022-01-23 18:59:09 +01:00
Matthias
ad28543d4d Update kraken calculation 2022-01-22 19:46:11 +01:00
Matthias
a0c0c4dcbe Update funding_fee formula to correctly calculate fees for long trades 2022-01-22 19:46:10 +01:00
Matthias
f26cd19146 Merge index and mark rates as part of dataload 2022-01-22 19:45:46 +01:00
Matthias
84c6d92d4c calculate_funding_fees is actually a public exchange interface (used in backtesting). 2022-01-22 19:45:46 +01:00
Matthias
e9e7fd749b Support funding-fees while running backtest 2022-01-22 19:45:43 +01:00
Matthias
f090dcc597 Merge branch 'develop' into feat/short 2022-01-22 17:56:01 +01:00
Italo
82f0d4d056 set stoploss at trade creation 2022-01-22 14:03:12 +00:00
Stefano Ariestasia
f3a152a5a2
Merge branch 'freqtrade:develop' into pos_adjust 2022-01-21 17:11:36 +09:00
Matthias
a6c7f45545 Update webserver backtseting to reuse prior results 2022-01-20 06:51:48 +01:00
Stefano Ariestasia
62ea1a445e add lines to show_config message 2022-01-20 10:03:26 +09:00
Rokas Kupstys
5fffc5033a Rework backtesting --no-cahche to --cache=[none, day, week, month].
Fix an issue where config modification during runtime would prevent use of cached results.
2022-01-19 11:44:35 +02:00
Matthias
2bcfc0c90c Add warning about cache problems 2022-01-16 18:01:05 +01:00
Matthias
5bb48eaed0 Replace Nan with 0 or None in backtesting
part of #6224
2022-01-16 14:49:29 +01:00
Rokas Kupstys
2b7405470a Fix timerange check. 2022-01-15 17:30:40 +02:00
Rokas Kupstys
16861db653 Implement previous backtest result reuse when config and strategy did not change. 2022-01-15 17:30:40 +02:00
Reigo Reinmets
13bc5c5d8f Fine, this does look better. 2022-01-13 20:24:21 +02:00
Reigo Reinmets
678be0b773 Slightly move code. 2022-01-13 20:16:45 +02:00
Reigo Reinmets
3b7167ab07 Fix backtesting missing filled amounts in orders. 2022-01-10 20:30:40 +02:00
Reigo Reinmets
0bca07a32a Added min_stake, max_stake. Removed pair as its included in trade. 2022-01-08 17:20:02 +02:00
Reigo Reinmets
8e424f7c73
Merge branch 'freqtrade:develop' into dca 2022-01-08 14:57:15 +02:00
Matthias
dad080f56f Merge branch 'develop' into feat/short 2022-01-08 10:45:15 +01:00
Rokas Kupstys
11ace0f867 Instead of clearing processed dict, store df_analyzed (one with buy/sell signals) dataframe in it.
It still saves memory because this dataframe is kept by DataProvider.
Fixes #6179.
Amends #6133 (a715083fc0).
2022-01-07 12:07:49 +02:00
Matthias
46809f08fe Merge branch 'develop' into feat/short 2022-01-07 10:13:16 +01:00
Matthias
a9a6cf13f8 Add exit_tag to detail-sells
closes #6159
2022-01-06 08:22:15 +01:00
Matthias
711a6a6dbc Merge branch 'develop' into pr/xataxxx/6079 2022-01-02 22:21:41 +01:00
Matthias
ddfbe55e7c Merge branch 'develop' into feat/short 2022-01-01 19:16:49 +01:00
Rokas Kupstys
a715083fc0 Reduce memory usage by not holding on to no longer needed data. 2021-12-31 12:10:01 +02:00
Wade Dyck
3d9360bb8c When backtesting, pass the candle_type to load_data. 2021-12-27 11:46:05 -07:00
Reigo Reinmets
817a65b656 This is not needed since backtesting does not have open orders. 2021-12-26 20:01:48 +02:00
Reigo Reinmets
de79d25caf Refactoring to use strategy based configuration 2021-12-24 12:38:43 +02:00
Reigo Reinmets
db2f0660fa Some more compatibility fixes. 2021-12-18 11:15:59 +02:00
Reigo Reinmets
30673f84f9 Flake8 compatibility 2021-12-18 11:00:25 +02:00
Reigo Reinmets
f11a40f144 Improve documentation on adjust_trade_position and position_adjustment_enable 2021-12-11 17:14:04 +02:00
Reigo Reinmets
f97662e816 Add position_adjustment_enable config keyword to enable it. 2021-12-11 00:28:12 +02:00
Reigo Reinmets
1e3fc5e984 Slight code touchup 2021-12-10 22:48:00 +02:00
Reigo Reinmets
c179951cca Expect stake_amount, not actual amount of pair from strategy for DCA. 2021-12-10 20:42:24 +02:00
Reigo Reinmets
b2c2852f86 Initial backtesting support. This does make it rather slow. 2021-12-09 23:21:35 +02:00
Matthias
edd80c3006 Merge branch 'develop' into feat/short 2021-12-09 06:34:07 +01:00
Matthias
c981cc335d Remove wrong comment 2021-12-04 14:51:55 +01:00
Matthias
68ac8008ec Call custom_exit_price only for sell_signal and custom_sell 2021-12-04 14:14:22 +01:00
Matthias
86910b58dc Bracket entry/exit prices to low/high of the candle 2021-12-03 17:44:53 +01:00
Matthias
d1209fe415 Merge branch 'develop' into pr/GluTbl/5756 2021-12-03 17:37:44 +01:00
Matthias
2f17fa2765 Update more to use candleType 2021-12-03 14:15:35 +01:00
Matthias
5493212672 More candletype changes 2021-12-03 13:04:31 +01:00
Matthias
77443d5abc
Merge pull request #6011 from freqtrade/lev/backtesting
correctly apply leverage to backtesting
2021-12-01 19:49:40 +01:00
Matthias
67f3570bf3 Merge branch 'develop' into feat/short 2021-12-01 07:21:36 +01:00
Matthias
a2a974fc6d correctly apply leverage to backtesting 2021-11-30 20:32:34 +01:00
Matthias
450293878f
Merge pull request #5964 from stash86/fix-docs
Add more words on VolumePairlist backtest error message
2021-11-26 07:48:24 +01:00
Matthias
897788de17 Reformulate exception to be "nicer" 2021-11-26 07:02:50 +01:00
Matthias
cc9ea1d466
Merge pull request #5935 from freqtrade/short_buy_tag_compat
Short buy tag compat
2021-11-26 06:29:56 +01:00
Stefano Ariestasia
5307d2bf3b Trimming the sentence 2021-11-25 17:04:04 +09:00
Stefano Ariestasia
0d1e84cf55 Add more words
Because apparently, we get at least 1 question about this everyday in Discord
2021-11-25 16:00:10 +09:00
Matthias
ce0593c0e1 Merge branch 'develop' into feat/short 2021-11-23 07:35:26 +01:00
Rokas Kupstys
78a00f2518 Use market data to get base and quote currencies in @informative() decorator. 2021-11-22 09:27:45 +02:00
Matthias
c26c0b6822 Merge branch 'feat/short' into short_buy_tag_compat 2021-11-21 19:31:59 +01:00
Matthias
aad37bb8f3
Merge pull request #5924 from freqtrade/feat/leverage
call leverage methods
2021-11-21 19:30:27 +01:00
Matthias
63d94aa585 short should be allowed for all non-spot modes 2021-11-21 19:29:08 +01:00
Matthias
fb519a5b39 Add comment with reasoning to ignore leverage in min_amount calculation 2021-11-21 10:28:40 +01:00
Matthias
36deced00b Remove more buy_tag references 2021-11-21 09:55:10 +01:00