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
Matthias
6247608cc6
top/bottom cap leverage
2021-11-19 07:11:19 +01:00
Matthias
021d1b518c
Call "leverage" to determine leverage to be used.
2021-11-18 20:55:45 +01:00
Matthias
f40221dd9f
Merge branch 'develop' into feat/short
2021-11-18 20:20:01 +01:00
Matthias
8638e6fe47
Simplify tradingmode parsing
2021-11-18 19:58:44 +01:00
Matthias
23a566b478
validate_stake_amount should not be a private method
2021-11-10 06:38:24 +01:00
Matthias
e4cca63163
Align sell_reason assignment location
...
trade mode sets it after "exit confirmation" - so should backtesting
detected in #5828
2021-11-08 19:32:13 +01:00
Matthias
ebc38159b8
Merge branch 'develop' into feat/short
2021-11-06 15:24:52 +01:00
Matthias
431b96de98
Merge branch 'develop' into pr/theluxaz/5710
2021-11-03 19:43:36 +01:00
Matthias
d60001e886
Stoploss cannot be below candle low
...
fix #5816
2021-10-30 16:14:13 +02:00
Matthias
17432b2823
Improve some stylings
2021-10-24 09:15:05 +02:00
theluxaz
0e085298e9
Fixed test failures.
2021-10-21 17:25:38 +03:00
theluxaz
905f3a1a50
Removed exit_tag from Trade objects.
2021-10-20 17:58:50 +03:00
theluxaz
1fdc4425dd
Changed exit_tag to be represented as sell_reason
2021-10-20 01:26:15 +03:00
GluTbl
00406ea7d5
Update backtesting.py
...
Support for custom entry-prices and exit-prices during backtesting.
2021-10-19 17:15:45 +05:30
theluxaz
69a59cdf37
Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions
2021-10-18 23:56:41 +03:00
theluxaz
b151cf032b
Merge branch 'develop' of https://github.com/theluxaz/freqtrade into main
...
# Conflicts:
# freqtrade/freqtradebot.py
# freqtrade/optimize/backtesting.py
2021-10-13 02:01:26 +03:00
theluxaz
b898f86364
Added sell_tag and buy/sell telegram performance functions
2021-10-13 00:02:28 +03:00
Sam Germain
e8b4cf6eaa
Merge branch 'develop' into feat/short
2021-10-02 03:15:12 -06:00
Matthias
5726886b06
Reduce backtest-noise from "pandas slice" warning
2021-09-27 20:52:19 +02:00
Matthias
a926f54a25
Add "side" parameter to custom_stake_amount
2021-09-26 19:35:54 +02:00
Matthias
84e013de2d
Update confirm_trade_entry to support "side" parameter
2021-09-26 19:33:22 +02:00
Matthias
4d49f1a0c7
Reset columns by dropping instead of resetting
2021-09-26 15:39:34 +02:00
Matthias
4fd00db630
Use "combined" enter_tag column
2021-09-26 15:22:37 +02:00
Matthias
6319c104fe
Fix unreliable backtest-result when using webserver mode
2021-09-26 15:07:48 +02:00
Matthias
2a678bdbb4
Update buy_tag column to long_tag
2021-09-26 08:37:44 +02:00
Matthias
0e13d57e57
Update advise_* methods to entry/exit
2021-09-22 20:42:31 +02:00
Matthias
4c6b1cd55b
Add very simple short logic to test-strategy
2021-09-22 20:36:03 +02:00
Sam Germain
778f0d9d0a
Merged feat/short into lev-strat
2021-09-19 17:44:12 -06:00
Rokas Kupstys
5dc78a0c66
[SQUASH] Get rid of _initialize() and fix informatives for dynamic pairlists.
2021-09-18 10:48:53 +03:00
Rokas Kupstys
dfa61b7ad2
[SQUASH] Fix informatives for each pair not being created because dataprovider was not available.
...
Fix not being able to have informative dataframe of a pair in whitelist.
2021-09-18 10:48:53 +03:00
Matthias
4d558879e9
Merge branch 'feat/short' into pr/samgermain/5378
2021-09-17 19:33:35 +02:00
Sam Germain
5225bd4a5b
Merge branch 'develop' into feat/short
2021-09-13 14:02:23 -06:00
Matthias
a12c3ecc9b
Remove credentials whenever dry-run is set from within the exchange
2021-09-13 20:27:32 +02:00
Sam Germain
695a8fc73b
comment updates, formatting, TODOs
2021-09-08 03:09:39 -06:00
Matthias
68b75af08e
Fix bug with inversed sell signals in backtesting
2021-09-05 08:59:18 +02:00
Matthias
ca44d2e092
Merge branch 'feat/short' into pr/samgermain/5378
2021-09-04 19:54:34 +02:00
Matthias
5184cc7749
Merge branch 'develop' into feat/short
2021-09-02 07:03:14 +02:00
Matthias
cb4889398b
Fix backtesting bug
2021-08-25 07:03:48 +02:00
Matthias
6524edbb4e
Simplify should_exit interface
2021-08-24 20:47:54 +02:00
Matthias
b40f985b13
Add short-exit logic to backtesting
2021-08-24 20:02:40 +02:00
Matthias
eb71ee847c
Rename backtest index constants
2021-08-24 06:56:06 +02:00
Matthias
11bd8e912e
Fix some tests
2021-08-24 06:52:28 +02:00
Matthias
7a977a8eaf
Merge branch 'feat/short' into pr/samgermain/5378
2021-08-24 06:28:16 +02:00
Matthias
957551ea97
Merge branch 'develop' into feat/short
2021-08-24 06:25:06 +02:00
Matthias
7373b39015
Initial support for backtesting with short
2021-08-23 21:16:26 +02:00
Matthias
3e8164bfca
Use proper exchange name in backtesting
2021-08-23 21:13:47 +02:00
Sam Germain
a5be535cc9
strategy interface: removed some changes
2021-08-21 17:06:04 -06:00
Sam Germain
e2d5299116
Name changes for strategy
2021-08-18 13:22:54 -06:00
Matthias
fa4ec9f83e
Add explicit test for get_sell_trade_entry
2021-08-15 14:52:24 +02:00
Matthias
8405ccc15e
Seperate detail data loading from regular backest-data loading
2021-08-14 16:33:01 +02:00
Matthias
88172fab82
Allow "detailed" backtesting timeframe to look into the candle
2021-08-14 16:04:23 +02:00
Matthias
bdbac37be7
Merge pull request #5399 from rokups/rk/fix-buy-tag-backtest
...
Fix buy_tag not being saved to trade object.
2021-08-12 06:36:33 +02:00
Rokas Kupstys
f6267c7514
Fix buy_tag not being saved to trade object.
...
Column is mistakenly excluded because advise_buy() creating this column runs after code detecting presence of buy_tag column.
2021-08-11 15:21:23 +03:00
ipqhjjybj
65d025923d
add code
2021-08-11 14:35:16 +08:00
Matthias
3f160c7144
Cache dataframe before cutting the first candle
...
This allows providing the "current closed" candle in all cases.
2021-08-10 09:14:29 +02:00
Matthias
5bfb9edf02
Only query date once from list
2021-08-09 15:42:17 +02:00
Matthias
895b912c71
Fix recently introduced lookahead bias in backtesting
...
closes #5388
2021-08-09 14:54:47 +02:00
Matthias
a5f796bc97
refactor ohlcvdata_to_dataframe to advise_all_indicators
2021-08-09 14:53:18 +02:00
Matthias
f17942b68f
Fix random test failure
2021-08-09 11:18:18 +02:00
Matthias
800b2eeaf0
Load protections as part of backtest()
...
this enables different values in hyperopt per epoch
2021-08-04 06:50:14 +02:00
Matthias
056bc93bc6
backtesting needs startup_candle_count
...
fixes informative-pair loading being different between --strategy-list and
--strategy.
2021-08-01 19:17:52 +02:00
Matthias
1ccc89d1e9
Store fully analyzed dataframe
2021-07-31 10:00:24 +02:00
Matthias
b1cbc75e93
Properly cache pair dataframe in backtesting (without startup-range).
2021-07-31 08:45:04 +02:00
Matthias
138b126d03
Merge pull request #5299 from kevinjulian/feat/kevinjulian/add-buy-signal-name
...
Add buy signal name
2021-07-30 08:23:11 +02:00
kevinjulian
aea5da0c73
changes testcase
2021-07-23 11:42:43 +07:00
kevinjulian
f5a660f845
caps BUY_TAG_IDX
2021-07-21 20:19:56 +07:00
kevinjulian
49886874aa
rename to buy_tag
2021-07-21 20:05:35 +07:00
kevinjulian
5d04d6ffa7
fix edge testcase
2021-07-20 23:40:32 +07:00
kevinjulian
cbfedf8b29
fix backtest testcase
2021-07-20 23:25:00 +07:00
Kevin Julian
edf9c08f06
Merge branch 'develop' into feat/kevinjulian/add-buy-signal-name
2021-07-20 19:19:46 +07:00
kevinjulian
ed30c023cd
fix some testcase
2021-07-20 19:08:14 +07:00
kevinjulian
9e63bdbac9
feat: add buy signal name
2021-07-20 04:58:20 +07:00
Matthias
365479f5e0
Remove startup-candles after populating buy/sell signals
...
closes #5242
2021-07-18 11:06:41 +02:00
Matthias
7b7d9c02d7
Merge pull request #5243 from freqtrade/feat/webservermode_progress
...
Introduce webserver mode subcommand
2021-07-18 10:48:55 +02:00
Matthias
7ea0a74c53
Default to proposed stake
2021-07-11 14:11:41 +02:00
Rokas Kupstys
0e4466ca1e
Implement strategy-controlled stake sizes. Expose self.wallet
to a strategy.
2021-07-11 12:38:58 +03:00
Matthias
2f33b97b95
Validate startup candles for backtesting correctly
...
closes #5250
2021-07-09 07:20:43 +02:00
Matthias
005da97183
extract backtesting abort functionality
2021-07-06 19:48:28 +02:00
Matthias
830b2548bc
Add backtest stopping
2021-07-06 19:48:28 +02:00
Matthias
134c61126e
Properly track bt progress ...
2021-07-06 19:48:28 +02:00
Matthias
048008756f
Add progress tracking for backtesting
2021-07-06 19:48:28 +02:00
Matthias
800e314bfd
Store backtesting results in backtest instance
2021-07-06 19:48:28 +02:00
Matthias
fbd91cd3f8
Improve formatting to avoid backslash newlines
2021-07-03 08:22:21 +02:00
Rokas Kupstys
bc0742ae67
Fix extremely optimistic results when using a combination of custom_stoploss and trailing_stop.
2021-06-30 09:10:50 +03:00
aayush-jain18
a46f60bd94
spell corrections
2021-06-25 22:10:04 +05:30
Matthias
e1010ff592
Don't load protections from config if strategy defines a property
2021-06-18 19:55:53 +02:00
Matthias
b38ab84a13
Add documentation mention about new behaviour
2021-06-17 06:48:41 +02:00
Rokas Kupstys
6d5fc96714
Implement most pessimistic handling of trailing stoploss.
2021-06-15 09:05:36 +03:00
Matthias
cf7394d01c
Export backtesting results by default
...
closes #4977
2021-06-14 19:57:24 +02:00
Matthias
d16a619489
Move SellType Enum to it's own module
2021-06-08 21:04:34 +02:00
Matthias
a39860e0de
Add tests for rejected signals
2021-05-23 14:15:02 +02:00
Matthias
7f125315b0
Track Rejected Trades
...
closes #3423
2021-05-23 09:42:05 +02:00
Matthias
f398888865
Refactor preprocessed trimming to seperate method
2021-05-21 08:26:19 +02:00
Kamontat Chantrachirathumrong
c2b9da68e1
fix indent
2021-05-20 11:56:11 +07:00
Kamontat Chantrachirathumrong
48210170e7
wrap with is not empty
2021-05-20 11:49:25 +07:00
Kamontat Chantrachirathumrong
082fb11bbe
Avoid having error cannot set a frame with no defined index and a scalar
2021-05-20 01:54:48 +07:00
Matthias
ef4d1c24d7
Merge pull request #4941 from brookmiles/fix-stoploss-above-candle
...
prevent backtest stoploss trade price being set above candle high
2021-05-19 06:20:35 +02:00
Rokas Kupstys
2d5f465f1b
Fix protections being loaded multiple times for first strategy when backtesting.
2021-05-15 13:37:03 +03:00
Rokas Kupstys
29fed37df3
Fix exception when few pairs with no data do not result in aborting backtest.
...
Exception is triggered by backtesting 20210301-20210501 range with BAKE/USDT pair (binance). Pair data starts on 2021-04-30 12:00:00 and after adjusting for startup candles pair dataframe is empty.
Solution: Since there are other pairs with enough data - skip pairs with no data and issue a warning.
Exception:
```
Traceback (most recent call last):
File "/home/rk/src/freqtrade/freqtrade/main.py", line 37, in main
return_code = args['func'](args)
File "/home/rk/src/freqtrade/freqtrade/commands/optimize_commands.py", line 53, in start_backtesting
backtesting.start()
File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 502, in start
min_date, max_date = self.backtest_one_strategy(strat, data, timerange)
File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 474, in backtest_one_strategy
results = self.backtest(
File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 365, in backtest
data: Dict = self._get_ohlcv_as_lists(processed)
File "/home/rk/src/freqtrade/freqtrade/optimize/backtesting.py", line 199, in _get_ohlcv_as_lists
pair_data.loc[:, 'buy'] = 0 # cleanup from previous run
File "/home/rk/src/freqtrade/venv/lib/python3.9/site-packages/pandas/core/indexing.py", line 692, in __setitem__
iloc._setitem_with_indexer(indexer, value, self.name)
File "/home/rk/src/freqtrade/venv/lib/python3.9/site-packages/pandas/core/indexing.py", line 1587, in _setitem_with_indexer
raise ValueError(
ValueError: cannot set a frame with no defined index and a scalar
```
2021-05-15 13:37:03 +03:00
Brook Miles
2eac23a15f
if stoploss price is above the candle high, set it to candle open instead. this can occur if stoploss had previously been reached but the sell was prevented by confirm_trade_exit
2021-05-15 15:38:51 +09:00
Matthias
92186d89a2
Add some changes to strategytemplate
2021-05-09 09:56:36 +02:00
Rokas Kupstys
8d8c782bd0
Slice dataframe in backtesting, preventing access to rows past current time.
2021-05-08 18:40:49 +03:00
Rokas Kupstys
f1eb653545
Fix strategy protections not being loaded in backtesting.
2021-05-08 10:29:47 +03:00
Rokas Kupstys
1b01ad6f85
Make exchange parameter optional and do not use it as parameter in backtesting.
2021-05-08 10:29:47 +03:00
Rokas Kupstys
d344194b36
Fix dataprovider in hyperopt.
2021-05-08 10:29:47 +03:00
Rokas Kupstys
6fb4d83ab3
Fix dataprovider in hyperopt.
2021-05-08 10:29:47 +03:00
Rokas Kupstys
cdfa6adbe5
Store pair datafrmes in dataprovider for backtesting.
2021-05-08 10:29:47 +03:00
Rokas Kupstys
d34da3f981
Revert "Add dataframe parameter to custom_stoploss() and custom_sell() methods."
...
This reverts commit 595b8735f8
.
# Conflicts:
# freqtrade/optimize/backtesting.py
# freqtrade/strategy/interface.py
2021-05-08 10:29:47 +03:00
Matthias
554f5f14b6
Raise exception if no data is left
2021-05-07 06:41:15 +02:00
Matthias
4f529fe424
Don't use Arrow to get min/max backtest dates
2021-05-06 19:43:14 +02:00
Matthias
f2e182002d
Simplify calling backtesting by returning the proper result
2021-05-02 09:46:27 +02:00
Matthias
7c8a367442
Update docs to not promote stoploss / take-profit
2021-04-28 20:36:06 +02:00
Matthias
2061162d79
Convert trade-opendate to python datetime
2021-04-26 20:01:13 +02:00
Rokas Kupstys
98f6fce2ec
Use correct sell reason in case of custom sell reason.
2021-04-25 09:48:40 +03:00
Rokas Kupstys
595b8735f8
Add dataframe parameter to custom_stoploss() and custom_sell() methods.
2021-04-25 09:48:40 +03:00
Rokas Kupstys
1aad128d85
Support returning a string from custom_sell() and have it recorded as custom sell reason.
2021-04-25 09:48:40 +03:00
Matthias
88f26971fa
Use defaultdict for backtesting
2021-04-24 19:15:09 +02:00
Matthias
f12e002686
Merge pull request #4775 from freqtrade/fix_wallet_unlimited
...
Fix wallet unlimited
2021-04-24 15:54:06 +02:00
Matthias
df16fbd742
Add "dataload complete" message to backtest + hyperopt
2021-04-23 19:22:41 +02:00
Matthias
d8c8a8d8c2
Remvoe pointless arguments from get_trade_stake_amount
2021-04-21 20:01:10 +02:00
Matthias
cfa9315e2a
Prevent out of candle ROI sells
2021-04-20 20:29:53 +02:00
Matthias
89bbfd2324
Remove candle_count from dataframe before backtesting
...
closes #3754
2021-03-29 20:26:54 +02:00
Matthias
292ea8c1d0
Update backtesting.py
2021-03-25 09:34:33 +01:00
rextea
0ca95aa0c2
Change rate to acctual close rate
2021-03-25 10:25:25 +02:00
Matthias
ec15610bff
Fix isort issue
2021-03-24 19:21:07 +01:00
rextea
f51f4b1817
Add confirm_trade_exit and confirm_trade_entry to backtesting
2021-03-23 10:35:46 +02:00
rextea
dc4ea604dd
Add confirm_trade_exit and confirm_trade_entry to backtesting
2021-03-23 10:19:16 +02:00
rextea
eb5d69dcd4
Add confirm_trade_exit and confirm_trade_entry to backtesting
2021-03-23 10:12:08 +02:00
rextea
6856963aef
Add confirm_trade_exit and confirm_trade_entry to backtesting
2021-03-23 10:09:41 +02:00
Matthias
b57c150654
Final balance should include forcesold pairs
2021-03-14 09:48:40 +01:00
Matthias
d1acc8092c
Improve backtest performance
2021-03-13 10:17:14 +01:00
Matthias
0db5c9746f
Merge pull request #4454 from freqtrade/backtest_compound_speed
...
Backtest compound, wallet, ...
2021-03-10 10:07:40 +01:00
Matthias
4b550dab17
Always reset fake-databases
...
Otherwise results may stick around for the next strategy
2021-03-08 19:40:29 +01:00
Matthias
0b81b58d28
Use pandas.values.tolist instead of itertuples
...
speeds up backtesting
closes #4494
2021-03-07 11:28:54 +01:00
Matthias
2083cf6ddf
Fix mypy errors introduced by Arrow update
2021-03-01 08:57:57 +01:00
Matthias
b2e9295d7f
Small stylistic fixes
2021-02-27 19:57:42 +01:00
Matthias
324b9dbdff
Simplify wallet code
2021-02-27 10:33:25 +01:00
Matthias
98f3142b30
Improve handling of backtesting params
2021-02-27 09:33:00 +01:00
Matthias
fc256749af
Add test for backtesting _enter_trade
2021-02-27 09:33:00 +01:00
Matthias
53a57f2c81
Change some types
...
Fix types of new model object
2021-02-27 09:33:00 +01:00
Matthias
03eb23a4ce
2 levels of Trade models, one with and one without sqlalchemy
...
Fixes a performance issue when backtesting with sqlalchemy, as that
uses descriptors for all properties.
2021-02-27 09:33:00 +01:00
Matthias
394a6bbf2a
Fix some type errors
2021-02-27 09:33:00 +01:00
Matthias
52acacbed5
Check min-trade-stake in backtesting
2021-02-27 09:33:00 +01:00
Matthias
7913166453
Improve performance by updating wallets only when necessary
2021-02-27 09:33:00 +01:00
Matthias
74fc4bdab5
Shorten debug log
2021-02-27 09:32:59 +01:00
Matthias
8d61a26382
Allow dynamic stake for backtesting and hyperopt
2021-02-27 09:32:59 +01:00
Matthias
e4abe902fc
Enable compounding for backtesting
2021-02-27 09:32:59 +01:00
Matthias
0faa6f84dc
Improve Wallet logging disabling for backtesting
2021-02-27 09:32:59 +01:00
Matthias
081b9be45c
use get_all_locks to get locks for backtest result
2021-02-27 09:32:59 +01:00
Matthias
712d503e6c
Use sell-reason value in backtesting, not the enum object
2021-02-27 09:32:59 +01:00
Matthias
9361aa1c95
Add wallets to backtesting
2021-02-27 09:32:59 +01:00
Matthias
789a980a30
Fix tests for new export format
2021-01-24 19:42:32 +01:00
Matthias
deb8432d33
Streamline trade to dataframe conversion
2021-01-24 08:58:41 +01:00
Matthias
8ee264bc59
Don't use profit_percent for backtesting results anymore
2021-01-24 08:58:41 +01:00
Matthias
48977493bb
Backtesting does not need to convert to BacktestResult object
2021-01-24 08:58:41 +01:00
Matthias
0b65fe6afe
Capture backtest start / end time
2021-01-14 19:09:25 +01:00
Matthias
9147106259
call bot_loop_start() in backtesting to allow setup-code to run
2021-01-14 19:09:25 +01:00
Matthias
baa1142afa
Use preprocessed to get min/max date in hyperopt
2021-01-14 19:09:21 +01:00
Matthias
9d4cdcad10
Extract backtesting of one strategy
2021-01-14 19:04:42 +01:00
Matthias
f3de0dd3eb
Fix support for protections in hyperopt
...
closes #4208
2021-01-14 06:53:40 +01:00
Matthias
f11fd2fee1
Sort imports
2020-12-23 17:00:02 +01:00
Matthias
67193bca3d
Move pairlists to be a plugin submodule
2020-12-23 16:54:35 +01:00
Matthias
266031a6be
Disallow PerformanceFilter for backtesting
...
closes #4072
2020-12-16 19:24:47 +01:00
Matthias
f047297995
Improve wording, fix bug
2020-12-07 15:48:06 +01:00
Matthias
5849d07497
Export locks as part of backtesting
2020-12-07 11:39:01 +01:00
Matthias
bb51da8297
Fix slow backtest due to protections
2020-12-07 11:39:01 +01:00
Matthias
75a5161650
Support multis-strategy backtests with protections
2020-12-07 11:39:01 +01:00
Matthias
a3f9cd2c26
Only load protections when necessary
2020-12-07 11:39:01 +01:00
Matthias
e2d15f4082
Add parameter to enable protections for backtesting
2020-12-07 11:39:01 +01:00
Matthias
32189d27c8
Disable output from plugins in backtesting
2020-12-07 11:39:01 +01:00
Matthias
9f34aebdaa
Allow closing trades without message
2020-12-07 11:39:01 +01:00
Matthias
b606936eb7
Make changes to backtesting to incorporate protections
2020-12-07 11:39:01 +01:00
Matthias
e73203acb8
FIx bug with dmmp
2020-11-01 10:51:07 +01:00
Matthias
cf2ae788d7
Convert backtesting rows to Tuples for performance gains
2020-10-18 17:16:57 +02:00
Matthias
5d3a67d324
Don't debug-log during backtesting.
...
Even though log-messages are surpressed, calling "debug" will always
have to do something.
2020-10-18 16:38:16 +02:00
Matthias
b80a219d03
Improve typehints for backtesting
2020-10-18 16:35:23 +02:00
Matthias
2591a34db4
Don't use arrow objects for backtesting
2020-10-18 16:18:52 +02:00
Matthias
23278e52db
remove obsolete logging statements
2020-10-08 20:22:59 +02:00
Matthias
e8f2c09f08
Extract handling of left open trades to seperate method
2020-10-08 20:11:45 +02:00
Matthias
52502193c4
Backtesting should not double-loop for sell signals
2020-10-07 20:59:05 +02:00
Matthias
253b7b763e
Apply isort to freqtrade codebase
2020-09-28 19:40:46 +02:00
Matthias
bb27b236ce
Remove unused arguments
2020-09-26 14:55:12 +02:00
Matthias
ff3e2641ae
generate_backtest_stats must take config options from the strategy
...
config
as a strategy can override certain options.
2020-09-25 20:47:37 +02:00
Matthias
284d39930f
Allow using pairlists through dataprovider in backtesting
2020-08-30 10:07:28 +02:00
Matthias
3d515ed5bf
Merge pull request #3558 from freqtrade/bt_add_maxdrawdown
...
Revise backtesting export format, add some metrics
2020-08-19 06:39:47 +02:00
Matthias
87e4a82041
Merge branch 'develop' into bt_add_maxdrawdown
2020-08-09 08:34:36 +02:00
Matthias
2afe1d5b11
Add link to full sample
2020-08-08 17:30:31 +02:00
Matthias
dd430455e4
Enable dataprovier for hyperopt
2020-08-08 17:04:32 +02:00
Matthias
c1191400a4
Allow 0 fee value by correctly checking for None
2020-07-15 19:20:20 +02:00
Matthias
0d15a87af8
Remove old store_backtest method
2020-07-03 20:21:32 +02:00
Matthias
7727292861
Rename duration to trade_duration
2020-07-03 06:58:27 +02:00