Commit Graph

6337 Commits

Author SHA1 Message Date
Rokas Kupstys
b54da430b9 Add ability to plot bars on indicator chart and pass custom arguments to plotly. 2021-05-30 11:11:19 +03:00
Matthias
d7fdc2114a allow list-strategies to show if params are hyperoptable 2021-05-29 13:27:08 +02:00
Matthias
313567d07d Support having numbers in custom keyboard 2021-05-29 08:12:25 +02:00
Eugene Schava
14df243661 day/week options for Telegram '/profit' command
mypy fix
2021-05-28 17:18:23 +03:00
Eugene Schava
012309a06a day/week options for Telegram '/profit' command
fixed line lenght
2021-05-28 17:03:31 +03:00
Eugene Schava
36b68d3702 day/week options for Telegram '/profit' command
format changed to "/profit n"
2021-05-28 14:46:22 +03:00
Eugene Schava
4b5a9d8c49 day/week options for Telegram '/profit' command
revert accidental changes
2021-05-28 14:43:57 +03:00
Eugene Schava
a965436cd6 day/week options for Telegram '/profit' command
format changed to "/profit n"
2021-05-28 10:17:26 +03:00
Matthias
8a56af9192 Update onlyprofit loss should use absolute profit
closes #4934
2021-05-28 08:38:46 +02:00
Matthias
7bfe935e37
Merge pull request #4838 from Antreasgr/fix-encoding-issue
Fix bug in running hyperopt in windows 10
2021-05-27 14:57:36 +01:00
Matthias
377352fced
Merge pull request #4682 from freqtrade/sqlalchemy_14
Sqlalchemy 14 preparations
2021-05-27 14:19:25 +01:00
Matthias
a89364aa98 Merge branch 'develop' into pr/Antreasgr/4838 2021-05-27 14:59:39 +02:00
Matthias
3014bc3467 Don't use Sum sign in hyperopt to avoid compatibility problems 2021-05-27 14:22:11 +02:00
Matthias
cf39dd2163 Fix csv-export error with new hyperopt format 2021-05-27 13:08:28 +02:00
Matthias
e0083bc58e Support backwards-compatible sell setting 2021-05-27 13:00:05 +02:00
Matthias
66de5df1d1 Update sqlite init method 2021-05-27 11:38:28 +02:00
Matthias
b82f7a2dfd Update orders-migrations to work with new sqlalchemy syntax 2021-05-27 11:38:28 +02:00
Matthias
17f74f7da8 Ensure commit happens on forcebuy 2021-05-27 11:38:28 +02:00
Matthias
a01d05997e Add Trade.commit method for easy use 2021-05-27 11:38:28 +02:00
Matthias
6fb32c3594 Use commit instead of .flush() 2021-05-27 11:38:28 +02:00
Matthias
eaa47ff335 Don't use autocommit 2021-05-27 11:38:28 +02:00
Matthias
c31cb67118 Further changes for sqlalchemy 1.4 2021-05-27 11:38:28 +02:00
Matthias
2f79958acb Move declarative_base import to import from .orm 2021-05-27 11:38:28 +02:00
Kamontat Chantrachirathumrong
c5c323ca88
Settings notify sell in telegram base on sell reason (#5028)
* BREAK: notification sell by sell reason

* Update constants.py

* Update telegram.py

* Update telegram-usage.md

* Update telegram.py

* Update telegram.py

* Fix test fail

* Update config_full.json.example

* Update telegram-usage.md

* Update telegram.py

* Update telegram.py

* Update telegram-usage.md

* validate value of sell object

* Fix linter

* Update constants.py

* Make telegram sample slightly more positive

Co-authored-by: Matthias <xmatthias@outlook.com>
2021-05-27 11:35:27 +02:00
Matthias
42453333be Align coinbase download with ccxt limits
Align with https://github.com/ccxt/ccxt/issues/9268
2021-05-27 07:38:47 +02:00
Matthias
8e89d3e6e4 Fix sort error 2021-05-25 19:33:34 +02:00
Matthias
cc5769e900 Convert np.int64 to proper int
closes #5018
2021-05-25 19:24:56 +02:00
Matthias
a747312c1e Explicitly provide is_open to trade Object
closes #5015
2021-05-25 18:02:07 +02:00
Rikj000
bd44deea0d BugFix - hyperopt-show --print-json include non-optimized params 2021-05-24 18:51:33 +02:00
Matthias
af16614bf2 Fix formatting issue 2021-05-24 07:48:36 +02:00
Priveyes
6f990c5976
Fix a rare error in save_result : ValueError: Out of range float values are not JSON compliant
freqtrade/freqtrade/optimize/hyperopt.py", line 166, in _save_result
    rapidjson.dump(epoch, f, default=str, number_mode=rapidjson.NM_NATIVE)
ValueError: Out of range float values are not JSON compliant
2021-05-23 18:49:07 +02:00
Matthias
f760b4a789 Merge branch 'develop' into pr/gmatheu/4746 2021-05-23 16:03:11 +02:00
Matthias
971d5b2ecc
Merge pull request #5002 from freqtrade/track_rejected_trades
Track rejected trades
2021-05-23 14:56:50 +01:00
Matthias
3f956441fc Properly format % of zero_duration_trades 2021-05-23 15:53:54 +02:00
Matthias
a39860e0de Add tests for rejected signals 2021-05-23 14:15:02 +02:00
Matthias
7f125315b0 Track Rejected Trades
closes #3423
2021-05-23 09:42:05 +02:00
Matthias
02faeb60a3
Merge pull request #4943 from rokups/rk/statistics
Extra statistics
2021-05-23 08:38:27 +01:00
Rokas Kupstys
db985cbc2e Fix hyperopt-show failing to display old results with missing new fields. 2021-05-23 09:45:26 +03:00
Matthias
74d75599a9
Merge pull request #4964 from thraizz/develop
Add backoff timer for coingecko API
2021-05-22 16:54:29 +01:00
Matthias
765c824bfc isort 2021-05-22 17:25:23 +02:00
Matthias
a7bd8b0aa5 Fix exception in plotting when no trades where generated
as seen in #4981
2021-05-22 17:03:16 +02:00
Matthias
feb836eaf6
Merge pull request #4994 from freqtrade/support_other_dbs
Support other dbs
2021-05-22 15:54:34 +01:00
A. Schueler
0693458507
Update freqtrade/rpc/fiat_convert.py 2021-05-22 16:26:58 +02:00
Rokas Kupstys
25cc4eae96 Fix tests that broke after table formatting changed. 2021-05-22 15:25:37 +02:00
A. Schueler
f8cdd6475c Reduce warnings when waiting for coingecko backoff 2021-05-22 13:43:33 +02:00
A. Schueler
6e05f856b4 Abort _find_price when cryptomap is empty after retry 2021-05-22 11:55:03 +02:00
A. Schueler
ab6bfbad12 Handle RequestExceptions that are not 429s in _load_cryptomap 2021-05-22 11:52:40 +02:00
A. Schueler
8842e0d161 Fix flake8 error in fiat_convert 2021-05-22 10:59:33 +02:00
A. Schueler
a0921ec753 Add backoff timer for coingecko API
Set a future timestamp when we should retry getting coingecko data.

This fixes conversion from stake to fiat when running multiple bots
as we don't simply accept the 429 error from Coingecko but handle it.
2021-05-22 10:59:33 +02:00
Matthias
df0928c8b5
Merge pull request #4992 from freqtrade/buy_partial_fill
Don't cancel low partial filled buy
2021-05-22 09:17:04 +01:00
Matthias
cc064f1574 String columns should have a max-length defined
otherwise MySql will not work.
2021-05-22 10:12:23 +02:00
Matthias
6acb2eb2b6 Add average column to orders table 2021-05-21 20:35:39 +02:00
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