Commit Graph

10272 Commits

Author SHA1 Message Date
Matthias
dac4a35be2
Merge pull request #7828 from freqtrade/fix-state-info-rl
bring back market side setting in get_state_info
2022-11-30 19:57:28 +01:00
Wagner Costa
79821ebb33 fix flake8 errors 2022-11-30 08:41:44 -03:00
robcaulk
e7f72d52b8 bring back market side setting in get_state_info 2022-11-30 12:36:26 +01:00
Wagner Costa
26e8a5766f Merge branch 'develop' into backtest_fitlivepredictions 2022-11-30 08:29:28 -03:00
Wagner Costa
17cf3c7e83 bug fixes and removed fillna from fit_live_predictions 2022-11-30 08:28:45 -03:00
robcaulk
4571aedb33 consolidate and clean code 2022-11-30 00:53:35 +01:00
Matthias
3c322bf7df Improve forceenter validation messages 2022-11-29 18:27:08 +01:00
Matthias
e6b8cb8ea9
Merge pull request #7795 from froggleston/entry_exit_date_print
Add date selection arguments to backtest-analysis printout
2022-11-29 16:56:58 +01:00
Wagner Costa
8ea58ab352 change BT prediction files to feather format 2022-11-29 10:38:35 -03:00
Wagner Costa
df979ece33 Merge branch 'develop' into backtest_fitlivepredictions 2022-11-29 09:39:15 -03:00
Matthias
c3daddc629
Merge pull request #7809 from richardjozsa/develop
Improve the RL learning process
2022-11-29 06:28:36 +01:00
Matthias
100d65b20b
Merge pull request #7822 from eltociear/patch-1
Fix typo in strategy_analysis_example.md
2022-11-29 06:24:36 +01:00
Matthias
e891c41760 Fix typo in ipynb, too. 2022-11-28 18:20:30 +01:00
Emre
9cbfa12011
Directly set model_type in base RL model 2022-11-28 16:02:17 +03:00
Matthias
40b274351c
Merge pull request #7813 from freqtrade/dependabot/pip/develop/flake8-6.0.0
Bump flake8 from 5.0.4 to 6.0.0
2022-11-28 08:00:45 +01:00
Matthias
d73fd42769 Fix flake8 error introduced with 6.0 update 2022-11-28 06:38:35 +01:00
Stefano Ariestasia
f410b1b14d Update metrics.py 2022-11-28 08:56:49 +09:00
robcaulk
56518def42 isort 2022-11-27 21:06:01 +01:00
robcaulk
7fd6bc526e add randomize_starting_position to the rl_config 2022-11-27 21:03:13 +01:00
robcaulk
25e041b98e sneak in small change to FreqaiExampleHybridStrategy docstring and startup count 2022-11-27 20:50:03 +01:00
richardjozsa
64d4a52a56 Improve the RL learning process
Improve the RL learning process by selecting random start point for the agent, it can help to block the agent to only learn on the selected period of time, while improving the quality of the model.
2022-11-27 20:43:50 +01:00
Matthias
f4025ee5de
Merge pull request #7289 from freqtrade/feat/freqai-rl-dev
Add reinforcement learning module to FreqAI
2022-11-27 17:15:21 +01:00
Matthias
2219d2f491
Merge pull request #7707 from freqtrade/bt/full_detail
backtesting - use full detail timeframe
2022-11-27 16:09:23 +01:00
Matthias
cf000a4c00 Bump develop version to 2022.12-dev 2022-11-27 16:08:54 +01:00
Matthias
e4a3efc7d4 Don't use strategy.stoploss too often
discovered in #7760
2022-11-27 15:54:35 +01:00
Matthias
3fc367f536
Merge pull request #7771 from wizrds/feat/refactor-ws
Refactor WebSocket API for performance
2022-11-27 15:49:34 +01:00
Matthias
21d7406291 Temporary fix for kraken download
closes #7790
will be removed once the patch is in ccxt.
2022-11-27 15:16:43 +01:00
froggleston
1a3f88c7b9 Replace separate start/end date option with usual timerange option 2022-11-27 11:30:13 +00:00
stm
51d21b413d
Fix 4ac update_total_profit
_update_total_profit() must be executed before "self._position = Positions.Neutral" because _update_total_profit() calls get_unrealized_profit(), which returns 0 if position is neutral and total_profit is not updated
2022-11-26 23:35:20 +03:00
robcaulk
dba30393fb ensure extra_returns_per_train are set properly on first hist_preds build 2022-11-26 18:04:47 +01:00
froggleston
706bc9ebea Merge branch 'entry_exit_date_print' of github.com:froggleston/freqtrade into entry_exit_date_print 2022-11-26 16:59:27 +00:00
froggleston
4790aaaae1 Implement cli options for backtesting-analysis date filtering 2022-11-26 16:58:56 +00:00
Robert Davey
e1456e407b
Merge branch 'freqtrade:develop' into entry_exit_date_print 2022-11-26 16:53:48 +00:00
Timothy Pogue
a26b3a9ca8 change sleep call back to 0.01 2022-11-26 09:40:22 -07:00
Matthias
ce213b55a2 Bybit fix candle limit 2022-11-26 13:58:22 +01:00
robcaulk
b52f05923a fix list to array in constants.py 2022-11-26 13:47:47 +01:00
robcaulk
be890b52fd remove np import 2022-11-26 13:44:58 +01:00
robcaulk
aaaa5a5f64 add documentation for net_arch, other small changes 2022-11-26 13:44:58 +01:00
Matthias
fcf13580f1 Revert "offload initial df computation to thread"
This reverts commit f268187e9b.
2022-11-26 13:33:54 +01:00
Matthias
7b0a76fb70 Improve typehint 2022-11-26 13:33:26 +01:00
Matthias
7ebc8ee169 Fix missing Optional typehint 2022-11-26 13:32:18 +01:00
Matthias
bdfedb5fcb Improve typehints / reduce warnings from mypy 2022-11-26 13:03:07 +01:00
robcaulk
81fd2e588f ensure typing, remove unsued code 2022-11-26 12:11:59 +01:00
robcaulk
8dbfd2cacf improve docstring clarity about how to inherit from ReinforcementLearner, demonstrate inherittance with ReinforcementLearner_multiproc 2022-11-26 11:51:08 +01:00
Timothy Pogue
bd95392eea fix formatted string in warning message :) 2022-11-25 13:10:22 -07:00
Timothy Pogue
4aa4c6f49d change sleep in channel send to 0 2022-11-25 13:08:41 -07:00
Timothy Pogue
f268187e9b offload initial df computation to thread 2022-11-25 12:56:33 -07:00
Timothy Pogue
afc00bc30a log warning if channel too far behind, add docstrings to message stream 2022-11-25 12:48:57 -07:00
froggleston
391817243c Tidy up complex functions 2022-11-25 16:12:15 +00:00
Matthias
79c041b62d Update tests for new export format 2022-11-25 16:57:58 +01:00
Matthias
8c014bd365 Export trade-counts to csv
closes #7789
2022-11-25 16:57:45 +01:00
Matthias
8ee8b6e943 Improve hyperopt list output
closes  #7789
2022-11-25 16:31:21 +01:00
Matthias
0f97ef0d7b Reset stoploss_order_id when order is canceled
closes #7766
2022-11-25 16:08:33 +01:00
Matthias
1b3e62bcbc Lock execute_entry to prevent timing hickups 2022-11-25 14:50:48 +01:00
Matthias
c593cdc438 Improve type hints 2022-11-25 14:48:06 +01:00
Matthias
5e6cda11ef Update method name for trade fee updating 2022-11-25 14:43:56 +01:00
Matthias
b8d1862ca8 Update cached binance leverage tiers
closes #7794
2022-11-25 10:42:19 +01:00
Timothy Pogue
bcc8063eeb Merge branch 'develop' into feat/refactor-ws 2022-11-24 13:42:57 -07:00
Timothy Pogue
fc59b02255 prevent ws endpoint from running without valid token 2022-11-24 13:41:10 -07:00
Timothy Pogue
101dec461e close ws channel if can't accept 2022-11-24 11:35:50 -07:00
robcaulk
2e82e6784a move data_provider cleanup to shutdown() 2022-11-24 19:07:38 +01:00
robcaulk
73c458d47b use importlib instead of __import___ 2022-11-24 19:04:35 +01:00
robcaulk
4894d772ed merge develop into feat/freqai-rl-dev 2022-11-24 18:50:11 +01:00
robcaulk
3a07749fcc fix docstring 2022-11-24 18:46:54 +01:00
robcaulk
44b042ba51 remove unused function 2022-11-24 17:53:26 +01:00
Matthias
8f1a8c752b Add freqairl docker build process 2022-11-24 07:00:12 +01:00
Timothy Pogue
48242ca02b update catch block in cancel channel tasks 2022-11-22 12:43:45 -07:00
Matthias
7785c91c5d
Merge pull request #7756 from wizrds/feat/secure-ws-conn
Support SSL in WebSocket connection
2022-11-22 19:18:16 +01:00
Wagner Costa
d09157efb8 update code to use one prediction file / pair 2022-11-22 15:15:42 -03:00
Timothy Pogue
a5442772fc ensure only broadcasting to subscribed topics 2022-11-22 09:42:09 -07:00
Wagner Costa
91779bb28b Merge branch 'develop' into backtest_fitlivepredictions 2022-11-22 13:09:48 -03:00
Wagner Costa
c01f25ddc9 update code to freqai_backtest_live_models only from historic predictions 2022-11-22 13:09:09 -03:00
Timothy Pogue
d9d7df70bf fix tests, log unknown errors 2022-11-21 12:21:40 -07:00
Matthias
0fa5217043 Improve protection setup
lock_pair should be called when the order closes, not when the exit order is placed.
it should also be called for stoploss orders, too.

