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 |
|
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
|
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
|
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
|
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 |
|
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
|
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 |
|
hroff-1902
|
64881a94e2
|
Merge branch 'develop' into timeframe
|
2020-06-02 15:56:34 +03:00 |
|
Matthias
|
cadc50ce9b
|
Replace more occurances of ticker_interval with timeframe
|
2020-06-01 20:49:40 +02:00 |
|
Matthias
|
091693308a
|
Correctly call show_backtest_results
|
2020-06-01 09:25:26 +02:00 |
|
Matthias
|
fb8a85da01
|
Disallow VolumePairList from backtesting for now
|
2020-04-27 07:56:17 +02:00 |
|
Matthias
|
8987859044
|
Enable pairlist parsing for backtesting and hyperopt
|
2020-04-25 15:37:13 +02:00 |
|
Matthias
|
de47186263
|
Use .loc for assignments
|
2020-04-02 19:31:48 +02:00 |
|
Matthias
|
e95665ceca
|
Make backtestresult storing independent from printing
|
2020-03-15 15:36:23 +01:00 |
|
Matthias
|
a13d581658
|
Move backtest-result visualization out of backtesting class
|
2020-03-15 15:17:53 +01:00 |
|
Matthias
|
6106d59e1a
|
Move store_backtest_results to optimize_reports
|
2020-03-15 15:17:35 +01:00 |
|
Matthias
|
328dbd3930
|
Remove unnecessary parameter to generate_text_table_sell_reason
|
2020-03-15 15:04:48 +01:00 |
|
Matthias
|
0f1640bed4
|
convert exportfilename to Path when config parsing
|
2020-03-15 09:39:45 +01:00 |
|
hroff-1902
|
ebb0187f40
|
dataframe -> df_analyzed in backtesting and edge
|
2020-03-13 03:54:56 +03:00 |
|
hroff-1902
|
3208faf7ed
|
Do not use ticker where it's not a ticker
|
2020-03-08 20:47:02 +03:00 |
|
Fredrik81
|
55d471190a
|
Changed table style of backtesting and alignment of headers
|
2020-02-27 13:28:28 +01:00 |
|
Matthias
|
d65a06947d
|
Merge branch 'develop' into data_handler
|
2020-02-09 15:16:43 +01:00 |
|
Yazeed Al Oyoun
|
5b00eaa42d
|
Updated Strategy Summary table to match other backtesting tables (#2864)
|
2020-02-06 06:58:58 +01:00 |
|
hroff-1902
|
d457d43999
|
Merge pull request #2833 from hroff-1902/type-hints
Add some type hints
|
2020-02-03 23:24:26 +03:00 |
|
hroff-1902
|
f3d500085c
|
Add some type hints
|
2020-02-02 07:00:40 +03:00 |
|
Yazeed Al Oyoun
|
e2b3907df5
|
more consistent backtesting tables and labels
|
2020-01-31 04:39:18 +01:00 |
|
Matthias
|
1b9af9d2d8
|
Merge branch 'develop' into data_handler
|
2020-01-26 20:31:13 +01:00 |
|
Matthias
|
bd4dd8403b
|
Fix type-errors with stake_amount
|
2020-01-25 12:49:37 +01:00 |
|
hroff-1902
|
f4c7edf551
|
No args for backtest(), use arguments
|
2020-01-25 12:49:37 +01:00 |
|
Matthias
|
fc2970f41b
|
Merge branch 'develop' into data_handler
|
2020-01-21 06:58:48 +01:00 |
|
Tejesh
|
f73f0b1653
|
Update comments on backtesting
|
2020-01-15 19:29:00 +05:30 |
|
Matthias
|
c475729c13
|
Extract edge reporting to optimize_reports
|
2020-01-09 06:52:34 +01:00 |
|
Matthias
|
904e1647e1
|
Extract generate_text_table_strategy to seperate module
|
2020-01-02 09:31:53 +01:00 |
|
Matthias
|
caec345c0b
|
Extract generate_text_table_sell_reason from backtesting class
|
2020-01-02 09:31:53 +01:00 |
|
Matthias
|
18a53f4467
|
Extract generate_text_table from backtesting class
|
2020-01-02 09:31:47 +01:00 |
|
Matthias
|
699c0d6bc3
|
Merge branch 'develop' into data_handler
|
2019-12-30 19:40:43 +01:00 |
|
Matthias
|
1ffda29fd2
|
Adjust improts to new exception location
|
2019-12-30 15:02:17 +01:00 |
|
Matthias
|
f4a532ef6d
|
Pass format to load_data
|
2019-12-28 14:57:39 +01:00 |
|
Matthias
|
416517b0c9
|
Move trim_dataframe from history to converter
|
2019-12-28 11:01:41 +01:00 |
|
hroff-1902
|
6db75bc244
|
Merge pull request #2706 from freqtrade/data_dir
Convert datadir within config to Path
|
2019-12-28 05:14:48 +03:00 |
|
Matthias
|
e5aed098b5
|
Enhance backtest results with sell reason profit / loss table
|
2019-12-25 09:39:29 +01:00 |
|
Matthias
|
c6b9c8eca0
|
Forgot to save
|
2019-12-23 19:32:31 +01:00 |
|
Matthias
|
c6d2233978
|
Convert StrategyLoader to static loader
|
2019-12-23 10:23:48 +01:00 |
|
Matthias
|
560acb7cea
|
Convert ExchangeResolver to static loader class
|
2019-12-23 10:03:18 +01:00 |
|
hroff-1902
|
cf4c3642ce
|
Minor improvements in data.history
|
2019-12-18 01:06:03 +03:00 |
|
Matthias
|
a2964afd42
|
Rename profit_percent to profit_ratio to be consistent
|
2019-12-17 08:53:30 +01:00 |
|
hroff-1902
|
26ab108890
|
Fix mypy errors in develop
|
2019-12-15 01:10:09 +03:00 |
|
hroff-1902
|
1cc174c007
|
Merge pull request #2624 from freqtrade/backtest_refactor
handle and document ROI=-1
|
2019-12-14 23:11:36 +03:00 |
|
Matthias
|
a48c0ad868
|
Use first pair of pairlist to get fee
Use this instead of hardcoded ETH/BTC - so backtesting works with
exchanges without ETH/BTC pair
|
2019-12-14 12:55:02 +01:00 |
|
Matthias
|
7c7ca1cb90
|
Remove min (plural) from codebase
|
2019-12-11 07:12:37 +01:00 |
|
Matthias
|
de33ec4250
|
use sell_row.open also when the active ROI value just changed
|
2019-12-09 16:52:12 +01:00 |
|
Matthias
|
45d12dbc83
|
Avoid a few calculations during backtesting
|
2019-12-07 15:28:56 +01:00 |
|
Matthias
|
3163cbdf8a
|
Apply special case for negative ROI
|
2019-12-07 15:18:12 +01:00 |
|
Matthias
|
3091869115
|
refactor get_close_rate out of get_sell_trade-entry
|
2019-12-07 14:30:14 +01:00 |
|
Matthias
|
af3eea3805
|
Move config json validation to after strategy loading
Otherwise attributes are mandatory in configuration
while they could be set in the strategy
|
2019-11-25 07:05:30 +01:00 |
|