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
Italo
328b969801
Merge branch 'develop' of https://github.com/freqtrade/freqtrade into freqtrade-develop
2022-02-01 01:06:57 +00: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
82e193d9f0
Merge pull request #6260 from stash86/pos_adjust
...
Add max_buy_position_adjustment as attribute
2022-01-27 20:13:51 +01:00
Matthias
002226f5fd
Update setting to max_entry_position_adjustment
2022-01-27 16:57:50 +01:00
Matthias
12c79967f5
Merge pull request #6258 from italodamato/pass_dimensions_to_generate_estimator
...
Pass dimensions to generate_estimator
2022-01-25 19:37:22 +01:00
Italo
30b27ae736
explicit dtype
2022-01-25 12:29:55 +00:00
Italo
f7a5b2cb71
explicit dimensions, added **kwargs, updated docs
2022-01-25 11:43:40 +00:00
Stefano Ariestasia
0fa7986369
Merge branch 'freqtrade:develop' into pos_adjust
2022-01-25 10:30:18 +09:00
Italo
a7ea06791a
Merge branch 'freqtrade:develop' into plot_hyperopt_stats
2022-01-24 21:46:33 +00:00
Matthias
e252830229
Add entry_tag to "entry" callbacks
2022-01-24 07:02:01 +01:00
Italo
a2fb241a3b
increase initial points to 64
2022-01-24 01:35:42 +00: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
eacd1b0752
Merge branch 'plot_hyperopt_stats' into develop
2022-01-22 15:39:39 +00:00
Matthias
01b331ee42
Merge pull request #6274 from italodamato/set-stoploss-at-trade-creation
...
set stoploss at trade creation
2022-01-22 16:17:47 +01:00
Italo
0ce6c150ff
set stoploss at trade creation
2022-01-22 14:06:45 +00:00
Italo
82f0d4d056
set stoploss at trade creation
2022-01-22 14:03:12 +00:00
Stefano Ariestasia
fe5f61694b
Merge branch 'freqtrade:develop' into pos_adjust
2022-01-22 21:25:16 +09:00
Matthias
bb1d8fb54f
Improve message when no hyperopt fie is found
...
closes #6266
2022-01-21 15:24:26 +01:00
Stefano Ariestasia
f3a152a5a2
Merge branch 'freqtrade:develop' into pos_adjust
2022-01-21 17:11:36 +09:00
Italo
34d19dc108
Merge branch 'freqtrade:develop' into plot_hyperopt_stats
2022-01-20 11:37:54 +00: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
Italo
16a516a882
added plot functionality
2022-01-19 01:50:15 +00:00
Italo
a4dbdb549d
added type spec
2022-01-19 01:37:47 +00:00
Italo
407c20412d
Pass dimensions to generate_estimator
...
It's needed in order to create isotropic kernels for the GaussianProcessRegressor
2022-01-19 01:07:41 +00: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
062d00e8f2
Fix @informative decorator failing with edge.
2022-01-15 17:31:16 +02: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
Matthias
04976658da
Fix crash when using backtesting-show on a old backtestresult
2022-01-07 17:34:47 +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
e540959c27
Remove btdata from generate_strategy_stats
2022-01-07 09:27:07 +01:00
Matthias
1203d08d1e
generate_pair_metrics does not need processed dict
2022-01-07 09:27:07 +01:00
Matthias
addba6597a
Merge pull request #6165 from freqtrade/drawdown_fixes
...
Improved drawdown calculation
2022-01-06 09:56:05 +01:00
Matthias
2a2392fd73
Update parameter name in docstring
2022-01-06 09:15:30 +01:00
Matthias
a9a6cf13f8
Add exit_tag to detail-sells
...
closes #6159
2022-01-06 08:22:15 +01:00
Matthias
6abd6bceb9
Avoid recalculating statistics for comparison line
2022-01-05 20:16:48 +01:00
Sam Germain
501f473164
Merge branch 'develop' into feat/short
2022-01-04 22:47:33 -06:00
Matthias
8373a4e713
Small Adjustments to improve compatibility
2022-01-04 19:17:08 +01:00
Matthias
4d9b4ddc28
Update hyperopt-tools to use account drawdown
2022-01-04 17:43:39 +01:00
Matthias
09fae25c94
Fix some tests after drawdown calculation change
2022-01-04 17:07:31 +01:00
Matthias
7a2b50ce8b
Update drawdown calculation to account drawdown
2022-01-04 17:07:31 +01:00
Matthias
42579c0268
Drop hyperopt results legacy mode
2022-01-04 17:06:40 +01:00
Matthias
711a6a6dbc
Merge branch 'develop' into pr/xataxxx/6079
2022-01-02 22:21:41 +01:00
Matthias
209ecc8732
Fix typo in bt_progress
2022-01-02 19:38:03 +01:00
Matthias
ddfbe55e7c
Merge branch 'develop' into feat/short
2022-01-01 19:16:49 +01:00
Matthias
670aed06bf
Remove loop for hyperopt.
2021-12-31 17:35:08 +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
d10fb95fce
Fix typo
2021-12-17 22:27:10 +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
6ca6f62509
Remove duplicate code in optimize_reports
2021-11-27 09:39:10 +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
192ac88314
Update optimize-reports to enter_tag wording
2021-11-21 10:20:09 +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
5a8824171c
Add short/long metrics to backtest result
2021-11-18 20:42:43 +01:00
Matthias
0a50017c84
Add long/short support to backtesting
2021-11-18 20:34:59 +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
e0fd880c11
Improve some more pct formattings
2021-11-11 16:12:23 +01:00
Matthias
4eb9038358
Some more fixes to % formatting
2021-11-11 15:06:16 +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
raphael
ae2343db93
Update optimize_reports
...
Update show_backtest_reults() to preserve backwards compatibility by fixing KeyError: 'results_per_buy_tag' for older hyperopt result files.
2021-11-04 10:25:13 -04:00
Matthias
431b96de98
Merge branch 'develop' into pr/theluxaz/5710
2021-11-03 19:43:36 +01:00
Matthias
4249fcefba
Merge pull request #5150 from cryptomeisternox/backtesting-filter
...
Adding command for Filtering and print trades
2021-11-01 09:43:49 +01:00
Matthias
c094ac5762
Merge branch 'develop' into feat/short
2021-10-30 19:45:19 +02:00
Matthias
20904f1ca4
Add tests for new command
2021-10-30 19:43:42 +02:00
Matthias
72ecb45d86
Add test for backtest_show logic
2021-10-30 16:53:48 +02:00
Matthias
d60001e886
Stoploss cannot be below candle low
...
fix #5816
2021-10-30 16:14:13 +02:00
Matthias
f472709438
Add option to show sorted pairlist
...
Allows easy copy/pasting of the pairlist to a configuration
2021-10-30 10:50:40 +02:00
Matthias
6f1e719216
Merge branch 'develop' into pr/cryptomeisternox/5150
2021-10-30 10:26:05 +02:00
Matthias
201fe108bc
Merge pull request #5607 from TreborNamor/develop
...
a new hyperopt loss created that uses calmar ratio
2021-10-29 09:20:44 +02:00
Matthias
5cdae2ce3f
Remove CalmarDaily hyperopt loss
2021-10-29 06:53:40 +02:00
Matthias
20a61e03da
Merge pull request #5786 from SimonEbner/clean_up_file_handles
...
Clean up file handles
2021-10-25 19:49:07 +02:00
Robert Roman
88b96d5d1b
Update hyperopt_loss_calmar.py
2021-10-25 00:45:10 -05:00
Simon Ebner
f7926083ca
Clean up unclosed file handles
...
Close all file handles that are left dangling to avoid warnings such as
```
ResourceWarning: unclosed file <_io.TextIOWrapper
name='...' mode='r' encoding='UTF-8'> params = json_load(filename.open('r'))
```
2021-10-24 23:15:05 +02:00
Simon Ebner
df033d92ef
Improve performance of decimalspace.py
...
decimalspace.py is heavily used in the hyperoptimization. The following
benchmark code runs an optimization which is taken from optimizing a
real strategy (wtc).
The optimized version takes on my machine approx. 11/12s compared to the
original 32s. Results are equivalent in both cases.
```
import freqtrade.optimize.space
import numpy as np
import skopt
import timeit
def init():
Decimal = freqtrade.optimize.space.decimalspace.SKDecimal
Integer = skopt.space.space.Integer
dimensions = [Decimal(low=-1.0,
high=1.0,
decimals=4,
prior='uniform',
transform='identity')] * 20
return skopt.Optimizer(
dimensions,
base_estimator="ET",
acq_optimizer="auto",
n_initial_points=5,
acq_optimizer_kwargs={'n_jobs': 96},
random_state=0,
model_queue_size=10,
)
def test():
opt = init()
actual = opt.ask(n_points=2)
expected = [[
0.7515, -0.4723, -0.6941, -0.7988, 0.0448, 0.8605, -0.108, 0.5399,
0.763, -0.2948, 0.8345, -0.7683, 0.7077, -0.2478, -0.333, 0.8575,
0.6108, 0.4514, 0.5982, 0.3506
], [
0.5563, 0.7386, -0.6407, 0.9073, -0.5211, -0.8167, -0.3771,
-0.0318, 0.2861, 0.1176, 0.0943, -0.6077, -0.9317, -0.5372,
-0.4934, -0.3637, -0.8035, -0.8627, -0.5399, 0.6036
]]
absdiff = np.max(np.abs(np.asarray(expected) - np.asarray(actual)))
assert absdiff < 1e-5
def time():
opt = init()
print('dt', timeit.timeit("opt.ask(n_points=20)", globals=locals()))
if __name__ == "__main__":
test()
time()
```
2021-10-24 18:14:24 +02:00
Matthias
22dd2ca003
Fix mypy type errors
2021-10-24 15:18:29 +02:00
Matthias
17432b2823
Improve some stylings
2021-10-24 09:15:05 +02:00
Matthias
dffb4c5d53
Merge branch 'develop' into pr/TreborNamor/5607
2021-10-24 08:55:10 +02:00
Sam Germain
aed22f7dad
Merge branch 'develop' into feat/short
2021-10-22 11:45:27 -06:00
Matthias
78724e304e
Merge branch 'develop' into pr/theluxaz/5710
2021-10-21 17:46:39 +02:00
theluxaz
0e085298e9
Fixed test failures.
2021-10-21 17:25:38 +03:00
Matthias
96f99699e0
Merge pull request #4606 from rextea/add_days_breakdown_to_backtesting_summary
...
Add days breakdown table to backtesting
2021-10-21 13:56:30 +02:00
Matthias
e458c9867a
Styling fixes
2021-10-21 07:45:15 +02:00
Matthias
7b5346b984
Add test for breakdown-stats
2021-10-21 07:11:39 +02:00
Matthias
fa028c2134
Support day/week/month breakdowns
2021-10-21 06:58:40 +02:00
Matthias
7197f4ce77
Don't show daily % profit (it's wrong)
2021-10-20 20:01:31 +02:00
Matthias
de5497c766
backtest_days cannot be below 1
2021-10-20 19:39:37 +02:00
theluxaz
905f3a1a50
Removed exit_tag from Trade objects.
2021-10-20 17:58:50 +03:00
Sam Germain
3fffc315ac
Merge branch 'develop' into feat/short
2021-10-20 08:11:53 -06:00
Matthias
5454460227
Revert initial_points to 30
...
closes #5760
2021-10-20 07:46:15 +02: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
5ecdd1d112
Merge branch 'develop' into freqtrade-development
2021-10-19 00:00:15 +03:00
theluxaz
69a59cdf37
Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions
2021-10-18 23:56:41 +03:00
Matthias
7d8cd736b8
Support days-breakdown also for hyperopt results
2021-10-17 16:49:39 +02:00
Matthias
47bba331c1
Merge branch 'develop' into pr/rextea/4606
2021-10-17 16:29:31 +02:00
Matthias
69fdb8edfa
Merge branch 'develop' into feat/short
2021-10-17 10:40:08 +02:00
Matthias
0e7d903a6f
Merge pull request #5644 from slyons/develop
...
Add ability to ignore unparameterized spaces
2021-10-14 08:07:07 +02:00
Sam Germain
bd488cc086
Merge branch 'develop' into feat/short
2021-10-13 17:56:40 -06:00
theluxaz
0bb7ea10ab
Fixed minor header for backtesting
2021-10-14 01:34:30 +03:00
theluxaz
ed39b8dab0
fixed profit total calculation
2021-10-14 01:18:16 +03:00
Matthias
aed919a05f
Simplify "no-space-configured" error handling by moving it to hyperopt_auto
2021-10-13 19:54:35 +02: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
80b71790bc
Added some bigfixes for sell_tag
2021-10-13 01:22:53 +03:00
theluxaz
b898f86364
Added sell_tag and buy/sell telegram performance functions
2021-10-13 00:02:28 +03:00
sid
30bc96cf3f
simplify expression
2021-10-09 06:36:23 +05:30
sid
46c320513a
use profit_abs
2021-10-07 08:07:07 +05:30
sid
6ba46b38bd
fix formatting
2021-10-06 13:46:05 +05:30
sid
c0d01dbc26
add max_drawdown loss
2021-10-06 13:24:27 +05:30
Sam Germain
e8b4cf6eaa
Merge branch 'develop' into feat/short
2021-10-02 03:15:12 -06:00
Scott Lyons
df45f467c6
Adding ability to ignore unparameterized spaces
2021-09-30 01:11:02 -07:00
Robert Roman
ca973c05d1
Merge branch 'freqtrade:develop' into develop
2021-09-28 10:16:36 -05:00
Robert Roman
626a40252d
resolved mypy error
...
error: Signature of "hyperopt_loss_function" incompatible with supertype "IHyperOptLoss"
2021-09-27 17:33:29 -05:00
Robert Roman
c3414c3b78
resolved mypy error
...
error: Signature of "hyperopt_loss_function" incompatible with supertype "IHyperOptLoss"
2021-09-27 17:32:49 -05:00
Matthias
5726886b06
Reduce backtest-noise from "pandas slice" warning
2021-09-27 20:52:19 +02:00
Robert Roman
bdca3e2343
Merge branch 'freqtrade:develop' into develop
2021-09-26 15:37:09 -05: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
Robert Roman
24baad7884
Add Calmar Ratio Daily
...
This hyper opt loss calculates the daily Calmar ratio.
2021-09-25 16:28:36 -05:00
Robert Roman
3b99c84b0a
resolved the total profit issue
...
I resolved the total profit issue and locally ran flak8 and isort
2021-09-23 21:31:33 -05: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
Robert Roman
c6b684603c
removed trade_count inside if statement
...
i removed trade_count inside if statement. Even though it helps overfitting, It is not useful when running hyperopt on small datasets.
2021-09-22 09:21:43 -05:00
Robert Roman
b946f8e7f1
I sorted imports with isort
2021-09-22 09:18:17 -05:00
Robert Roman
3834bb86ff
updated line 42
...
I removed the minus sign on max drawdown.
2021-09-21 20:25:17 -05:00
Robert Roman
3845d55186
a new hyperopt loss created that uses calmar ratio
...
This is a new hyperopt loss file that uses the Calmar Ratio.
Calmar Ratio = average annual rate of return / maximum drawdown
2021-09-21 20:04:23 -05: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
853c3a4433
Merge pull request #5587 from raph92/patch-3
...
Update prepare_trials_columns() return type
2021-09-18 08:08:18 +02:00
raphael
4b2c1a9b8e
Remove trailing whitespace
2021-09-17 14:39:15 -04:00
raphael
e715f2a253
Update formatting
...
Line 302 was too long
2021-09-17 14:23:26 -04:00
raphael
9525a5b96c
Add type to "trials" parameter
2021-09-17 14:10:37 -04:00
Matthias
4d558879e9
Merge branch 'feat/short' into pr/samgermain/5378
2021-09-17 19:33:35 +02:00
raphael
124e97f3b9
Remove ununsed variables from export_csv_file
2021-09-17 11:57:36 -04:00
raphael
3a98fb72a4
Update prepare_trials_columns() return type
...
Was returning str, updated to pd.DataFrame
2021-09-17 11:42:33 -04:00
Matthias
d680fdf33a
Merge branch 'develop' into feat/short
2021-09-17 11:16:37 +02:00
Matthias
994c3c3a4c
Add some errorhandling for custom estimator
2021-09-16 07:13:25 +02:00
Matthias
c0811ae896
Add possibility to override estimator from within hyperopt
2021-09-15 21:36:53 +02:00
Matthias
57ea0c322f
Rename indicator_space to buy_indicator_space
2021-09-15 20:20:31 +02:00
Sam Germain
d77ab337bf
merged with develop
2021-09-14 18:26:46 -06:00
Matthias
315ea1e116
Merge pull request #5566 from freqtrade/remove_hyperopt
...
Remove legacy hyperopt
2021-09-14 19:20:58 +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
Matthias
fd6bf591f8
Update some tests to remove explicit hyperopt interface
2021-09-12 08:18:13 +02:00
Matthias
dad4a49e81
Remove legacy hyperopt interface from hyperopt.py
2021-09-12 08:18:13 +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
b0c4f079c2
Merge branch 'develop' into feat/backtest_detail
2021-08-31 20:16:42 +02:00
Matthias
2ce458810b
rename default_hyperopt_loss file
2021-08-26 19:39:57 +02:00
Matthias
053d6d8ee1
Merge branch 'feat/short' into pr/samgermain/5378
2021-08-25 20:34:52 +02:00
Matthias
e1c3b7fd8c
Merge branch 'develop' into feat/short
2021-08-25 20:31:40 +02:00
Matthias
7fb570cc58
hyperopt Fallback methods should not be used.
2021-08-25 20:28:55 +02:00
Matthias
23d21d8ace
Fix wrong message if protection-space is missing
...
closes #5480
2021-08-25 19:57:10 +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
0b6aedbc4c
Merge pull request #5395 from freqtrade/fix/hyperopt-show
...
Stream hyperopt-result in small batches
2021-08-10 19:54:02 +02:00
Matthias
039d6384ed
Stream hyperopt-result in small batches
...
Avoiding memory-exhaustion on huge hyperopt results
closes #5305
closes #5149
2021-08-10 10:12:57 +02: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
47f641d12f
Remove hyperopt-pickle result support
2021-08-09 07:04:18 +02:00
Matthias
3bd0c3d009
Remove legacy code from export to csv
2021-08-08 11:02:54 +02:00
Matthias
faf16a64e5
Remove legacy hyperopt file support
2021-08-08 10:22:45 +02:00
Matthias
0ae4eccea5
Refactor Hyperopt-list and hyperopt-show to reduce some duplicate code
2021-08-08 10:06:35 +02:00
Matthias
6532aba765
Merge pull request #5360 from freqtrade/hyperopt_protections
...
Hyperopt protections and Boolean parameter
2021-08-07 09:42:05 +02:00
Sam Germain
b9356a5564
Autopep8 formatting
2021-08-06 16:35:39 -06:00
Matthias
a6454cfc39
Autoenable protections when protection-space is selected
2021-08-04 07:17:29 +02:00
Matthias
091bf7c4d2
Output protection space
2021-08-04 06:50:14 +02:00
Matthias
544e0da6c2
Add protection parameter space
2021-08-04 06:50:14 +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
dfc17f2bd1
Fix ci failure
2021-08-03 07:21:11 +02:00
Matthias
4ab03f7e37
Don't load fallback methods for autohyperopt
2021-08-02 21:17:56 +02:00
Matthias
e70a742005
Reorder space methods in hyperopt
2021-08-02 21:12:10 +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
38296e8689
Merge pull request #5189 from rokups/rk/custom-stake
...
Implement strategy-controlled stake sizes
2021-07-11 19:45:43 +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
ad26b0dad0
Don't void backtest object when not necessary
2021-07-10 10:59:00 +02:00
Matthias
6129c5ca9e
Fix deprecation warnings from pandas 1.3.0
...
closes #5251
2021-07-09 20:46:38 +02:00
Matthias
2f33b97b95
Validate startup candles for backtesting correctly
...
closes #5250
2021-07-09 07:20:43 +02:00
octaviusgus
d1104bd434
fix daily profit data and daily profit curve example
2021-07-06 22:47:39 +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
octaviusgus
4aa2ae37bd
add daily_profit_list
...
added extra key daily_profit in return of optimize_reports.generate_daily_stats
this allows us to analyze and plot a daily profit chart / equity line using snippet below inside jupyter notebook
```
# Plotting equity line (starting with 0 on day 1 and adding daily profit for each backtested day)
from freqtrade.configuration import Configuration
from freqtrade.data.btanalysis import load_backtest_data, load_backtest_stats
import plotly.express as px
import pandas as pd
# strategy = 'Strat'
# config = Configuration.from_files(["user_data/config.json"])
# backtest_dir = config["user_data_dir"] / "backtest_results"
stats = load_backtest_stats(backtest_dir)
strategy_stats = stats['strategy'][strategy]
equity = 0
equity_daily = []
for dp in strategy_stats['daily_profit']:
equity_daily.append(equity)
equity += float(dp)
dates = pd.date_range(strategy_stats['backtest_start'], strategy_stats['backtest_end'])
df = pd.DataFrame({'dates':dates,'equity_daily':equity_daily})
fig = px.line(df, x="dates", y="equity_daily")
fig.show()
```
2021-07-04 14:38:17 +02:00
Matthias
898bef1837
Merge pull request #5219 from freqtrade/hyperopt_paramfile
...
automatic Hyperopt paramfile
2021-07-04 13:56:52 +02:00
Matthias
77293b1f1e
Remove Zero duration Trades
...
after the recent backtesting fixes, this metric no longer makes sense, as it can't really be 0 any longer.
2021-07-04 10:50:10 +02:00
Matthias
a4096318e0
Provide full backtest-statistics to Hyperopt loss functions
...
closes #5223
2021-07-04 10:15:19 +02:00
Matthias
9d6860337f
Merge pull request #5212 from rokups/rk/trailing-stop-2
...
Trailing stoploss in backtesting v2
2021-07-03 08:39:30 +02:00
Matthias
fbd91cd3f8
Improve formatting to avoid backslash newlines
2021-07-03 08:22:21 +02:00
Matthias
b25ad68c44
Fix np.bool_ not outputting correctly
2021-07-02 20:52:25 +02:00
Matthias
15e36a20e1
Improve naming of default hyperopt serializer
2021-06-30 19:48:34 +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
Matthias
0809225a0a
Update documentation to mention parameter strategy files
2021-06-30 07:05:20 +02:00
Matthias
645da51b5f
Add test for parameter loading
2021-06-30 06:55:10 +02:00
Matthias
dcf53ac3ff
Add test for try_eport_params
2021-06-30 06:33:40 +02:00
Matthias
84703080b8
Extract hyperopt_defaults_serializer to hyperopt_tools
2021-06-29 20:51:29 +02:00
Matthias
62cdbdc26a
Automatically export hyperopt parameters
2021-06-29 20:51:25 +02:00
barbarius
a8117c6e0b
Refactored to use results variable from for loop
2021-06-29 11:24:49 +02:00
Matthias
8ca0076332
Fix small typos
2021-06-29 06:50:47 +02:00
Matthias
d4514f5f16
Introduce File versions to hyperopt result files
2021-06-29 06:50:47 +02:00
Matthias
a7e9e362b7
Simplify printing logic for non-optimized parameters
2021-06-29 06:50:47 +02:00
Matthias
8b7010fc9a
Update pprint name
2021-06-29 06:50:47 +02:00
Matthias
aa5181ca81
Properly export non-optimized parameters
2021-06-29 06:50:47 +02:00
Matthias
34e6ce431f
Print non-optimized parameters (also stop / roi)
2021-06-29 06:50:47 +02:00
Matthias
2310deec53
Update name to get non-optimized parameters
2021-06-29 06:50:47 +02:00
Matthias
8cdd1e3aef
Fix some type errors
2021-06-29 06:50:47 +02:00
Matthias
2bf17f71e7
Dump parameters from hyperopt-show
2021-06-29 06:50:47 +02:00
barbarius
a0f28f4a15
Added max open trades to strategy summary first line
2021-06-28 17:05:12 +02:00
barbarius
2e5b719de8
Added timerange above multiple strategy backtest result summary table
2021-06-28 10:54:54 +02:00
barbarius
c99ae3b419
Added timerange above multiple strategy backtest result summary table
2021-06-28 10:20:34 +02:00
Matthias
1067a9f356
Move strategy-override signals to top-level of the config
...
closes #2867
2021-06-26 16:06:13 +02:00
aayush-jain18
d294ef10d7
unexpected docstring params
2021-06-25 23:56:16 +05:30
aayush-jain18
a46f60bd94
spell corrections
2021-06-25 22:10:04 +05:30
Matthias
e40d481d09
Merge pull request #5014 from Rikj000/hyperopt-show-include-non-optimized-in-json
...
BugFix - `hyperopt-show --print-json` include non-optimized params
2021-06-19 07:42:15 +01:00
Rik Helsen
656bebd4da
🪲 Included completely non_optimized spaces in json + swapped merge dictionary order
2021-06-18 22:03:04 +02:00
Matthias
e1010ff592
Don't load protections from config if strategy defines a property
2021-06-18 19:55:53 +02:00
Rik Helsen
1567804509
⚡ kwargs merge dictionaries instead of using loops
2021-06-17 22:41:49 +02:00
Cryptomeister Nox
85979c3176
* Adding command for Filtering
...
* Read latest Backtest file and print trades
2021-06-17 20:35:02 +02:00
Rik Helsen
546ca01071
♻️ Fixed flake8 warning
2021-06-17 20:33:21 +02:00
Rik Helsen
90d37f5ec6
🔀 Merged upstream branches and fixed merge conflicts
2021-06-17 20:24:20 +02:00
Matthias
8bb464bd64
Merge pull request #5108 from rokups/rk/pessimistic-trailing-stoploss
...
Implement most pessimistic handling of trailing stoploss.
2021-06-17 18:41:00 +01:00
Matthias
b38ab84a13
Add documentation mention about new behaviour
2021-06-17 06:48:41 +02:00
Matthias
1c9def2fdb
Update freqtrade/optimize/optimize_reports.py
2021-06-16 20:17:44 +01:00
barbarius
1bb04bb0c2
Moved daily avg trade row next to total trades on backtest results
2021-06-16 11:40:55 +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
eaf0aac77e
Remove OrderedDict
...
as we're no longer supporting python 3.6
2021-06-13 11:47:18 +02:00
Matthias
d54ee0eb04
Refactor hyperopt_tools naming
2021-06-13 11:24:24 +02:00
Matthias
ef208012c4
Merge pull request #5104 from freqtrade/enums_own_module
...
Enums own package
2021-06-10 05:31:14 +01:00
Bruno Gouvea
40f1ede775
Simplifying HO's result function
2021-06-09 12:03:24 -03:00
Matthias
d16a619489
Move SellType Enum to it's own module
2021-06-08 21:04:34 +02:00
Bruno Gouvea
3cce668353
Creating a control variable to determine the existence of max drawdown in the final result.
2021-06-08 02:57:44 -03:00
Bruno Gouvea
816bb531b3
Creating fake column for legacy mode on max drawdown
2021-06-08 02:42:55 -03:00
Bruno Gouvea
4595db39aa
Displaying max. drawdown only when it is not legacy mode.
2021-06-08 02:18:00 -03:00
Bruno Gouvea
c513c9685d
Remove blank line (PEP8)
2021-06-07 18:20:04 -03:00
Bruno Gouvea
5c3a418e65
Adjusting drawdown column position.
2021-06-07 18:15:26 -03:00