Commit Graph

6748 Commits

Author SHA1 Message Date
Matthias 52ae95b2a5 Improve naming of apiserver variables 2021-07-10 11:20:21 +02:00
Matthias ad26b0dad0 Don't void backtest object when not necessary 2021-07-10 10:59:00 +02:00
Matthias e4e2340f91 Fix bug where currencies are duplicated
in case there is dust
2021-07-10 10:02:05 +02:00
Matthias 6129c5ca9e Fix deprecation warnings from pandas 1.3.0
closes #5251
2021-07-09 20:46:38 +02:00
Matthias 2f33b97b95 Validate startup candles for backtesting correctly
closes #5250
2021-07-09 07:20:43 +02:00
Matthias fb25130588
Merge pull request #5244 from octaviusgus/develop
fix daily profit data bug and daily profit curve example
2021-07-09 07:06:14 +02:00
Matthias d96d6024f4
Merge pull request #5252 from kevinjulian/agefilter-max-days-listed
Fix Agefilter cannot appear on startup messages
2021-07-08 20:29:06 +02:00
kevinjulian 2a4a980855 Merge branch 'agefilter-max-days-listed' of https://github.com/kevinjulian/freqtrade into agefilter-max-days-listed 2021-07-08 19:25:32 +07:00
kevinjulian 863391122f fix short desc not appear 2021-07-08 13:42:52 +07:00
Matthias 225522762b
Merge pull request #5231 from nightshift2k/enhancement/range-based-volumefilter
Range based VolumeFilter
2021-07-08 07:22:37 +02:00
Matthias 76e51cddba
Merge pull request #5246 from nightshift2k/feature/offsetfilter
new filter OffsetFilter for offsetting incoming pairlists
2021-07-07 21:06:23 +02:00
Matthias 682f880630 Slightly simplify if statement, add additional test 2021-07-07 20:05:56 +02:00
kevinjulian 8248d1acd1 run flake8 2021-07-07 22:10:22 +07:00
kevinjulian 00a1931f40 fix test 2021-07-07 21:24:44 +07:00
sauces1313 8b0a02db8e Correct exception messages 2021-07-07 08:11:13 +00:00
nightshift2k 3c3772703b changed quoteVolume to be built over a
rolling period using lookback_period
to avoid pair_candles being larger
than requested lookback_period
2021-07-07 09:46:05 +02:00
user 638bed3dac Add RangeStabilityFilterMax pairlist filter 2021-07-07 06:46:51 +00:00
octaviusgus d1104bd434 fix daily profit data and daily profit curve example 2021-07-06 22:47:39 +02:00
Matthias 005da97183 extract backtesting abort functionality 2021-07-06 19:48:28 +02:00
Matthias 5474d5ee64 Move webserver start command to seperate file 2021-07-06 19:48:28 +02:00
Matthias e5b1657ab3 Properly remove rpc handler 2021-07-06 19:48:28 +02:00
Matthias 2ec22f1d97 Add Sorting to available pair list 2021-07-06 19:48:28 +02:00
Matthias 830b2548bc Add backtest stopping 2021-07-06 19:48:28 +02:00
Matthias 129c7b02d0 Not all config values are mandatory in webserver mode 2021-07-06 19:48:28 +02:00
Matthias 17b3cc2097 Return numeric value, not empty string 2021-07-06 19:48:28 +02:00
Matthias b44d215b90 Add test for backtest via APII 2021-07-06 19:48:28 +02:00
Matthias 804d99cce9 Move backtesting api to it's own file 2021-07-06 19:48:28 +02:00
Matthias 8566306010 Add test for start_websever 2021-07-06 19:48:28 +02:00
Matthias 134c61126e Properly track bt progress ... 2021-07-06 19:48:28 +02:00
Matthias 03140a0ecb Run webserver in main thread when using webserver mode 2021-07-06 19:48:28 +02:00
Matthias 37b15e830a Add trade count to progress 2021-07-06 19:48:28 +02:00
Matthias 048008756f Add progress tracking for backtesting 2021-07-06 19:48:28 +02:00
Matthias 06b6726029 Support compounding key 2021-07-06 19:48:28 +02:00
Matthias f96d7dfe6d Allow backtesting to reuse data
Allow activating / deactivating protections dynamically
2021-07-06 19:48:28 +02:00
Matthias edb8c4f0e5 Fix tests for webserver mode 2021-07-06 19:48:28 +02:00
Matthias 5c18c8726d Implement backtesting with fastapi 2021-07-06 19:48:28 +02:00
Matthias df55259737 Add start_trading endpoint 2021-07-06 19:48:28 +02:00
Matthias 02b84bd018 Introduce webserver mode for fastapi 2021-07-06 19:48:28 +02:00
Matthias 800e314bfd Store backtesting results in backtest instance 2021-07-06 19:48:28 +02:00
Matthias 97e8ec91f0 Save configuration file paths 2021-07-06 19:48:28 +02:00
Matthias ef137546fe Add webserver entrypoint 2021-07-06 19:48:28 +02:00
Kevin Julian 0f3d34eaf4
Merge branch 'develop' into agefilter-max-days-listed 2021-07-06 19:47:18 +07:00
kevinjulian 502c69dce3 change short desc 2021-07-06 19:36:42 +07:00
Matthias dec523eef0 Display verison of installed FreqUI 2021-07-06 07:20:05 +02:00
nightshift2k 1e87225e91 added `test_VolumePairList_range` to test_pairlist.py 2021-07-05 20:59:27 +02:00
Matthias 10998eb0fa Remove further usages of int(int_timestamp) 2021-07-05 19:51:14 +02:00
Matthias 1682578a39
Merge pull request #5234 from nightshift2k/fixups/pairlists
fixup pairlist filters, change  float_timestamp to int_timestamp
2021-07-05 19:45:35 +02:00
nightshift2k 346d66748b first version of OffsetFilter 2021-07-05 12:50:56 +02:00
nightshift2k 5626ca5a06 removed unnecessary casting to int() 2021-07-05 10:39:22 +02:00
Matthias eb3ead4930
Merge pull request #5229 from kevinjulian/telegram-balance
compact low balance currencies
2021-07-05 06:56:35 +02:00
nightshift2k 7ac55e5415 AgeFilter, RangeStabilityFilter, VolatilityFilter
changed `float_timestamp` to `int_timestamp`
2021-07-04 21:08:42 +02:00
nightshift2k 85c7b55750 improvements:
- `float_timestamp` switched to `int_timestamp`
- added documentation to pairlists.md
2021-07-04 20:46:24 +02:00
Matthias c5489d530a Reexport File to docs to have this available as documentation too 2021-07-04 19:50:44 +02:00
kevinjulian c3cf71bba8 sort import 2021-07-04 22:04:39 +07:00
kevinjulian 2d5ced7801 fix testcase 2021-07-04 21:59:59 +07:00
octaviusgus 558bcc7959 Jupyter notebook snippet: Plotting daily profit / equity line 2021-07-04 15:56:55 +02:00
octaviusgus 4aa2ae37bd
add daily_profit_list
added extra key daily_profit in return of optimize_reports.generate_daily_stats
this allows us to analyze and plot a daily profit chart / equity line using snippet below inside jupyter notebook