closes #7783
2022-11-21 19:30:49 +01:00
Timothy Pogue
106ac2ab4d fix tests, change to get call 2022-11-20 16:36:22 -07:00
Timothy Pogue
d2870d48ea change typing to async iterator 2022-11-20 16:24:44 -07:00
Timothy Pogue
48a1f2418f update typing, remove unneeded try block, readd sleep 2022-11-20 16:18:24 -07:00
Timothy Pogue
60a167bdef add dynamic send timeout 2022-11-20 14:09:45 -07:00
Timothy Pogue
dc79284c54 Merge branch 'develop' into feat/refactor-ws 2022-11-20 10:05:22 -07:00
Matthias
12b471c64b Prevent 2 parallel open orders through forceentry
this leads to forgetting the prior order

closes #7765
2022-11-20 09:28:14 +01:00
Wagner Costa Santos
fdc82af883 fix tests - update code to backtest with historic_predictions 2022-11-19 22:27:58 -03:00
Timothy Pogue
3714d7074b smaller throttle in channel send 2022-11-19 13:29:23 -07:00
Timothy Pogue
c1a73a5512 move sleep call in send, minor cleanup 2022-11-19 13:21:26 -07:00
Wagner Costa Santos
80d070e9ee update code to use historic_predictions for freqai_backtest_live_models 2022-11-19 14:15:58 -03:00
Wagner Costa Santos
3d3195847c Merge branch 'develop' into backtest_fitlivepredictions 2022-11-18 17:53:34 -03:00
Timothy Pogue
98d87b3ba6 Merge branch 'develop' into feat/refactor-ws 2022-11-18 13:41:22 -07:00
Timothy Pogue
0cb6f71c02 better error handling, true async sending, more readable api 2022-11-18 13:32:27 -07:00
Matthias
4de9a46618
Merge pull request #7759 from wizrds/fix/pd-mem-leak
Fix Pandas to_json memory leak
2022-11-18 20:24:16 +01:00
Timothy Pogue
b6a8e421f1 remove redundant timestamp conversion in ws serializer 2022-11-18 09:43:39 -07:00
Matthias
12cd83453c Add warning when queue websocket queue becomes too full 2022-11-18 14:03:56 +01:00
Matthias
4c7bb79c86 Restore prior data transfer format 2022-11-18 13:59:29 +01:00
Timothy Pogue
ba493eb7a7 Merge fix/pd-mem-leak 2022-11-17 16:21:12 -07:00
robcaulk
387c905a86 merge develop into RL 2022-11-17 21:59:07 +01:00
robcaulk
60fcd8dce2 fix skipped mac test, fix RL bug in add_state_info, fix use of __import__, revise doc 2022-11-17 21:50:02 +01:00
robcaulk
91df79ff44 merge dev into backtest-live-predictions 2022-11-17 21:20:47 +01:00
Matthias
436b314c80 add safe_remaining
fixes #7757
2022-11-17 19:07:47 +00:00
Timothy Pogue
49ecc83061 Merge branch 'develop' into fix/pd-mem-leak 2022-11-17 12:04:49 -07:00
Timothy Pogue
ce43fa5f43 small fix to websocketchannel and relay 2022-11-17 12:03:11 -07:00
Timothy Pogue
875e9ab447 change df serialization to avoid mem leak 2022-11-17 11:59:03 -07:00
Robert Caulk
cd6f87be17
Merge pull request #7728 from freqtrade/improve_timerange
Simplify timerange handling
2022-11-17 19:57:48 +01:00
Matthias
b929e0bb2b Merge branch 'develop' into gc_improvements 2022-11-17 19:55:03 +01:00
Matthias
9432bcd065 Fix telegram error on force_enter exception
closes #7727
2022-11-17 19:52:03 +01:00
Wagner Costa Santos
3903b04d3f save_live_data_backtest - added docs and tests 2022-11-17 15:20:07 -03:00
Wagner Costa Santos
99bff9cbfa backtesting_from_live_saved_files - code refactoring 2022-11-17 10:30:51 -03:00
Wagner Costa Santos
913749c81b backtesting_from_live_saved_files - code refactoring 2022-11-17 10:30:16 -03:00
Wagner Costa Santos
b01e4e3dbf change default value - save_live_data_backtest as false 2022-11-17 10:14:30 -03:00
Wagner Costa Santos
1a19d90e2e Merge branch 'develop' into backtest_fitlivepredictions 2022-11-17 10:13:11 -03:00
Matthias
afcb86f422 Improve migration types 2022-11-17 10:25:51 +00:00
Matthias
93addbe5c3 Improve typechecking 2022-11-17 10:16:38 +00:00
Timothy Pogue
6a1655c047 support ssl connections in emc 2022-11-15 22:26:54 -07:00
Timothy Pogue
442467e8ae remove old comments and code 2022-11-14 22:26:34 -07:00
Matthias
6deb2dfb61
Merge pull request #7744 from freqtrade/dependabot/pip/develop/mypy-0.990
Bump mypy from 0.982 to 0.990
2022-11-15 06:24:24 +01:00
Timothy Pogue
d713af045f remove main queue completely 2022-11-14 22:21:40 -07:00
Timothy Pogue
659c8c237f initial revision 2022-11-14 20:27:45 -07:00
Matthias
0a702cdd26 Ensure more methods are typechecked 2022-11-14 20:56:35 +01:00
Matthias
a951b49541 Use Generator when sending initial dataframes 2022-11-14 19:43:59 +01:00
Matthias
30b467906c Delist FTX, following ccxt's delisting. 2022-11-14 19:40:57 +01:00
Matthias
95fd4072fa
Merge pull request #7701 from freqtrade/add-single-precision-freqai
add option to force single precision
2022-11-14 07:02:35 +01:00
Matthias
42b29cd307 Fix constants type 2022-11-13 19:31:49 +01:00
robcaulk
bf4d5b432a ensure model_type is defined 2022-11-13 18:50:25 +01:00
robcaulk
6394ef4558 fix docstrings 2022-11-13 17:43:52 +01:00
robcaulk
96fafb7f56 remove limit_ram_use 2022-11-13 17:14:47 +01:00
robcaulk
b421521be3 help default ReinforcementLearner users by assigning the model_type automatically 2022-11-13 17:12:17 +01:00
robcaulk
90f168d1ff remove more user references. cleanup dataprovider 2022-11-13 17:06:06 +01:00
robcaulk
388ca21200 update docs, fix bug in environment 2022-11-13 16:56:31 +01:00
robcaulk
1e9e7887aa fix constants.py, fix freqai test 2022-11-13 15:38:35 +01:00
robcaulk
af9e400562 add test coverage, fix bug in base environment. Ensure proper fee is used. 2022-11-13 15:31:37 +01:00
Matthias
942840da2d Improve setting wording to keep future possibilities open 2022-11-13 15:22:44 +01:00
robcaulk
81f800a79b switch to using FT calc_profi_pct, reverse entry/exit fees 2022-11-13 13:41:17 +01:00
robcaulk
e45d791c19 Merge remote-tracking branch 'origin/develop' into feat/freqai-rl-dev 2022-11-13 13:00:16 +01:00
Matthias
fed3bc6730 Simplify Websocket Init 2022-11-13 10:33:54 +01:00
Matthias
954da4fec9 Add "forcebuy error" exception log
part of #7727
2022-11-12 19:52:10 +01:00
robcaulk
e71a8b8ac1 add ability to integrate state info or not, and prevent state info integration during backtesting 2022-11-12 18:46:48 +01:00
Wagner Costa Santos
27fa9f1f4e backtest saved dataframe from live 2022-11-12 14:37:23 -03:00
Matthias
ee0e59157c Update join relationship of orders table to selectin
closes #6791 by slightly improving performance in this area.
2022-11-12 16:34:00 +01:00
Matthias
7adca97358 Improve python GC behavior 2022-11-12 15:43:02 +01:00
Wagner Costa Santos
f9c6c538be Merge branch 'develop' into backtest_fitlivepredictions 2022-11-12 09:37:45 -03:00
robcaulk
9c6b97c678 ensure normalization acceleration methods are employed in RL 2022-11-12 12:01:59 +01:00
robcaulk
6746868ea7 store dataprovider to self instead of strategy 2022-11-12 11:33:03 +01:00
robcaulk
7a4bb040a5 merge develop into feat/freqai-rl-dev 2022-11-12 10:54:34 +01:00
robcaulk
214c622475 move dataframe converter to converter.py 2022-11-12 10:38:25 +01:00
robcaulk
9617d8143d Merge remote-tracking branch 'origin/develop' into add-single-precision-freqai 2022-11-12 10:21:38 +01:00
Matthias
e6172a68d7
Merge pull request #7730 from freqtrade/fix-metric-tracker
fix loading of metric tracker from disk
2022-11-11 20:01:26 +01:00
Robert Caulk
833578716c
Merge pull request #7644 from markdregan/multi-target-classifier
Support for multi target multi-class classification (FreqaiMultiOutputRegressor for Classification)
2022-11-11 18:48:38 +01:00
robcaulk
790ff2a84b merge develop into add-single-prec 2022-11-11 18:08:51 +01:00
robcaulk
e46a57bbd0 move mem logs to debug 2022-11-11 18:05:32 +01:00
robcaulk
66514e84e4 add LightGBMClassifierMultiTarget. add test 2022-11-11 17:45:53 +01:00
robcaulk
054133955b fix loading of metric tracker from disk 2022-11-11 17:24:09 +01:00
Matthias
0f9c5f8d41 Simplify timerange handling 2022-11-10 18:28:18 +01:00
Matthias
57313dd961 Update some usages of timerange to new, simplified method 2022-11-10 18:11:39 +01:00
Matthias
3e676dbaa4 Add properties to simplify timerange handling 2022-11-10 16:33:57 +01:00
Matthias
9e17eabd0a Improve Bybit configuration 2022-11-10 07:09:54 +01:00
Wagner Costa Santos
4f0f3e5b64 removed unnecessary code 2022-11-09 10:07:24 -03:00
Wagner Costa Santos
8ee95db927 refactoring backtesting_fit_live_predictions function 2022-11-09 09:51:42 -03:00
Wagner Costa Santos
3e57c18ac6 add fix_live_predictions function to backtesting 2022-11-08 18:20:39 -03:00
Matthias
f43f967040 Improve handling of unfilled stoploss orders in edge-cases 2022-11-08 20:34:18 +01:00
Matthias
ce3959a0c6
Merge pull request #7708 from freqtrade/improve_iteration
Improve iteration logic
2022-11-08 19:25:01 +01:00
Wagner Costa Santos
8d9988a942 enforce date column in backtesting freqai predictions files 2022-11-08 11:06:23 -03:00
Wagner Costa Santos
9c5ba0732a save predictions with date and merge by date 2022-11-08 10:32:18 -03:00
Matthias
884014a4b9 Fix some minor typos 2022-11-07 18:35:28 +00:00
Wagner Costa Santos
6559384286 Merge branch 'develop' into backtest_live_models 2022-11-07 15:14:10 -03:00
Matthias
29585b5ecd Improve worker iteration logic 2022-11-06 11:18:13 +01:00
Matthias
d48a9ae96d Add leverage to backtest results
closes #7574
2022-11-06 09:40:44 +01:00
Matthias
1d2b89bc13 Improve handling of get_fee to not allow impossible combinations 2022-11-06 09:16:03 +01:00
Matthias
ded57fb301 Remove no longer valid test part 2022-11-05 20:32:31 +01:00
Matthias
d089fdae34 Fix current-time_det calculation 2022-11-05 20:02:36 +01:00
Robert Caulk
820aad670c
Merge pull request #7690 from freqtrade/track-current-candle
Track current candle in FreqAI
2022-11-05 17:35:05 +01:00
Emre
06a2957837
Merge branch 'develop' into add-single-precision-freqai 2022-11-05 19:15:12 +03:00
Emre
43bdd34964
Optimize reduce_dataframe_footprint function 2022-11-05 19:13:02 +03:00
Matthias
0888b53b5a Udpate current_time handling for detail loop 2022-11-05 17:02:27 +01:00
Matthias
a11d579bc2 Verify order fills on "detail" timeframe 2022-11-05 17:02:27 +01:00
robcaulk
53df607067 avoid duplicating features with okx/gateio, ensure inference timer gets logged 2022-11-05 15:42:19 +01:00
Matthias
6e09d552ac Properly handle and test ohlcv min_max with empty files 2022-11-05 13:14:35 +01:00
robcaulk
257c833831 add doc for single precision, dont allow half precision, add test 2022-11-04 18:10:04 +01:00
robcaulk
3ccc120f92 add option to force single precision 2022-11-04 17:42:10 +01:00
robcaulk
8bdc99a3d6 fix self-imposed bug 2022-11-04 16:41:38 +01:00
robcaulk
19d90b813a improve readibility in start_backtesting() 2022-11-04 16:10:46 +01:00
Wagner Costa Santos
8008c63319 Merge branch 'develop' into backtest_live_models 2022-11-04 09:09:39 -03:00
Wagner Costa Santos
a7acfb7ab7 fix dict key error 2022-11-04 09:02:28 -03:00
robcaulk
90c5bfb4b5 add default conv_width 2022-11-03 21:35:12 +01:00
robcaulk
05b309caf2 ensure colon replaced for cached attach 2022-11-03 21:17:48 +01:00
robcaulk
6938ed6584 change default conv_width to 1 2022-11-03 21:11:26 +01:00
robcaulk
444a068481 merge develop into track-current-candle 2022-11-03 21:09:08 +01:00
robcaulk
db942321ad fix bug with lightgbm and colons 2022-11-03 21:03:48 +01:00
robcaulk
d721b50230 flake8 2022-11-03 19:13:24 +01:00
robcaulk
3ba1e221eb fix typo 2022-11-03 19:08:33 +01:00
robcaulk
6c4bdb8f67 remove special characters from feature names 2022-11-03 18:49:39 +01:00
Wagner Costa Santos
17798b3397 Merge branch 'develop' into backtest_live_models 2022-11-03 13:29:25 -03:00
Wagner Costa Santos
356d79b38a verify mean and std exists in model metadata 2022-11-03 13:27:56 -03:00
Wagner Costa Santos
cdf12cc541 Merge branch 'develop' into fix_issue_7666 2022-11-03 08:30:46 -03:00
Matthias
ff619edebf Improve explanation comment as to why we're waiting ourselfs 2022-11-03 06:50:18 +01:00
Timothy Pogue
b749f3edd6 add latency measure from ping in emc and ws_client 2022-11-02 19:30:35 -06:00
Timothy Pogue
000b0c2198 prevent memory leaks from error in _broadcast_queue_data 2022-11-02 18:00:10 -06:00
Timothy Pogue
cbede2e27d refactor channel.send to avoid queue.put 2022-11-02 17:57:11 -06:00
Timothy Pogue
2dc55e89e6 better error handling channel send 2022-11-02 15:25:39 -06:00
Timothy Pogue
55bf195bfb remove debugging log calls 2022-11-02 14:21:34 -06:00
Timothy Pogue
c2bdaea84a change exception handling in channel send 2022-11-02 14:19:08 -06:00
Timothy Pogue
d848c27283 add task done to broadcast queue method 2022-11-02 13:30:42 -06:00
Timothy Pogue
e25dea7e0e update channel disconnecting 2022-11-02 13:26:27 -06:00
robcaulk
ce92731132 ensure backwards compatitibility 2022-11-02 20:20:35 +01:00