Commit Graph

6748 Commits

Author SHA1 Message Date
Bernd Zeimetz
cd6620a044 Ignore broken symlinks while resolving strategies.
Without this fix the resolver tries to read from the broken symlink,
resulting in an exception that leads to the the rather confusing
error message

freqtrade.resolvers.iresolver - WARNING - Path "...../user_data/strategies" does not exist.

as a result of a symlink matching .py not being readable.
2021-06-13 21:42:09 +02:00
Matthias
e226252921 Always use the same parameter sequence 2021-06-13 20:39:25 +02:00
Matthias
a95f760ff7 Simplify update logic by moving it to send_msg 2021-06-13 20:34:08 +02:00
Matthias
03eff69829 Simplify update message sending 2021-06-13 20:23:32 +02:00
Matthias
d32508aa75 Merge branch 'develop' into pr/eatrisno/4308 2021-06-13 20:04: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
c65b4e5d3b Small fix to models 2021-06-13 11:20:22 +02:00
Matthias
d35b2e3b8f Update ftx stoploss logic to properly detect correct trades
closes #5045
2021-06-13 11:06:34 +02:00
Matthias
a05e38dbd3 Require timeframe for plot-profit
must be set in config or via --timeframe
2021-06-12 09:03:55 +02:00
Matthias
ef208012c4
Merge pull request #5104 from freqtrade/enums_own_module
Enums own package
2021-06-10 05:31:14 +01:00
Matthias
c292926086 Small style improvements (no empty line at start) 2021-06-10 06:21:10 +02:00
Matthias
d4dfdf04fc Move RPCMessageType to enums 2021-06-09 20:23:17 +02:00
Matthias
f484ec216e
Merge pull request #5099 from bgouvea/develop
Addition of the maximum drawdown to the hyperoptimization
2021-06-09 19:10:25 +01:00
Bruno Gouvea
40f1ede775 Simplifying HO's result function 2021-06-09 12:03:24 -03:00
Matthias
756904f985 Set sell_reason to stoploss when closing the trade as stoploss
closes #5101
2021-06-08 21:21:29 +02:00
Matthias
9c34304cb9 Move state enums to enums package 2021-06-08 21:20:35 +02:00
Matthias
3c149b9b59 Move signalType to enums 2021-06-08 21:09:39 +02:00
Matthias
89b9915c12 Update imports for SellType in tests 2021-06-08 21:07:16 +02:00
Matthias
d16a619489 Move SellType Enum to it's own module 2021-06-08 21:04:34 +02:00
Matthias
e71d965e32
Merge pull request #4982 from eschava/profit_day_week
day/week options for Telegram '/profit' command
2021-06-08 19:26:57 +01:00
Matthias
3310a45029 Change wording if limited lookback is used 2021-06-08 20:10:43 +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
Bruno Gouvea
35d6140068 Displays the max drawdown in the hyper optimization results table. 2021-06-07 17:53:19 -03:00
Matthias
c389d44e9a Improve filling logic 2021-06-05 15:22:52 +02:00
Matthias
db03a24109 Add tests for fill methods 2021-06-05 09:09:39 +02:00
Matthias
1e988c97ad Update dry-run order handling to use realistic fill prices
closes #3389
2021-06-05 09:09:39 +02:00
Matthias
a0893b291a Fix strategy samples to use runmode.value
closes #5073
2021-06-05 09:03:03 +02:00
Matthias
8e44de7f83
Merge pull request #5071 from janoskut/plot-profit-make-open-html-optional
plot-profit: Make "auto-open" HTML result optional
2021-06-03 05:40:38 +01:00
Janos
812eb229df plot-profit: Make "auto-open" HTML result optional
Adding an "--auto-open" argument.
This improves tool processing of the results, while still allowing to open the HTML file for easy use.
2021-06-02 21:33:26 +02:00
Janos
80af6e43e4 test-pairlist: remove non-JSON headline from JSON output 2021-06-02 21:02:21 +02:00
Matthias
bd1984386e Move get_sell_rate to exchange class 2021-06-02 11:41:13 +02:00
Matthias
12916243ec Move get_buy_rate to exchange class 2021-06-02 11:30:19 +02:00
Matthias
4e1425023e Further reorder exchange methods 2021-06-02 11:20:26 +02:00
Matthias
4c277b3039 Reorder exchange methods 2021-06-02 11:18:13 +02:00
Matthias
67beda6c92 Add fetch_dry_run_order method 2021-06-02 11:06:32 +02:00
Matthias
10cd89a99d Allow the API to respond faster in case of long pairlists 2021-06-02 10:39:49 +02:00
Eugene Schava
9edcb393b6 telegram: move the most important information to the top of sell message
fixed flake error
2021-06-01 22:24:21 +03:00
Eugene Schava
53b1f38952 telegram: move the most important information to the top of sell message 2021-06-01 20:08:22 +03:00
Matthias
f920c26802 fix Hyperopt-list avg-time filters
These should use a numeric field (which currently isn't available).

closes #5061
2021-05-31 20:01:40 +02:00
Matthias
2d7ccaeb3d Add test for load_config 2021-05-30 20:14:54 +02:00
Matthias
f9bcf19f9a
Merge pull request #5003 from rokups/rk/plotting
Indicator plotting improvement
2021-05-30 18:44:54 +01:00
Matthias
e3d5c9cb10
Fix typo in exception message 2021-05-30 16:39:33 +01:00
Matthias
e17e35f0ef
Merge pull request #5046 from freqtrade/list_strategy_hyperopt
allow list-strategies to show if params are hyperoptable
2021-05-30 16:36:31 +01:00
Kamontat Chantrachirathumrong
806838c3af
Fix we use check sell_noti not noti 2021-05-30 21:07:44 +07:00
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
639c83575b Fix csv-export error with new hyperopt format 2021-05-27 13:09:06 +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
0c9b913cad Version bump 2021.5 2021-05-27 11:10:10 +02:00
Matthias
e42e06a593 Merge branch 'stable' into new_release 2021-05-27 11:10:00 +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
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
2b78ee254c Version bump to 2021.4 2021-04-28 21:16:13 +02:00
Matthias
4767d41d6f Merge branch 'stable' into new_release 2021-04-28 21:06:15 +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
saeedrss
37d8e3c758 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into develop 2021-04-23 22:28:33 +04:30
Matthias
191a31db30 NameErrors should not stop loading a different strategy 2021-04-23 19:36:26 +02:00
Matthias
df16fbd742 Add "dataload complete" message to backtest + hyperopt 2021-04-23 19:22:41 +02:00
saeedrss
b69a9134f5 fixing support for HitBTC #4778
hitbtc by default send candle from beginning (not most recently)
this change fixed
2021-04-23 21:27:13 +04:30
Matthias
4005708f85 Handle edge with volumepairlist and empty pair_whitelist
closes #4779
2021-04-23 06:50:39 +02:00
Matthias
406c1267a2 Remove superfluss space 2021-04-22 20:01:08 +02:00
Matthias
f5f0bf53af
Merge pull request #4780 from rokups/rk/new-pairs-days
Add --new-pairs-days parameter for download-data command.
2021-04-22 19:55:25 +02:00
Matthias
ccaf5764da Small adjustments 2021-04-22 19:41:01 +02:00
Matthias
0d2457cd47 Add lock_reason to per-pair lock 2021-04-22 19:28:50 +02:00
Matthias
f2d5f476d4
Merge pull request #4777 from c0d5x/informative-global-pairlock-msg
Add the reason why there is a global pairlock when lock is available
2021-04-22 19:24:13 +02:00
Matthias
4693cba10d
Merge pull request #4769 from freqtrade/trades_pagination
Trades pagination
2021-04-22 19:13:19 +02:00
Matthias
7e2e196643 improve sell_message by using sell rate 2021-04-22 17:13:22 +02:00
Rokas Kupstys
3144185409 Allow specifying "new_pairs_days" in config. 2021-04-22 11:18:28 +03:00
Matthias
f744df2374 Fix bad fill message 2021-04-22 10:01:41 +02:00
Rokas Kupstys
09efa7b06b Add --new-pairs-days parameter for download-data command.
This parameter allows us to customize a number of days we would like to download for new pairs only. This allows us to achieve efficient data update, downloading all data for new pairs and only missing data for existing pairs. To do that use `freqtrade download-data --new-pairs-days=3650` (not specifying `--days` or `--timerange` causes freqtrade to download only missing data for existing pairs).
2021-04-22 10:07:13 +03:00
Matthias
515c73f399 Don't hard-limit trades endpoint for now 2021-04-22 06:51:26 +02:00
Jose Hidalgo
896ec58cad Add the reason why there is a global pairlock when lock is available 2021-04-21 15:02:33 -06:00
Matthias
d8c8a8d8c2 Remvoe pointless arguments from get_trade_stake_amount 2021-04-21 20:01:10 +02:00
Matthias
ba2d4d4656 Reduce number of calls to Trade.total_open_traes_stakes() 2021-04-21 19:27:42 +02:00
Matthias
0233aa248e Limit stake_amount to max available amount 2021-04-21 17:22:16 +02:00
Matthias
9f6f3e0862 Address ZeroDivisionExceptiond
closes #4764 closes #4617
2021-04-20 21:41:49 +02:00
Matthias
bd92ce938c trade_history should paginate through results
this avoids huge results
2021-04-20 21:04:44 +02:00
Matthias
b230558294
Merge pull request #4766 from freqtrade/fill_rpc
Add buy/sell fill messages to telegram
2021-04-20 20:39:15 +02:00
Matthias
cfa9315e2a Prevent out of candle ROI sells 2021-04-20 20:29:53 +02:00
Jose Hidalgo
fd110c7d62 The error that it prints says the contrary to what
was evaluated.

ex. Trading stopped due to Max Drawdown 0.79 < 0.2 within 48 candles
2021-04-20 11:50:53 -06:00
Matthias
f821ef5aec Final finetunings of rpc_fill messages 2021-04-20 19:36:30 +02:00
Matthias
d740aae8ca Default fill notifications to off 2021-04-20 19:23:29 +02:00
Matthias
0341ac5a55 rename RPC message types 2021-04-20 19:23:28 +02:00
Matthias
8800a09770 Don't send double-notifications for stoploss fills 2021-04-20 19:22:14 +02:00
Matthias
fecd5c582b Add buy and sell fill notifications
closes #3542
2021-04-20 19:22:14 +02:00
Matthias
06d6f9ac41 Fix calculation of unlimited_stake in case of modified wallet 2021-04-20 15:55:48 +02:00
Matthias
a2acb54e7e Clarify comments in pairlist 2021-04-19 15:15:40 +02:00
Matthias
44bfb53668 Don't use current rate for closed trades 2021-04-17 19:29:34 +02:00
Matthias
1eb9ce4227 Allow specifying pairs for optimize commands via --pairs 2021-04-17 10:47:32 +02:00
Matthias
c52edcff4d
Merge pull request #4677 from mads03dk/get_trade
Add API endpoint for getting a specific trade
2021-04-16 19:57:58 +02:00
Matthias
9f2b6ee9a5
Merge pull request #4740 from freqtrade/decimal_stoploss_Hyperopt
stoploss and roi skdecimal spaces hyperopt
2021-04-16 19:46:07 +02:00
Matthias
aeb81f90ff Implement errorhandling for /trade endpoint 2021-04-16 19:35:56 +02:00
Gonzalo Matheu
7a98de10ea telegram: Formatting typings 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
e3c5a4b3fc telegram: Formatting imports 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
5fae4ea2fd telegram: Formatting code 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
50bdae8eb2 telegram: Adding forcebuy inline keyboard 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
e2f28991e6 telegram: Wrapping long line 2021-04-15 21:51:16 -03:00
Gonzalo Matheu
271e4500d9 telegram: Adding dynamic keyboard to /forcebuy response 2021-04-15 21:51:16 -03:00
grillzoo
5e51ba6258 fix flake8 2021-04-15 21:38:00 +01:00
Matthias
ce870bbcf7 Use 3 decimals for ROI space 2021-04-15 21:38:20 +02:00
Théo Martin
fa343b0484
Fix get_min_pair_stake_amount formula 2021-04-15 01:19:30 +01:00
Matthias
52c482cecf Convert trailing and roi defaults to skdecimal 2021-04-14 20:36:34 +02:00
Matthias
e820814809 Default-stoploss-hyperopt should use decimal space, nto real 2021-04-14 20:32:34 +02:00
Matthias
ba38e398e4 Add type hint 2021-04-13 22:17:42 +02:00
Matthias
c2f35ce416 /balance should use cached tickers when possible 2021-04-13 20:21:03 +02:00
Matthias
82d66410f7 Fix /performance output
if multiple messages are necessary

closes #4726
2021-04-13 19:20:57 +02:00
Matthias
e4bb6b1582 Add kucoin exchange subclass
Kucoin has some specific orderbook restrictions

closes #4723
2021-04-13 12:28:07 +02:00
Matthias
37c8fd6ad7 Remove arrow from models.py 2021-04-13 11:55:03 +02:00
Matthias
59cfbbee17
Merge pull request #4724 from csteeg/develop
Fixes FTX stoploss on echange throwing an error
2021-04-13 08:41:52 +02:00
Matthias
9b23be4021 Return a copy from current_whitelist
this avoids manipulating of the pair whitelist from within a strategy
2021-04-13 06:49:53 +02:00
Matthias
4b902d6eb8 Don't use response-model on trades endpoint for now 2021-04-13 06:23:11 +02:00
Matthias
9a58a85347 Don't export "hum" date versions for trade objects.
They are not used and have a rather high performance penalty due to
using arrow.get
2021-04-13 06:17:11 +02:00
Matthias
cb60db01b1
Merge pull request #4703 from freqtrade/decimal_space
Add SKDecimal Space
2021-04-12 19:18:10 +02:00
Chris van de Steeg
d4dc05980c
Update ftx.py
Stoploss price should be set as param instead of passing it as price according to ccxt
2021-04-12 16:01:46 +02:00
Matthias
be0dc737dc
Merge pull request #4706 from freqtrade/simplify_fiat_convert
Simplify fiat convert and fix USD coingecko problem
2021-04-10 14:57:34 +02:00
Matthias
579e68f31e Reduce log verbosity when buying 2021-04-10 14:40:44 +02:00
Matthias
14e8574235 fetch_balance is never called in dry-run 2021-04-10 14:17:43 +02:00
Matthias
37c2e037f1 Rename dry_run_order to create_dry_run_order 2021-04-10 13:50:56 +02:00
Matthias
ebbe47f38d Simplify fiat convert and fix USD coingecko problem 2021-04-10 13:36:16 +02:00
Matthias
9804e20114 Don't use _set_value for autoOpt-Spaces 2021-04-10 09:53:48 +02:00
Matthias
4996bd443e
Merge pull request #4697 from freqtrade/docker_user
Docker as user
2021-04-10 08:19:25 +02:00
Matthias
83fbaf16c8 Extract numeric param validation and explosion 2021-04-10 07:59:59 +02:00
Matthias
ea4b5d675d Don't explode low/high, but use explicit parameters 2021-04-10 07:12:31 +02:00
Matthias
34e47db18d Test SKDecimal space 2021-04-09 22:15:24 +02:00
Matthias
5f67400649 Add SKDecimal Space 2021-04-09 21:58:15 +02:00
Matthias
898c24949b Add chown method to support docker 2021-04-08 20:17:07 +02:00
Matthias
8cd3c05c39
Merge pull request #4686 from gerrito333/develop
Add Pairlist Handler for Volatility
2021-04-08 20:00:41 +02:00
gbojen
f8244d9d76 resolves freqtrade/freqtrade#4650 2021-04-07 22:25:54 +02:00
Matthias
c36051be56
Merge pull request #4685 from freqtrade/ft_has
Use ccxt's has to check which exchanges can work with freqtrade
2021-04-07 10:47:56 +02:00
gbojen
5ee879a747 isort resolves freqtrade/freqtrade#4650 2021-04-07 10:15:51 +02:00
Matthias
d2680f6cb8 Remove telegram deprecation warning
closes #4688
2021-04-07 06:57:05 +02:00
Matthias
ac6bff536f Fix test failure with UI test if UI is deployed 2021-04-07 06:55:11 +02:00
Matthias
0f0607baec Fix rangeestability filter caching issue 2021-04-07 06:52:34 +02:00
gbojen
9772a93634 resolves freqtrade/freqtrade#4650 2021-04-06 23:11:40 +02:00
gbojen
9089323d26 resolves freqtrade/freqtrade#4650 2021-04-06 22:46:36 +02:00
gbojen
187cf6dcd5 VolatilityFilter resolves freqtrade/freqtrade#4650 2021-04-06 22:41:15 +02:00
Matthias
a3b4667f7c Update exchange validation to use "validate_exchange". 2021-04-06 20:16:29 +02:00
Matthias
5ed7828446 Remove hardcoded list of non-working exchanges 2021-04-06 20:03:38 +02:00
klara31
f37fbbf4e1
Update constants.py 2021-04-06 19:47:48 +02:00
klara31
bf0886a839
Update constants.py 2021-04-06 18:35:30 +02:00
Matthias
56ef3af424 Allow comments in pairs files 2021-04-06 13:29:22 +02:00
gbojen
1733e24062 pyLint adjustment resolves freqtrade#4650 2021-04-06 10:44:13 +02:00
gbojen
be770a8941 added VolatilityFilter resolves freqtrade#4650 2021-04-06 10:42:53 +02:00
gbojen
6f02acdbbd Revert "resolves freqtrade/freqtrade#4650"
This reverts commit 142690c930.
2021-04-06 10:39:27 +02:00
gbojen
142690c930 resolves freqtrade/freqtrade#4650 2021-04-06 10:05:03 +02:00
Matthias
0550f261f1 Add exchange_has validation 2021-04-06 07:47:44 +02:00
Mads Sørensen
c176e277f1 Add a REST endpoint for getting a specific trade 2021-04-05 19:31:34 +02:00
Matthias
78a84f8081 Allow --hyperoptloss in addition to --hyperopt-loss 2021-04-05 15:38:33 +02:00
Matthias
7b2a0d46cb Fix typo 2021-04-05 15:38:25 +02:00
Matthias
431f0a3db4
Merge pull request #4671 from freqtrade/fix/sqlalchemy
sqlalchemy database locked bug
2021-04-05 14:09:35 +02:00
Matthias
b470672dfd
Merge pull request #4596 from rokups/rk/hyper-strategy
Support for creating auto-hyperoptable strategies.
2021-04-05 13:55:32 +02:00
Matthias
c51839dc3b Make the logmessage for loaded parameters clearer 2021-04-05 11:21:20 +02:00
Matthias
dc406fe19f Fail in case of name and explicit space name collisions 2021-04-05 10:53:00 +02:00
Matthias
7132aefd60 Rename Trade.session to Trade._session 2021-04-05 08:46:12 +02:00
Matthias
0407bf755f Use .query.session to make sure the scoped session is used properly 2021-04-05 07:28:51 +02:00
Matthias
bd5e1c5096
Merge pull request #4660 from rextea/order_pairlist_results
Sort pair lists by total profit
2021-04-04 19:47:33 +02:00
rextea
9e56f6d4eb Sort pair lists by total profit 2021-04-04 01:19:38 +03:00
Matthias
30e5e92968 Don't allow one parmeter to be in 2 spaces
use the explicit user wish (given explicitly with "space")
2021-04-03 20:17:48 +02:00
Matthias
9d4b5cc6bb Fix typo 2021-04-03 19:56:20 +02:00
Matthias
5f6eae52a2 fix too long performance message
closes #4655
2021-04-03 19:12:36 +02:00
Matthias
41cb2a6451 Merge branch 'develop' into pr/rokups/4596 2021-04-03 17:00:37 +02:00
Matthias
6555454bd2 Remove more ticker_interval occurances 2021-04-03 16:54:47 +02:00
Matthias
771fc05749 Update sample strategy with hyperoptable Parameters 2021-04-03 16:32:16 +02:00
Rokas Kupstys
faf40482ef Fix parameter printing. 2021-04-03 13:49:24 +03:00
Rokas Kupstys
ea43d5ba85 Implement DecimalParameter and rename FloatParameter to RealParameter. 2021-04-02 17:08:16 +03:00
Matthias
c7ee34687b
Merge pull request #4584 from withshubh/develop
fix: code quality issues
2021-04-02 15:19:49 +02:00
Mads Sørensen
3691ae8686 Make sure the fiat converter exists before calling it 2021-04-02 14:50:47 +02:00
shubhendra
f47dc31786 Refactor the comparison involving not
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-04-02 16:57:44 +05:30
Mads Sørensen
51f0fcb2cb Add profit_fiat to REST API 2021-04-02 12:20:38 +02:00
Matthias
5acdc9bf42 Fix type errors by converting all hyperopt methods to instance methods 2021-04-01 06:47:23 +02:00
Rokas Kupstys
5e5b11d4d6 Split "enabled" to "load" and "optimize" parameters. 2021-03-31 12:31:28 +03:00
Matthias
2869d5368d Allow edge to use dynamic pairlists
closes #4298
2021-03-30 20:20:24 +02:00
Matthias
50fcb3f330 Reduce verbosity of missing data if less than 1% of data is missing 2021-03-30 07:26:39 +02:00
Matthias
89bbfd2324 Remove candle_count from dataframe before backtesting
closes #3754
2021-03-29 20:26:54 +02:00
Matthias
f6211bc00e new-config should include API config 2021-03-28 20:23:57 +02:00
Matthias
fc8478111e Improve strategy template 2021-03-28 20:06:30 +02:00
Matthias
929f329607 more tests 2021-03-28 19:49:20 +02:00
Matthias
20f7e9b4b7 Make BaseParameter get_space abstract 2021-03-28 19:31:54 +02:00
Matthias
8022386404 Type custom_hyperopt 2021-03-27 18:00:07 +01:00
Matthias
7fb34f7e25 Version bump 2021.3 2021-03-27 11:34:11 +01:00
Matthias
bf0f34c156 Merge branch 'stable' into new_release 2021-03-27 11:33:56 +01:00
Matthias
71e2134694 Add some simple tests for hyperoptParameters 2021-03-27 11:26:26 +01:00
Matthias
786ddc6a91 remove unused imports 2021-03-27 10:47:33 +01:00
rextea
76a02ff70a fix indentations 2021-03-26 18:49:17 +03:00
rextea
2bed41da5d Add days breakdown table to backtesting 2021-03-26 18:40:50 +03:00
Rokas Kupstys
e934d3ddfb [SQUASH] Oopsie. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
40f5c7853e [SQUASH] Add a way to temporarily disable a parameter (excludes from parameter loading/hyperopt) and print parameter values when executed. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
bbe6ece38d [SQUASH] Fix parameter configs not loading. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
424cd2a914 [SQUASH] Use "space" instead of category. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
fd45dfd894 [SQUASH] Make skopt imports optional. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
11689100e7 [SQUASH] Fix exception when HyperOpt nested class is not defined. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
e9f0babe8a [SQUASH] Use HyperStrategyMixin as part of IStrategy interface. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
2d13e5fd50 [SQUASH] Oopsies. 2021-03-26 16:56:24 +02:00
Rokas Kupstys
bb89e44e19 [SQUASH] Address PR comments.
* Split Parameter into IntParameter/FloatParameter/CategoricalParameter.
* Rename IHyperStrategy to HyperStrategyMixin and use it as mixin.
* --hyperopt parameter is now optional if strategy uses HyperStrategyMixin.
* Use OperationalException() instead of asserts.
2021-03-26 16:56:24 +02:00
Rokas Kupstys
0a205f52b0 Optional support for defining hyperopt parameters in a strategy file and reusing common hyperopt/strategy parts. 2021-03-26 16:56:24 +02:00
Matthias
8da7d5c009
Merge pull request #4594 from rextea/add_confirm_exit_enter_tade_to_backtesting
Add confirm_trade_exit and confirm_trade_entry to backtesting
2021-03-25 20:26:56 +01: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
Matthias
ee82d36bef
Merge pull request #4593 from hoeckxer/feat/status_table_telegram_length
Changed the code for status table a bit so that it splits up the trad…
2021-03-24 06:49:54 +01:00
Erwin Hoeckx
2fd510e6e4 Added comment with an example calculation
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-23 21:52:46 +01:00
Erwin Hoeckx
65a9763fa5 Fixed an issue when there were exactly 50 trades, it was sending an extra empty table
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-23 16:54:38 +01:00
Erwin Hoeckx
c928cd38dc Small bugfix to make sure it shows all the trades
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-23 16:45:42 +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
Erwin Hoeckx
4e8999ade3 Changed the code for status table a bit so that it splits up the trades per 50 trades, to make sure it can be sent regardless of number of trades
Signed-off-by: Erwin Hoeckx <hawkeyenl@yahoo.com>
2021-03-22 20:40:11 +01:00
shubhendra
4d81834912
Merge isinstance calls
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:47 +05:30
shubhendra
45da3a7022
Refactor unnecessary else / elif when if block has a continue statement
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:47 +05:30
shubhendra
910e15b174
Remove methods with unnecessary super delegation.
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:47 +05:30
shubhendra
6d6ad035d6
Remove length check in favour of truthiness of the object
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:46 +05:30
shubhendra
537ad059bc
Remove unnecessary use of comprehension
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:46 +05:30
shubhendra
62d99a0b74
Remove unnecessary comprehension
Signed-off-by: shubhendra <withshubh@gmail.com>
2021-03-21 17:14:45 +05:30
Matthias
e315a6a0da assume "last" can miss from a ticker response
closes #4573
2021-03-20 14:58:51 +01:00
Matthias
43d7f9ac67 Add bid_last_balance parameter
to interpolate sell prices

closes #3270
2021-03-20 14:38:26 +01:00
Matthias
73876b61b4 Show potential errors when loading markets 2021-03-20 13:34:33 +01:00
Matthias
16a54b3616 Don't require non-mandatory arguments 2021-03-20 13:08:02 +01:00
Matthias
fe7f3d9c37 Add price side validation for market orders 2021-03-20 11:48:39 +01:00
Matthias
7ffe1fd36a Fix calculation error for min-trade-stake 2021-03-20 07:21:22 +01:00
Matthias
0d5833ed91 Use OperationalException for TimeRange errors 2021-03-19 06:40:04 +01:00
Patrick Brunier
4d52732d30 Added a small snippet to give users a descent error message,
when their start date is afer the stop date.
Also updated the tests.
2021-03-18 22:38:54 +01:00
Matthias
84ca9bd2c7
Merge pull request #4543 from brookmiles/fix-math-custom-stoploss-docs
correct math used in examples and clarify some terminology regarding …
2021-03-18 19:32:30 +01:00
Matthias
76ca3c219f extract result-printing from hyperopt class 2021-03-17 20:45:15 +01:00
Brook Miles
ce1ed76269 complete stoploss_from_open and associated test 2021-03-17 22:44:10 +09:00
Brook Miles
aee2591490 add stoploss_from_open() as a strategy_helper 2021-03-17 17:58:23 +09:00
Matthias
79d4585dad Add check to ensure close_profit_abs is filled on closed trades
Technically, this should not be possible, but #4554 shows it is.

closes #4554
2021-03-16 19:24:03 +01:00
Matthias
b191663a7e Adapt hyperopt templates to be better aligned
closes #3027
2021-03-14 19:49:46 +01:00
Matthias
0b35c0571f Allow custom fee to be used during dry-run
closes #3696
2021-03-14 19:37:57 +01:00
Matthias
b57c150654 Final balance should include forcesold pairs 2021-03-14 09:48:40 +01:00
Matthias
cd8d9f2930
Merge pull request #4534 from rokups/patch-1
Provide access to strategy instance from hyperopt class.
2021-03-13 17:14:47 +01:00
Matthias
3b99f04a78
Merge pull request #4535 from freqtrade/fix/backtestperformance
Improve backtest performance after enabling compounding
2021-03-13 16:51:00 +01:00
Matthias
0320c8dc92 Improve tests for trades_proxy 2021-03-13 15:51:27 +01:00
Rokas Kupstys
5e872273d1 Provide access to strategy instance from hyperopt class. 2021-03-13 15:13:42 +02:00
Matthias
d1acc8092c Improve backtest performance 2021-03-13 10:17:14 +01:00
Jackson Law
425cd7adba Create event loop manually if uvloop is available
asyncio.get_event_loop() does not call new_event_loop()
if current_thread() != main_thread()
2021-03-12 16:16:03 -08:00
Matthias
441d3fad39
Merge pull request #4513 from freqtrade/fix/4511
Fix stoploss order problem with FTX
2021-03-11 19:39:44 +01:00
Matthias
ef9977fc1e Make stake_amount + stake_currency mandatory for backtesting 2021-03-10 10:43:44 +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
99583bbd0c Fix problem with FTX
where cancelled orders are "cancelled", not "canceled"
2021-03-09 20:21:08 +01:00
Th0masL
37e6006169 Fix order_by in trades command 2021-03-08 23:21:56 +02: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
02d7dc4780 Increase cache size to be large enough to hold all pairs
closes #4483
2021-03-06 19:55:02 +01:00
Matthias
b515609d73
Merge pull request #4490 from Th0masL/add_trade_id
Add the trade ID to Telegram Buy/Sell/Cancel messages
2021-03-06 15:40:34 +01:00
Th0masL
ad0e60b5b6 Add trade_id to Cancel messages and reduced lines length 2021-03-06 15:07:47 +02:00
Matthias
eed8c94dd9
Merge pull request #4488 from patrick310/patch-1
Add strategy name to HyperOpt results filename
2021-03-06 13:48:12 +01:00
Th0masL
03b89e7f78 Add trade_id in Telegram messages 2021-03-06 00:04:12 +02:00
Matthias
a405d578da Introduce forcebuy ordertype to allow specifiying a different ordertype for forcebuy / forcesells 2021-03-05 20:22:04 +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
Matthias
5196306407 Remove deprecated profit return value 2021-03-05 20:03:49 +01: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
6eb253c31e
Merge pull request #4469 from freqtrade/rpc/locks
Add RPC methods to remove locks
2021-03-02 10:41:08 +01:00
Matthias
4bb6a27745 Don't catch errors that can't happen 2021-03-02 06:59:58 +01:00
Matthias
007ac7abb5 Add telegram pair unlocking 2021-03-01 20:09:40 +01:00
Matthias
6640156ac7 Support deleting locks via API 2021-03-01 19:50:39 +01:00
Matthias
6eef6d41bc
Merge pull request #4465 from freqtrade/dependabot/pip/develop/arrow-1.0.2
Bump arrow from 0.17.0 to 1.0.2
2021-03-01 09:30:11 +01:00
Matthias
2083cf6ddf Fix mypy errors introduced by Arrow update 2021-03-01 08:57:57 +01:00
Matthias
3d65ba2dcb Add rpc method to delete locks 2021-03-01 07:51:33 +01:00
Matthias
bba9b9e819 Don't use __root__ directly for api response 2021-03-01 07:08:44 +01:00
Matthias
4b689f5b88
Merge pull request #4420 from freqtrade/dependabot/pip/develop/mypy-0.812
Bump mypy from 0.790 to 0.812
2021-02-28 15:30:44 +01:00
Matthias
aba034ff40 Fix mypy problem after mypy 0.800 upgrade 2021-02-28 11:04:30 +01:00
Matthias
54ccbd9370
Merge pull request #4391 from squat0001/develop
Add dust level to balance command in telegram
2021-02-28 10:36:44 +01:00
Matthias
a13dc3cdde Use sensible defaults for balance_dust_level 2021-02-28 09:57:52 +01:00
Matthias
9cb37409fd Explicitly convert starting-balance to float 2021-02-28 09:56:29 +01:00
Florian Reitmeir
0895407811 add balance_dust_level parameter to make telegram less chatty 2021-02-28 08:51:32 +01:00
Matthias
05f057fe72 Stringify favicon path
potentially closes #4459
2021-02-28 08:48:28 +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
f5bb5f56f1 Update documentation with backtesting compounding possibilities 2021-02-27 09:33:00 +01:00
Matthias
98f3142b30 Improve handling of backtesting params 2021-02-27 09:33:00 +01:00
Matthias
86f9409fd2 fix --stake-amount parameter 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
60db6ccf45 Add test for subclassing 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
37d7d2afd5 Wallets should not recalculate close_profit for closed trades 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
aed23d55c2 Add starting balance to profit cumsum calculation 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
959ff99046 Add Dry-run wallet CLI option 2021-02-27 09:32:59 +01:00
Matthias
0754a7a78f total_open_trades_stake should support no-db mode 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
20455de2a9 Small enhancements to docs 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