```
# Plotting equity line (starting with 0 on day 1 and adding daily profit for each backtested day)

from freqtrade.configuration import Configuration
from freqtrade.data.btanalysis import load_backtest_data, load_backtest_stats
import plotly.express as px
import pandas as pd

# strategy = 'Strat'
# config = Configuration.from_files(["user_data/config.json"])
# backtest_dir = config["user_data_dir"] / "backtest_results"

stats = load_backtest_stats(backtest_dir)
strategy_stats = stats['strategy'][strategy]

equity = 0
equity_daily = []
for dp in strategy_stats['daily_profit']:
    equity_daily.append(equity)
    equity += float(dp)

dates = pd.date_range(strategy_stats['backtest_start'], strategy_stats['backtest_end'])

df = pd.DataFrame({'dates':dates,'equity_daily':equity_daily})

fig = px.line(df, x="dates", y="equity_daily")
fig.show()

```
2021-07-04 14:38:17 +02:00
Matthias 898bef1837
Merge pull request #5219 from freqtrade/hyperopt_paramfile
automatic Hyperopt paramfile
2021-07-04 13:56:52 +02:00
nightshift2k 9919061c78 PEP8 compliance 2021-07-04 11:40:45 +02:00
nightshift2k 348dbeff3f added meaningful logging of used lookback range 2021-07-04 11:16:33 +02:00
Matthias 77293b1f1e Remove Zero duration Trades
after the recent backtesting fixes, this metric no longer makes sense, as it can't really be 0 any longer.
2021-07-04 10:50:10 +02:00
Matthias a4096318e0 Provide full backtest-statistics to Hyperopt loss functions
closes #5223
2021-07-04 10:15:19 +02:00
kevinjulian 7efa228d73 add dust balance 2021-07-04 03:08:29 +07:00
kevinjulian dbdd7f38a8 add plural 2021-07-04 02:56:05 +07:00
kevinjulian b722e12350 compact low balance currencies 2021-07-04 02:44:48 +07:00
kevinjulian f6511c3e3f fix typo and add blocker 2021-07-04 02:20:53 +07:00
kevinjulian b72bbebccb fix flake8 2021-07-04 01:46:51 +07:00
kevinjulian 3d9f3eeb07 feat(agefilter): add max_days_listed 2021-07-03 23:58:04 +07:00
Rokas Kupstys 3686efa08a Add range property to CategoricalParameter and DecimalParameter, add their tests.
At the moment we can keep a single code path when using IntParameter, but we have to make a special hyperopt case for CategoricalParameter/DecimalParameter. Range property solves this.
2021-07-03 16:02:45 +03:00
nightshift2k 53f963dd73 fixed `self._tf_in_secs` to `self._tf_in_sec` 2021-07-03 11:49:05 +02:00
nightshift2k 62da4b452c code cleanup and comments 2021-07-03 11:47:17 +02:00
nightshift2k 055229a44a first iteration of volume pairlist with range lookback 2021-07-03 11:39:14 +02:00
Matthias 9d6860337f
Merge pull request #5212 from rokups/rk/trailing-stop-2
Trailing stoploss in backtesting v2
2021-07-03 08:39:30 +02:00
Matthias fbd91cd3f8 Improve formatting to avoid backslash newlines 2021-07-03 08:22:21 +02:00
Matthias b25ad68c44 Fix np.bool_ not outputting correctly 2021-07-02 20:52:25 +02:00
Matthias b8de3270fa Plotting: Fix hover mode options after plotly update
closes #5209
2021-06-30 20:11:11 +02:00
Matthias 15e36a20e1 Improve naming of default hyperopt serializer 2021-06-30 19:48:34 +02:00
Rokas Kupstys bc0742ae67 Fix extremely optimistic results when using a combination of custom_stoploss and trailing_stop. 2021-06-30 09:10:50 +03:00
Matthias 0809225a0a Update documentation to mention parameter strategy files 2021-06-30 07:05:20 +02:00
Matthias 645da51b5f Add test for parameter loading 2021-06-30 06:55:10 +02:00
Matthias dcf53ac3ff Add test for try_eport_params 2021-06-30 06:33:40 +02:00
Matthias 84703080b8 Extract hyperopt_defaults_serializer to hyperopt_tools 2021-06-29 20:51:29 +02:00
Matthias 55f032b18e Catch trying to read faulty parameter file 2021-06-29 20:51:29 +02:00
Matthias 62cdbdc26a Automatically export hyperopt parameters 2021-06-29 20:51:25 +02:00
Matthias af04c8e2da
Merge pull request #5205 from barisengez/develop
Added timerange and max open trades info above multiple strategy backtest result summary table
2021-06-29 16:49:17 +02:00
barbarius a8117c6e0b Refactored to use results variable from for loop 2021-06-29 11:24:49 +02:00
Matthias a2ccc1526e Load parameters from file 2021-06-29 07:07:34 +02:00
Matthias 8ca0076332 Fix small typos 2021-06-29 06:50:47 +02:00
Matthias d4514f5f16 Introduce File versions to hyperopt result files 2021-06-29 06:50:47 +02:00
Matthias a7e9e362b7 Simplify printing logic for non-optimized parameters 2021-06-29 06:50:47 +02:00
Matthias 8b7010fc9a Update pprint name 2021-06-29 06:50:47 +02:00
Matthias aa5181ca81 Properly export non-optimized parameters 2021-06-29 06:50:47 +02:00
Matthias 34e6ce431f Print non-optimized parameters (also stop / roi) 2021-06-29 06:50:47 +02:00
Matthias 2310deec53 Update name to get non-optimized parameters 2021-06-29 06:50:47 +02:00
Matthias 8cdd1e3aef Fix some type errors 2021-06-29 06:50:47 +02:00
Matthias 2bf17f71e7 Dump parameters from hyperopt-show 2021-06-29 06:50:47 +02:00
Matthias 750c780293 Support loading parameters from json file 2021-06-29 06:50:47 +02:00
Eugene Schava d54de72471 "/profit N" command should print best pair for the same period of time, not for all trades 2021-06-28 23:42:09 +03:00
barbarius a0f28f4a15 Added max open trades to strategy summary first line 2021-06-28 17:05:12 +02:00
barbarius 2e5b719de8 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:54:54 +02:00
barbarius c99ae3b419 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:20:34 +02:00
Matthias ab07fb5b3f
Merge pull request #5188 from freqtrade/move_config_settings
Move ask_strategy config settings to root level
2021-06-27 11:30:50 +02:00
Matthias 34448fb87c Expose default currency precision to API 2021-06-26 20:46:54 +02:00
Matthias 00a7097b9e Reduce verbosity of getting sell-rate from orderbook 2021-06-26 20:09:52 +02:00
Matthias 3f669147f1 Simplify strategy-resolver moving 2021-06-26 17:55:31 +02:00
Matthias 158cb415a9 Add settings interface to have types available 2021-06-26 17:28:37 +02:00
Matthias b7f01a08f3 Update sequence of process_deprecated_setting parameters 2021-06-26 17:03:51 +02:00
Matthias 1067a9f356 Move strategy-override signals to top-level of the config
closes #2867
2021-06-26 16:06:13 +02:00
Matthias 60c7308126
Merge pull request #5183 from freqtrade/remove_order_book_max
Remove order book max
2021-06-26 14:56:10 +02:00
Matthias 1cb057bda7 Version bump 2021.6 2021-06-26 14:01:23 +02:00
Matthias 7fe42852a8 Merge branch 'stable' into new_release 2021-06-26 14:00:55 +02:00
Matthias c62fad0088 Pricing strategies should default to use orderbook pricing 2021-06-26 08:19:37 +02:00
Matthias 59a33d0fa9 Add test for ask_orderbook validation 2021-06-25 20:52:34 +02:00
Matthias d59a38665c Remove support for order_book_max 2021-06-25 20:36:39 +02:00
aayush-jain18 d294ef10d7 unexpected docstring params 2021-06-25 23:56:16 +05:30
Matthias 1440b2f7fe
Merge pull request #5178 from aayush-jain18/spell-correction
spell corrections
2021-06-25 19:10:39 +02:00
aayush-jain18 a46f60bd94 spell corrections 2021-06-25 22:10:04 +05:30
Matthias 40545e62af
Merge pull request #5082 from freqtrade/dry_run_order
Dry run order filling
2021-06-25 18:26:01 +02:00
Matthias 1a82685dd8 Don't reset log caching
uvicorn will "load from dict" the config - which flushes the logs
and therefore cleans log-buffering
2021-06-25 18:24:10 +02:00
Matthias e0d3ca6c6d Fix import sorting 2021-06-24 18:44:59 +02:00
Matthias c938edc01b Apply dataprovider to /pair_history endpoint 2021-06-24 18:18:01 +02:00
Matthias f7c09ba63a Log endpoint should use static rpc class 2021-06-24 18:17:40 +02:00
Eugene Schava 3c70768e18 make "/profit N" command output be consistent with "/daily" and "/status table" commands 2021-06-23 07:30:08 +03:00
Eugene Schava e97c82c514 make "/profit N" command output be consistent with "/daily" and "/status table" commands 2021-06-22 12:22:19 +03:00
Eugene Schava 0605cbb06e make "/profit N" command output be consistent with "/daily" and "/status table" commands 2021-06-22 12:20:12 +03:00
Matthias 204758834d
Merge pull request #4308 from eatrisno/patch-1
Add Refresh / Reload Button on rpc/Telegram
2021-06-19 18:50:59 +01:00
Matthias 122943d835 Don't run filter again for pairlist generator
The generator implicitly runs filter - so it should not be ran again
as that would void generator caching.

