Matthias
45e2621505
Add minimum-filled protection for buy cancels
2021-05-21 19:32:16 +02:00
Matthias
dfa412f0de
Fix typo in filter
2021-05-21 13:24:13 +02:00
Rokas Kupstys
981b2df7ca
Include win:loss ratio in results tables.
2021-05-21 12:18:08 +03:00
Rokas Kupstys
debd98ad9a
Make results table more compact by merging win/draw/loss columns and drawdown abs/% into single columns.
2021-05-21 11:36:23 +03:00
Rokas Kupstys
e1dc1357ce
Add drawdown column to strategy summary table.
2021-05-21 11:36:23 +03:00
Rokas Kupstys
edcfa94093
Include zero duration trades in backtesting report.
2021-05-21 11:36:23 +03:00
Matthias
96ea10e562
Fix circular import in hyperopt
2021-05-21 08:52:56 +02:00
Matthias
f398888865
Refactor preprocessed trimming to seperate method
2021-05-21 08:26:19 +02:00
Matthias
d19b37c777
Merge pull request #4979 from kamontat/patch-1
...
Fix hyperopt trim to empty dataframe
2021-05-21 08:17:35 +02:00
Matthias
ccd705bfda
Merge pull request #4962 from eschava/total_row
...
Total row for telegram "/status table" command
2021-05-21 08:02:30 +02:00
Eugene Schava
336f4aa6a7
day/week options for Telegram '/profit' command
...
isort fix
2021-05-20 08:17:08 +03:00
Kamontat Chantrachirathumrong
6172e67fcd
Update hyperopt.py
2021-05-20 11:56:31 +07:00
Kamontat Chantrachirathumrong
c2b9da68e1
fix indent
2021-05-20 11:56:11 +07:00
Kamontat Chantrachirathumrong
1b3bfb2e7f
found root cause.
2021-05-20 11:50:15 +07:00
Kamontat Chantrachirathumrong
48210170e7
wrap with is not empty
2021-05-20 11:49:25 +07:00
Matthias
ba106e6c4a
Merge pull request #4975 from Axel-CH/allow_seconds_unfilled_timeout
...
Add ability to choose unit in unfilled timeout
2021-05-20 06:43:15 +02:00
Matthias
586f2a699d
Merge pull request #4953 from freqtrade/value_filter
...
max-value change filter
2021-05-20 06:35:34 +02:00
Matthias
0358b5365f
Add "unfilledtimeout-unit" to full config sample
2021-05-20 06:26:07 +02:00
Eugene Schava
935ed36433
day/week options for Telegram '/profit' command
...
mypy fix
2021-05-20 01:10:22 +03:00
Eugene Schava
e9841910e9
day/week options for Telegram '/profit' command
2021-05-20 00:33:33 +03: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
axel
75f88b466a
add ability to choose unit in unfilled timeout
2021-05-18 19:30:36 -04:00
Matthias
7a9853bfe1
Fix "Too many open Files" exception
2021-05-18 20:39:55 +02:00
Matthias
16c22c7b68
Add pair name to stoploss
...
helps debugging #4972
2021-05-18 19:16:25 +02:00
Matthias
36eba0f110
Don't use "r+" memmap, but "r2
2021-05-17 21:05:48 +02:00
Matthias
6aa574fa2b
Convert ROI result to proper json object
...
closes #4952
2021-05-17 20:58:50 +02:00
Matthias
6659a07079
Add tests for max-value filter
2021-05-17 19:47:57 +02:00
Matthias
369f19df6b
Add valuefilter to Pricefilters
2021-05-17 19:44:36 +02:00
Matthias
3006396398
Fix docstring typo
2021-05-17 19:37:22 +02:00
Matthias
26f5bc6584
Merge pull request #4944 from brookmiles/fix-download-data-end-date
...
Add support for timerange end date to `download-data`
2021-05-17 19:35:32 +02:00
Eugene Schava
459fae6d80
Total row for telegram "/status table" command
...
fixes
2021-05-17 16:22:48 +03:00
Eugene Schava
3ad8fa2f38
Total row for telegram "/status table" command
...
moved sum calculation to API
2021-05-17 15:59:03 +03:00
Eugene Schava
196fde44e0
Total row for telegram "/status table" command
...
work around mypy warning
2021-05-17 14:45:54 +03:00
Eugene Schava
915ff7e1bf
Total row for telegram "/status table" command
...
fix mypy warnings
2021-05-17 13:03:20 +03:00
Eugene Schava
d7479fda1f
Total row for telegram "/status table" command
...
fix compiler warnings
2021-05-17 12:53:57 +03:00
Eugene Schava
0abb9cfe28
Total row for telegram "/status table" command
2021-05-17 12:41:44 +03:00
Eugene Schava
10ef0f54ac
Total row for telegram "/status table" command
2021-05-17 11:12:11 +03:00
Matthias
37b71b8cfd
Fix PerformanceFilter failing in test-pairlist mode
2021-05-16 19:55:13 +02:00
Matthias
0d50e99563
Fix Agefilter checking for > instead of >=
2021-05-16 19:35:30 +02:00
Matthias
c9ac67e985
Fix some typos
2021-05-16 14:50:25 +02:00
Matthias
6f38976470
Introduce cancel_stoploss_with_result
2021-05-16 14:15:24 +02:00
Matthias
380754b8ab
Fix typos in docstrings
2021-05-16 13:20:05 +02:00
Matthias
0b1dd0d203
Use correct order_id for ftx
...
closes #4511
2021-05-16 09:15:25 +02:00
Matthias
2d7735ba04
Update telegram to sort performance by absolute performance
2021-05-15 19:49:21 +02:00
Matthias
6b2a38ccfb
Add absolute Profit to apiserver
2021-05-15 19:39:46 +02:00
Matthias
4f968b4a6f
Merge pull request #4926 from rokups/rk/misc-fixes
...
Two fixes
2021-05-15 15:11:07 +02:00
Brook Miles
db17b1a851
fix indentation
2021-05-15 20:20:36 +09:00
Brook Miles
88da1f109b
fix #4412 download-data does not stop downloading at the specified TIMERANGE end date
2021-05-15 20:15:19 +09: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
Matthias
e1447f955c
/locks should always respond, even if there's no locks
...
closes #4942
2021-05-15 10:50:00 +02: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
0ace35bf3d
Fix unreferenced error
2021-05-15 08:14:50 +02:00
Matthias
a6c644161d
Merge pull request #4930 from freqtrade/hyperopt_memory
...
Hyperopt memory problems
2021-05-15 07:12:57 +02:00
Matthias
5e73195b30
Use linux lineseperator at all times
2021-05-15 07:01:32 +02:00
Matthias
4bc018a456
Change rate back to "open" for custom_sell
...
closes #4920
2021-05-14 07:18:10 +02:00
Matthias
09756e3007
Subplots should always be included in responses
2021-05-14 06:36:50 +02:00
Matthias
ecee42f561
Read pickle file in mmap mode
2021-05-13 20:13:04 +02:00
Matthias
1055862bc0
Extract data-load + dump from hyperopt
...
(Reduces memory-usage as the dataframes go out of scope)
2021-05-12 21:15:01 +02:00
Matthias
24a1d5a96f
Change default hyperopt-name to be shorter
2021-05-12 19:06:13 +02:00
Matthias
3cbe40875d
read hyperopt results from pickle or json
2021-05-12 06:06:30 +02:00
Matthias
06bf1aa274
Store epochs as json per line
2021-05-12 05:58:25 +02:00
Matthias
7398ea88e0
Change optimize_reports to convert dates to string earlier
2021-05-11 20:37:49 +02:00
Matthias
b81f24d9c6
Merge pull request #4851 from rokups/rk/backtest-dataprovider
...
Data provider support in backtesting
2021-05-10 19:11:05 +02:00
Matthias
92186d89a2
Add some changes to strategytemplate
2021-05-09 09:56:36 +02:00
Matthias
2157923aee
have edge send multiple messages if necessary
...
closes #4519
2021-05-08 19:45:34 +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
Matthias
4b6cd69c81
Add test for no-exchange dataprovider
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
9b4f6b41a2
Use correct datetime.
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
6af4de8fe8
Remove dataframe parameter from docs.
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
dc6e702fec
Pass current_time to confirm_trade_entry/confirm_trade_exit.
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
513be11fd9
Fix hyperopt output
...
closes #4892
2021-05-07 20:23:11 +02: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
32577cc0cd
Merge pull request #4836 from bzed/telegram-locks
...
Telegram rpc: split too long /locks messages
2021-05-05 20:15:13 +02:00
Matthias
431cb5313f
Support informative pairs in edge positioning
2021-05-05 19:58:45 +02:00
Matthias
da47f4e1a4
Fix Kraken balance update error
...
closes #4873
2021-05-05 06:47:26 +02:00
Matthias
da574e4e69
Small style fixes
2021-05-03 06:30:41 +02:00
Matthias
fc110ea418
Support csv export for new and old versions
2021-05-02 20:41:45 +02:00
Matthias
303895b33e
Add support for filters to new hyperopt-results
2021-05-02 20:07:22 +02:00
Matthias
287b43e999
Output strategy results including non-optimized parameters
2021-05-02 11:30:53 +02:00
Matthias
d069ad43d8
Small reformatting in hyperopt
2021-05-02 11:01:26 +02:00
Matthias
8ee0b0d8e8
Store not optimized parameters (if applicable)
2021-05-02 10:46:04 +02:00
Matthias
9049d6b779
Reformat hyper to cache parameters
2021-05-02 10:45:21 +02:00
Matthias
46f0f66039
Keep dimensions stored in hyperopt class
...
There is no point in regenerating them and it will cause some
overhead as all space classes will be recreated for every epoch.
2021-05-02 09:48:37 +02:00
Matthias
ced5cc7ce2
Don't recalculate min/max date - they won't change between epochs
2021-05-02 09:46:27 +02:00
Matthias
ecdfb6e5ed
Fix output of % for new format
2021-05-02 09:46:27 +02:00
Matthias
881cba336a
Show backtesting result in hyperopt-show
2021-05-02 09:46:27 +02:00
Matthias
420e75af65
Extract show_backtest_result for one strategy
2021-05-02 09:46:27 +02:00
Matthias
97478abb9d
Move format explanation string to HyperoptTools
2021-05-02 09:46:27 +02:00
Matthias
f2e182002d
Simplify calling backtesting by returning the proper result
2021-05-02 09:46:27 +02:00
Matthias
e2e1d34828
Extract stake_currency param from hyperopt-explanationstring
2021-05-02 09:46:27 +02:00
Matthias
6aaaad29d7
Use backtesting output for hyperopt results
2021-05-02 09:46:27 +02:00
Matthias
545cba7fd8
Refactor optimize_report
...
we should not calculate non-daily statistics in the daily stats method
2021-05-02 09:46:27 +02:00
Matthias
9994fce577
Extract generation of report for one strategy to it's own method
2021-05-02 09:46:27 +02:00
Matthias
b125c975c7
Rename strategy_comparison method
2021-05-02 09:46:27 +02:00
Matthias
ac2e1eb3d7
Don't import joblib for regular strategies
2021-05-02 08:44:16 +02:00
Matthias
0e359dcb7a
Merge pull request #4788 from saeedrss/develop
...
fetch live data from hitbtc exchange #4778
2021-05-01 19:13:00 +02:00
Matthias
bdd0184f0b
Small stylistic fixes
2021-05-01 17:44:43 +02:00
Matthias
1cb430f59b
Remove encoding specifics, gitattributes to echeckout as utf8
2021-05-01 17:41:40 +02:00
Matthias
0b280a59bc
Support per exchange params for OHLCV endpoint
2021-05-01 17:29:53 +02:00
Matthias
e0ca3c014c
Don't completely remove encode/decode
2021-05-01 17:12:48 +02:00
Matthias
30da307d13
Remove encode/decode for hyperopt
2021-05-01 17:01:52 +02:00
Matthias
555262b6e1
Only calculate additional indicators if the space is selected
2021-05-01 16:40:29 +02:00
Matthias
e381df9098
extract has_space to Hyperopt-Tools
2021-05-01 16:36:35 +02:00
Matthias
e050ea8dfa
Don't load parameters for other space
2021-05-01 16:21:59 +02:00
Matthias
401f31e86b
Merge pull request #4841 from JoeSchr/fix/istrategy-return-value
...
fix IStrategy: abstract methods still need to pass through return value
2021-04-30 20:13:11 +02:00
Matthias
856b65206b
Reduce log-frequency of AgeFilter
...
closes #4840
2021-04-30 19:42:41 +02:00
Joe Schr
f3388ed9aa
fix IStrategy: abstract methods still need to pass through return value
...
otherwise doing something like:
```py
dataframe = super().populate_indicators(dataframe, ...)
```
won't work, because `dataframe` becomes `None`.
This is needed if one of those methods uses dataframe.copy() instead of
just working on reference. e.g. using `merge_informative` in
`populate_indicator` in a nested class hierarchy
2021-04-30 14:39:01 +02:00
Antreas Gribas
cf03daa0fd
Fix bug in running hyperopt in windows 10
...
with preferred encoding in locale differrent from
utf-8
2021-04-30 00:28:42 +03:00
Bernd Zeimetz
3be7bc509c
Telegram: send locks as chunks of 25.
...
Producing easily readable messages, hopefully always below the message lenght limit
2021-04-29 22:21:04 +02:00
Bernd Zeimetz
4d1613a432
Add chunks function.
...
Implementing a generator to split Lists into chunks.
2021-04-29 22:21:04 +02:00
Matthias
a3d2e68312
Merge pull request #4750 from rokups/rk/custom_sell
...
Add IStrategy.custom_sell method which allows per-trade sell signal evaluation
2021-04-29 06:50:56 +02:00
Matthias
aab020c9a2
Merge pull request #4818 from freqtrade/cleanup_models
...
Move static Trade functions to right class
2021-04-28 21:18:55 +02:00
Matthias
7c8a367442
Update docs to not promote stoploss / take-profit
2021-04-28 20:36:06 +02:00
Matthias
63c28b6519
Remove obsolete get_balance method
2021-04-28 16:00:12 +02:00
Matthias
6eb947ae09
Move static Trade functions to right class
2021-04-28 06:37:40 +02:00
Matthias
55faa6a84a
safe_wrapper should use kwargs to call methods
2021-04-26 20:18:03 +02:00
Matthias
2061162d79
Convert trade-opendate to python datetime
2021-04-26 20:01:13 +02:00
Matthias
dbf33271b5
Small doc changes
2021-04-26 19:52:26 +02:00
Matthias
3f84c37a79
Fix wallet calls
...
closes #4810 #4812
2021-04-26 14:12:52 +02:00
Rokas Kupstys
31a2285eac
Fix mypy complaints.
2021-04-26 10:42:24 +03:00
Matthias
bb7ef2f804
Cache pairlist in pairlist, not globally
...
closes #4797 closes #4689
2021-04-25 20:10:47 +02:00
Matthias
7448a05f15
Use correct variable in pairlist_manager
2021-04-25 11:01:04 +02:00
Matthias
fd3afdc230
plot-profit should use absolute values
2021-04-25 10:10:09 +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
961b38636f
Remove explicit sell_flag parameter from SellCheckTuple.
2021-04-25 09:48:40 +03:00
Rokas Kupstys
bfad4e82ad
Make execute_sell() use SellCheckTuple for sell reason.
2021-04-25 09:48:40 +03:00
Rokas Kupstys
a90e795695
Warn and trim custom sell reason if it is too long.
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
Rokas Kupstys
1292e08fe4
Use strategy_safe_wrapper() when calling custom_sell().
2021-04-25 09:48:40 +03:00
Rokas Kupstys
0fd68aee51
Add IStrategy.custom_sell method which allows per-trade sell signal evaluation.
2021-04-25 09:48:40 +03:00
wr0ngc0degen
869a45a031
Merge pull request #2 from freqtrade/develop
...
update develop from base repo
2021-04-25 05:50:03 +02:00
wr0ngc0degen
2eda25426f
fix typo in sample_strategy.py
...
fix copy-paste issue in populate_sell_trend docstring
2021-04-25 05:47:59 +02:00
Matthias
e855530483
hdf5 handler should include the end-date
2021-04-24 20:26:37 +02:00
Matthias
cb86c90d3e
Remove obsolete TODO's
2021-04-24 19:16:54 +02:00
Matthias
88f26971fa
Use defaultdict for backtesting
2021-04-24 19:15:09 +02:00
Matthias
8e85b63b3d
Merge pull request #4792 from JoeSchr/add-distribution-graph-to-example-notebook
...
add distribution graph to example notebook
2021-04-24 16:14:48 +02:00
Matthias
f12e002686
Merge pull request #4775 from freqtrade/fix_wallet_unlimited
...
Fix wallet unlimited
2021-04-24 15:54:06 +02:00
Joe Schr
31b0e3b5e8
add distribution graph to example notebook
2021-04-24 13:29:59 +02:00
Matthias
90476c4287
Add "range" property to IntParameter
2021-04-24 07:00:33 +02:00
Matthias
9dc7f776d9
Improve log output when loading parameters
2021-04-23 20:35:30 +02:00