Commit Graph

10425 Commits

Author SHA1 Message Date
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 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 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 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 
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 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