closes #5103
2021-06-19 19:37:27 +02:00
Matthias 96fbb226c5 Implement better strategy checks
part of #2696
2021-06-19 19:32:29 +02:00
Matthias a7f8342171 Add small documentation about reload disabling 2021-06-19 16:49:54 +02:00
Matthias 6e99e3fbbb Implement tests for message updating 2021-06-19 09:31:34 +02:00
Matthias 39b876e37a Log exchange responses if configured 2021-06-19 09:07:42 +02:00
Matthias e40d481d09
Merge pull request #5014 from Rikj000/hyperopt-show-include-non-optimized-in-json
BugFix - `hyperopt-show --print-json` include non-optimized params
2021-06-19 07:42:15 +01:00
Rik Helsen 656bebd4da 🪲 Included completely non_optimized spaces in json + swapped merge dictionary order 2021-06-18 22:03:04 +02:00
Matthias e1010ff592 Don't load protections from config if strategy defines a property 2021-06-18 19:55:53 +02:00
Rik Helsen 1567804509 kwargs merge dictionaries instead of using loops 2021-06-17 22:41:49 +02:00
Rik Helsen 546ca01071 ♻️ Fixed flake8 warning 2021-06-17 20:33:21 +02:00
Rik Helsen 90d37f5ec6 🔀 Merged upstream branches and fixed merge conflicts 2021-06-17 20:24:20 +02:00
Matthias a9f111dca0 Fix some types 2021-06-17 19:50:49 +02:00
Matthias 7ff794cb87 Merge branch 'develop' into pr/eatrisno/4308 2021-06-17 19:46:15 +02:00
Matthias 8bb464bd64
Merge pull request #5108 from rokups/rk/pessimistic-trailing-stoploss
Implement most pessimistic handling of trailing stoploss.
2021-06-17 18:41:00 +01:00
Matthias c4bc47e6e7
Merge pull request #5140 from barisengez/develop
Moved daily avg trade row next to total trades on backtest results
2021-06-17 08:54:48 +01:00
Matthias a49ca9cbf7 Change log-level "Executing handler" msg to debug
closes #5143
2021-06-17 06:57:35 +02:00
Matthias b38ab84a13 Add documentation mention about new behaviour 2021-06-17 06:48:41 +02:00
Matthias 1c9def2fdb
Update freqtrade/optimize/optimize_reports.py 2021-06-16 20:17:44 +01:00
barbarius 1bb04bb0c2 Moved daily avg trade row next to total trades on backtest results 2021-06-16 11:40:55 +02:00
Matthias 38ed49cef5 move low to stoploss_reached
to clarify where which rate is used
2021-06-15 09:05:36 +03:00
Rokas Kupstys 6d5fc96714 Implement most pessimistic handling of trailing stoploss. 2021-06-15 09:05:36 +03:00
Matthias 0af9bcef60
Merge pull request #5131 from freqtrade/dependabot/pip/develop/mypy-0.902
Bump mypy from 0.812 to 0.902
2021-06-14 19:03:46 +01:00
Matthias cf7394d01c Export backtesting results by default
closes #4977
2021-06-14 19:57:24 +02:00
Matthias 4ba7a2bbd2 Fix mypy update problems 2021-06-14 19:18:42 +02:00
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