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
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