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
Patrick Weber
4532222010
Fixed line length in HyperOpt for new name
...
Fixed line length errors and multiple f strings to facilitate strategy being added in the name
2021-03-05 13:16:49 -06:00
Patrick Weber
345f7404e9
Add strategy name to HyperOpt results filename
...
This just extends the HyperOpt result filename by adding the strategy name. This allows analysis of HyperOpt results folder with no additional necessary context. An alternative idea would be to expand the result dict, but the additional static copies are non value added.
2021-03-05 12:56:11 -06:00
Matthias
731ab5d2a7
Fix too long line errors
2021-03-05 19:22:57 +01:00
Matthias
bc05d03126
Make best / worst day absolute
2021-03-05 19:21:09 +01:00
raoulus
0968ecc1af
added "Median profit" column to hyperopt -> export-csv
2021-03-04 17:27:04 +01:00
Matthias
078b77d41b
Fix crash when using unlimited stake and no trades are made
2021-03-02 16:12:22 +01:00
Joe Schr
55a315be14
fix: avg_stake_amount should not be NaN
if df is empty
2021-03-02 13:38:55 +01:00
Matthias
2083cf6ddf
Fix mypy errors introduced by Arrow update
2021-03-01 08:57:57 +01:00
Matthias
9cb37409fd
Explicitly convert starting-balance to float
2021-02-28 09:56:29 +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
f04f07299c
Improve backtesting metrics
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
f367375e5b
ABS drawdown should show wallet high and low values
2021-02-27 09:33:00 +01:00
Matthias
0d2f877e77
Use absolute drawdown calc
2021-02-27 09:32:59 +01:00
Matthias
74fc4bdab5
Shorten debug log
2021-02-27 09:32:59 +01:00
Matthias
72f21fc5ec
Add trade-volume metric
2021-02-27 09:32:59 +01:00
Matthias
35e6a9ab3a
Backtest-reports should calculate total gains based on starting capital
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
b5177eadab
Extract close method for exchange
2021-02-27 09:32:59 +01:00
Matthias
4ce4eadc23
remove only ccxt objects when hyperopting
2021-02-27 09:32:59 +01:00
Matthias
9361aa1c95
Add wallets to backtesting
2021-02-27 09:32:59 +01:00
Matthias
11b20d6932
Add config to hyperopt_loss_function documentation
2021-02-17 07:04:29 +01:00
Matthias
eff0d46ea1
Merge pull request #4375 from flomerz/pass_processed_data
...
pass data and config to loss function
2021-02-16 20:06:50 +01:00
Matthias
009a447d8a
Adjust documentation for new parameter in loss functions
2021-02-16 19:51:09 +01:00
Florian Merz
3e06cd8b3a
pass data and config to loss function
2021-02-16 10:11:33 +01:00
Florian Reitmeir
5c263c7ffd
add backtesting results abs profit min/abs profit max, to get a better view if a strategy has a enough money to succeed
2021-02-14 19:41:12 +01:00
Matthias
e7acee7904
Improve coin value output by rounding coin specific
2021-02-13 16:05:56 +01:00
Matthias
072abde9b7
Introduce round_coin_value to simplify coin rounding
2021-02-13 16:05:35 +01:00
Matthias
c659150d9f
Also print trade_duration in seconds to json
2021-01-25 19:42:34 +01:00
Matthias
62e43539c9
Limit max_open_trades to maximum available pairs
...
closes #4008
2021-01-24 19:59:54 +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
7c80eeea95
Add use_custom_stoploss to optimize_report
2021-01-19 22:51:12 +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
63a579dbab
Add sell_profit_offset parameter
...
Allows defining positive offsets before enabling the sell signal
2021-01-11 19:30:25 +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
e40d97e05e
Small formatting improvements
2020-11-28 17:52:29 +01:00
Matthias
5d3f59df90
Add best / worst trade
2020-11-28 17:45:56 +01:00
Matthias
a00f852cf9
Add best / worst pair to summary statistics
2020-11-28 17:37:10 +01:00
Matthias
a47d8dbe56
Small refactor, avoiding duplicate calculation of profits
2020-11-28 11:35:29 +01:00
Matthias
730c9ce471
Add Max_open_trades to summary metrics
2020-11-24 06:57:26 +01:00
Matthias
887d78171c
Merge pull request #3857 from freqtrade/arrow_deprecation_timestamp
...
Convert timestamp to int_timestamp for all arrow occurances
2020-11-02 16:40:43 +01:00
Matthias
e73203acb8
FIx bug with dmmp
2020-11-01 10:51:07 +01:00
Matthias
7a092271c5
Merge branch 'develop' into arrow_deprecation_timestamp
2020-10-20 20:01:54 +02: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
380e6628e0
Merge branch 'develop' into feat/backtest_speedup_serialize
2020-10-18 16:19:04 +02:00
Matthias
2591a34db4
Don't use arrow objects for backtesting
2020-10-18 16:18:52 +02:00
Matthias
ecddaa663b
Convert timestamp to int_timestamp for all arrow occurances
2020-10-13 06:24:01 +02:00
Matthias
23bad8fd9f
Rename DefahltHyperoptLoss function to ShortTradeDurHyperOptLoss
2020-10-10 14:22:29 +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
40b61bbfe3
Adjust trailing-stop to be python compliant
2020-10-05 07:44:12 +02:00
Matthias
cb74c9bcde
Fix hyperopt output
2020-10-03 13:27:06 +02:00
Matthias
6977ffdbf9
Merge branch 'develop' into isort_config
2020-09-28 20:21:55 +02:00
Matthias
253b7b763e
Apply isort to freqtrade codebase
2020-09-28 19:40:46 +02:00
Matthias
c42a924df8
Load latest file
2020-09-27 16:50:42 +02:00
Matthias
ff96cf154c
Keep hyperopt result history
2020-09-27 16:33:26 +02:00
Matthias
b736691e0e
Remove hyperopt --continue
2020-09-27 16:18:28 +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
378f03a5b1
Add relevant parameters to stored backtest result
2020-09-25 06:37:40 +02:00
Matthias
6674285b12
Merge pull request #3756 from allenday/patch-1
...
prettify hyperopt console output
2020-09-19 17:43:05 +02:00
Matthias
f0d7f18cf9
Pad wins / draws / losses for hyperopt with spaces instead of 0's
2020-09-19 17:32:22 +02:00
Matthias
ec01f20bf8
Add ratio to sell reason stats
2020-09-16 20:27:28 +02:00
Allen Day
f63a378967
Update hyperopt.py
...
zero pad wins/draws/losses (W/D/L) column to preserve alignment in console pretty print
2020-09-07 23:26:55 +08:00
Matthias
284d39930f
Allow using pairlists through dataprovider in backtesting
2020-08-30 10:07:28 +02:00
Matthias
d8a6410fd1
Fix small bug when using max-open-trades -1 in backtesting
2020-08-23 09:00:57 +02:00
Matthias
3d93236709
Remove unused import
2020-08-21 14:55:47 +02:00
Matthias
301f74fd1b
Merge pull request #3418 from freqtrade/hyperopt_colorama_init
...
Test colorama init again (after the fixes done to progressbar)
2020-08-21 14:54:35 +02:00
Matthias
4f1179d85c
Test for empty case
2020-08-20 20:11:58 +02:00
Matthias
f5a9001dc0
Handle backtest results without any trades
2020-08-20 19:51:36 +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
9982ad2f36
Add profit to backtest summary output
2020-08-18 16:59:24 +02:00
Matthias
668d167adc
Add docstring to store_backtest_stats
2020-08-18 16:15:24 +02:00
Matthias
4eb17b4daf
Remove unneeded function
2020-08-18 15:20:37 +02:00
Matthias
a6dac9acf3
Merge pull request #3667 from freqtrade/hyperopt_enable_dataprovider
...
Hyperopt enable dataprovider
2020-08-17 07:00:48 +02:00
Matthias
1f153f51ee
Merge pull request #3660 from freqtrade/hyperopt_default_tests
...
Move DefaultHyperopt to tests
2020-08-17 06:49:55 +02:00
Matthias
b98107375e
Improve formatting of result string to be a bit conciser
2020-08-14 07:31:14 +02:00
Matthias
d76ee43246
Show wins / draws / losses in hyperopt table
2020-08-14 07:14:10 +02:00
Matthias
05bd099f51
Merge branch 'develop' into pr/yazeed/3008
2020-08-14 06:58:09 +02:00
Matthias
87e4a82041
Merge branch 'develop' into bt_add_maxdrawdown
2020-08-09 08:34:36 +02:00
Matthias
fca41a44bb
Also logg timeframe
2020-08-08 20:20:58 +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
8b6d10daf1
Move DefaultHyperopt to test folder (aligned to strategy)
2020-08-06 08:50:41 +02:00
Matthias
aab5596fa6
Convert trade open / close to timestamp
...
(to allow uniform analysis of backtest and real trade data - while
giving control of date-formatting to the endsystem.
2020-07-27 07:20:40 +02:00
Matthias
977a6d4e9c
Add profit_total to results line
2020-07-26 16:10:48 +02:00
Matthias
454046f745
Add stake_currency and max_opeN_trades to backtest result
2020-07-26 15:55:54 +02:00
Matthias
8d0f338bf2
Timestamps should be in ms
2020-07-26 15:23:21 +02:00
Matthias
9ed5fed887
Fix output format to be of an identical type
2020-07-26 15:17:54 +02:00
Matthias
902e8fa62f
Fix wrong spelling in one subcomponent
2020-07-26 14:39:00 +02:00
Matthias
c1191400a4
Allow 0 fee value by correctly checking for None
2020-07-15 19:20:20 +02:00
Matthias
bdf611352e
Update summary-metrics output
2020-07-14 19:34:01 +02:00
Matthias
1fc4451d2f
Avoid \ linebreak
2020-07-03 20:32:04 +02:00
Matthias
0d15a87af8
Remove old store_backtest method
2020-07-03 20:21:32 +02:00
Matthias
987188e41f
Add avgduration for winners and losers
2020-07-03 19:58:02 +02:00
Matthias
8e0ff4bd86
Add Win / draw / losing days
2020-07-03 19:45:45 +02:00
Matthias
42868ad24a
Add best / worst day to statistics
2020-07-03 19:30:29 +02:00
Matthias
7c5587aeaa
exportfilename can be a file or directory
2020-07-03 06:58:27 +02:00
Matthias
2ed808da1f
Extract .last_result.json to constant
2020-07-03 06:58:27 +02:00
Matthias
59e0ca0aaa
Add pairlist to backtest-result
2020-07-03 06:58:27 +02:00
Matthias
c13ec4a1d4
implement fallback loading for load_backtest_data
2020-07-03 06:58:27 +02:00
Matthias
7727292861
Rename duration to trade_duration
2020-07-03 06:58:27 +02:00
Matthias
f368aabcc7
Add amount to backtest-result
2020-07-03 06:58:27 +02:00
Matthias
6e94734678
Add fee to backtestresult
2020-07-03 06:58:27 +02:00
Matthias
03ab61959b
Add test for generate_backtest_stats
2020-07-03 06:58:27 +02:00
Matthias
075eb0a161
Fix sequence of saving
2020-07-03 06:58:27 +02:00
Matthias
0fa56be9d2
remove openIndex and closeIndex from backtest-report
2020-07-03 06:58:27 +02:00
Matthias
04cbc2cde5
Shorten variable
2020-07-03 06:58:27 +02:00
Matthias
b068e7c564
Rename open_time and close_time to *date
2020-07-03 06:58:27 +02:00
Matthias
415853583b
Save backtest-stats
2020-07-03 06:58:27 +02:00
Matthias
81c8e8677d
use 0 as profit mean, not nan
2020-07-03 06:58:27 +02:00
Matthias
480c5117f1
Handle empty return strings
2020-07-03 06:58:27 +02:00
Matthias
5fce7f3b22
Add market Change
...
closes #2524 and #3518
2020-07-03 06:58:27 +02:00
Matthias
cf044d166e
Tests should use new Datetime format too
2020-07-03 06:58:27 +02:00
Matthias
fbddfaeacf
Introduce DatetimePrintFormat
2020-07-03 06:58:27 +02:00
Matthias
cbcf3dbb43
Add more metrics to summarytable
2020-07-03 06:58:27 +02:00
Matthias
6922fbc3aa
Add max_drawdown error handler
2020-07-03 06:58:27 +02:00
Matthias
455b26ea48
Add max drawdown to backtesting
2020-07-03 06:58:27 +02:00
hroff-1902
02c0488d45
Merge pull request #3453 from freqtrade/fix/3363
...
Backtesting should load pairlists after the strategy
2020-06-29 21:53:33 +03:00
Matthias
0b2982caed
Merge branch 'develop' into hyperopt_colorama_init
2020-06-16 10:16:41 +02:00
Matthias
761407f74d
Merge pull request #3430 from freqtrade/timeframe
...
ticker_interval -> timeframe
2020-06-15 13:47:26 +02:00
Matthias
a3506f4d8e
Merge branch 'develop' into timeframe
2020-06-15 06:35:55 +02:00
Matthias
d337fb6c6a
Update some comments
2020-06-15 06:35:31 +02:00
hroff-1902
ea77edce05
Make flake happy
2020-06-13 18:54:54 +03:00
hroff-1902
3d9b107761
Changes after review
2020-06-13 17:12:37 +03:00
Felipe Lambert
69ac5c1ac7
change hyperopt return to better copy to strategy file
2020-06-10 14:35:31 -03:00
Matthias
72ae4b1500
Load pairlist after strategy to use strategy-config
...
fail in certain conditions when using strategy-list
Fix #3363
2020-06-07 16:15:26 +02:00
Matthias
a75b94f143
use bracket notation for dataframe access
2020-06-07 15:40:00 +02:00
Matthias
68395d2745
Use bracket notation to query results in hyperopt
2020-06-07 15:39:59 +02:00
Matthias
04779411f5
Add docstring to backtest_stats
2020-06-07 15:39:59 +02:00
Matthias
070913f327
Rename text_table generation
2020-06-07 11:35:02 +02:00
Matthias
499c6772d1
Rename tabulate methods
...
they don't "generate" anything
2020-06-07 11:31:33 +02:00
Matthias
a6f6724752
Reorder functions in optimize_report
2020-06-07 11:29:14 +02:00
hroff-1902
64881a94e2
Merge branch 'develop' into timeframe
2020-06-02 15:56:34 +03:00
Matthias
a8005819c9
Add class-level attributes to hyperopt and strategy
2020-06-02 10:19:27 +02:00
Matthias
f9bb1a7f22
Update more occurances of ticker_interval
2020-06-02 10:02:55 +02:00
Matthias
3e895ae74a
Some more replacements of ticker_interval
2020-06-02 09:41:42 +02:00
Matthias
cadc50ce9b
Replace more occurances of ticker_interval with timeframe
2020-06-01 20:49:40 +02:00
Matthias
d9afef8fe1
Move colorama_init to where it was
2020-06-01 09:37:10 +02:00
Matthias
ffa93377b4
Test colorama init again (after the fixes done to progressbar)
2020-06-01 09:34:03 +02:00
Matthias
091693308a
Correctly call show_backtest_results
2020-06-01 09:25:26 +02:00
Matthias
ceaf32d304
Extract backtesting report generation from show_backtest_Results
2020-06-01 09:24:05 +02:00
Matthias
f202e09b10
Extract conversion to trades list to it's own function
2020-06-01 08:57:31 +02:00
Matthias
18a5787a2c
Reorder typing imports
...
Co-authored-by: hroff-1902 <47309513+hroff-1902@users.noreply.github.com>
2020-05-27 19:17:15 +02:00
Matthias
abf79e4ab4
Use temporary variable to clean up code
2020-05-25 20:47:48 +02:00
Matthias
6a9a8f927e
Rename some methods, improve some testing
2020-05-25 20:46:31 +02:00
Matthias
462c35cf75
Move stats generation to the top
2020-05-25 20:22:22 +02:00
Matthias
027ea64d48
Fix docstrings, extract strategy-list results
2020-05-25 19:55:02 +02:00
Matthias
db257e9f7f
Rename method to be public
2020-05-25 19:50:23 +02:00
Matthias
18a2dad684
Extract data generation from generate_text_table
2020-05-25 19:35:32 +02:00
Matthias
0917b17efd
Refactor result_line to return dict
2020-05-25 19:21:01 +02:00
Matthias
876a9e4f44
finish refactor of sell_reason table
2020-05-25 07:08:15 +02:00
Matthias
d17300fd84
Refactor sell reason stats to return a dict
2020-05-25 07:02:24 +02:00
Matthias
9d1ad70bb7
Split optimize generation from printing
2020-05-25 06:44:51 +02:00
Florian Merz
889a153731
fix PEP8
2020-05-03 17:29:56 +02:00
Florian Merz
690bb7646a
hyperopt csv export - add params
2020-05-03 17:00:12 +02:00
Matthias
509f38d3aa
Use non-deprectated parameter for progressbar
2020-05-01 17:59:24 +02:00
hroff-1902
726e52aaa7
Use skopt model_queue_size instead of custom hack
2020-04-29 10:49:25 +03:00
hroff-1902
c26835048c
Hyperopt cleanup, do not use 'trials'
2020-04-28 22:56:19 +03:00
hroff-1902
a01ed170f5
Improve hyperopt-list logging
2020-04-28 17:33:07 +03:00
hroff-1902
9ebc997e9d
Merge pull request #3215 from freqtrade/backtest_use_pairlists
...
Backtest use pairlists
2020-04-27 13:34:06 +03:00
Matthias
fb8a85da01
Disallow VolumePairList from backtesting for now
2020-04-27 07:56:17 +02:00
Matthias
e8530c36d3
Remove pairlists from hyperopt too (it holds a reference to exchange)
2020-04-25 15:46:20 +02:00
Matthias
8987859044
Enable pairlist parsing for backtesting and hyperopt
2020-04-25 15:37:13 +02:00