Commit Graph

2102 Commits

Author SHA1 Message Date
Rokas Kupstys
e4ca42faec [SQUASH] Update stoploss_from_absolute to behave more like stoploss_from_open and add a test for it. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
7e6aa9390a [SQUASH] Unconditionally include quote currency when asset is explicitly specified. Added docs suggesting to use string formatting to make strategy independent of configured stake currency. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
5dc78a0c66 [SQUASH] Get rid of _initialize() and fix informatives for dynamic pairlists. 2021-09-18 10:48:53 +03:00
Rokas Kupstys
dfa61b7ad2 [SQUASH] Fix informatives for each pair not being created because dataprovider was not available.
Fix not being able to have informative dataframe of a pair in whitelist.
2021-09-18 10:48:53 +03:00
Rokas Kupstys
1fdb656334 Add a decorator which can be used to declare populate_indicators() functions for informative pairs. 2021-09-18 10:48:18 +03:00
Matthias
11f08b0053
Merge pull request #5582 from sergeykhliustin/develop
Added days parameter to PerformanceFilter
2021-09-18 09:24:14 +02:00
Matthias
56fb25c5e5 Add test for PerformanceFilter lookback 2021-09-18 09:10:37 +02:00
Matthias
994c3c3a4c Add some errorhandling for custom estimator 2021-09-16 07:13:25 +02:00
Matthias
e4ec5679a1
Merge pull request #5574 from freqtrade/agefilter_cache
Agefilter cache
2021-09-15 06:33:36 +02:00
Matthias
4e2b1764b8 ccxt_compat_tests must run with dry-run=False 2021-09-14 20:24:44 +02:00
Matthias
315ea1e116
Merge pull request #5566 from freqtrade/remove_hyperopt
Remove legacy hyperopt
2021-09-14 19:20:58 +02:00
Matthias
35eda8c8c7 Improve agefilter test 2021-09-14 07:07:20 +02:00
Matthias
3ce5197e8d Add Tests for AgeFilter caching
closes #5552
2021-09-14 06:45:26 +02:00
Matthias
a12c3ecc9b Remove credentials whenever dry-run is set from within the exchange 2021-09-13 20:27:32 +02:00
Matthias
3cdd06f562 Add PeriodicCache 2021-09-13 19:32:51 +02:00
Matthias
3675df8344 Update documentation regarding Legacy Hyperopt 2021-09-12 08:18:17 +02:00
Matthias
fd6bf591f8 Update some tests to remove explicit hyperopt interface 2021-09-12 08:18:13 +02:00
Matthias
ebb0b8aa3f Remove new-hyperopt command 2021-09-12 08:18:13 +02:00
Matthias
a5f90a409c Small updates to async_history_fetch 2021-09-11 08:18:32 +02:00
Matthias
4c4604f837 Add explicit test for get_historic_ohlcv 2021-09-10 19:47:56 +02:00
Matthias
7251a3ab19
Merge pull request #5544 from freqtrade/new_pair_download
New pair download improvement
2021-09-10 19:36:45 +02:00
Matthias
5844f5a7fa
Merge pull request #5546 from samgermain/clear-caplog-freqtradebot
freqtradebot-tests-caplog-clears
2021-09-09 21:18:54 +02:00
Sam Germain
366247dff3 removed caplog.clears at end of functions in test_freqtradebot 2021-09-09 02:17:41 -06:00
Sam Germain
b2f289e404 Fixed freqtradebot failing tests 2021-09-08 02:16:25 -06:00
Sam Germain
362dc20406 notify_buy -> notify_enter, notify_sell -> notify_exit 2021-09-08 02:06:01 -06:00
Sam Germain
e0092a85e9 handle_cancel_buy/sell -> handle_cancel_enter/exit 2021-09-08 02:04:20 -06:00
Sam Germain
be93c75e44 reupdate_buy_order_fees -> reupdate_enter_order_fees 2021-09-08 02:03:40 -06:00
Sam Germain
aac05029e1 safe_sell_amount -> safe_exit_amount 2021-09-08 02:03:24 -06:00
Sam Germain
93fcaac19f Merge branch 'develop' into clear-caplog-freqtradebot 2021-09-07 21:55:00 -06:00
Sam Germain
79ca6135a2 added caplog clears to freqtradebot tests 2021-09-07 21:53:38 -06:00
Matthias
2d66987ac7 Add test for "pair-startdate" detection 2021-09-07 20:27:49 +02:00
Matthias
a8f28ffb11 Increase test coverage 2021-09-05 15:34:57 +02:00
Matthias
93c1dff71b Allow adding new additional headers 2021-09-02 21:02:45 +02:00
Matthias
b0c4f079c2 Merge branch 'develop' into feat/backtest_detail 2021-08-31 20:16:42 +02:00
Matthias
1895230afe Clarify exception on load when markets could not be loaded
closes #5498
2021-08-29 09:18:46 +02:00
Matthias
2ce458810b rename default_hyperopt_loss file 2021-08-26 19:39:57 +02:00
Matthias
07d71f014f Rename defaultStrategy file 2021-08-26 19:38:41 +02:00
Matthias
6d96b11279 Rename DefaultStrategy 2021-08-26 07:25:53 +02:00
Matthias
df1c0540ab Rename Hyperopt Test Class 2021-08-26 07:20:05 +02:00
Matthias
0d8e105a33 Rename legacystrategy file 2021-08-26 07:14:49 +02:00
Matthias
58ecb34a66 Allow DefaultHyperopts as hyperopt name 2021-08-26 07:13:18 +02:00
Matthias
fbf8eb4526 Rename test-legacy strategy 2021-08-26 07:04:33 +02:00
Matthias
1f3ccc2587 DefaultStrategy does not need to be limited 2021-08-26 07:00:15 +02:00
Matthias
c4be52d1c3 rename execute_sell to execute_trade_exit 2021-08-26 06:53:42 +02:00
Matthias
63844d39f6 Rename execute_buy to execute_entry 2021-08-26 06:48:26 +02:00
Matthias
4b36276e4f Improve has_space test 2021-08-25 19:54:26 +02:00
Matthias
8a9407bac9 Don't hard-fail when fetch_ticker doesn't return a value
closes #5477
2021-08-25 07:13:59 +02:00
Matthias
60b476611c Simplify a number of tests by relying on default arguments 2021-08-24 20:51:59 +02:00
Masoud Azizi
127f470bc3 .* ADDED 2021-08-20 19:29:33 +02:00
Masoud Azizi
40ad451019 Download-data log process added
Download-data log process added

pytest assert solved
2021-08-20 14:52:56 +00:00
Matthias
ba5abb20bd Run compat ci for gate.io 2021-08-20 06:30:27 +02:00
Matthias
f7087feeb1
Merge pull request #5347 from Axel-CH/custom_order_price
Custom order price
2021-08-18 20:59:40 +02:00
Matthias
9951f51079 Update test to ensure direction of movement is correct 2021-08-18 20:24:19 +02:00
axel
2fb9f6e2f4 rename custom price max distance option in config, update formula and test associated 2021-08-18 05:07:37 -04:00
Matthias
acb00cd072 Use realistic threshold for "get_fee" test 2021-08-18 06:25:52 +02:00
Matthias
4164f93853 Simplify fiat_convert and handle multi-mappings 2021-08-17 20:50:52 +02:00
Matthias
f471915828 Add test for refresh_latest_ohlcv caching 2021-08-17 06:44:36 +02:00
axel
6ab99369f2 Merge branch 'develop' of https://github.com/freqtrade/freqtrade into custom_order_price 2021-08-16 23:26:29 -04:00
axel
faff40577a fix test_execute_buy In case of custom entry price 2021-08-16 15:33:05 -04:00
axel
3ea4b2ba00 add custom_price_max_distance_percent security to get_valid_price, update tests 2021-08-16 15:18:57 -04:00
Matthias
0264d77d86 Fix test for fixed typo 2021-08-16 20:02:25 +02:00
slowy07
f24a951ec5 fix: typo spelling grammar 2021-08-16 19:16:24 +07:00
Matthias
6b2ef36a56 Prevent directory traversal in UI Serving
Checking for directory base

closes #5427
2021-08-16 06:47:53 +02:00
Matthias
abddb3ef25 Add test for directory traversal 2021-08-16 06:45:23 +02:00
Matthias
fa4ec9f83e Add explicit test for get_sell_trade_entry 2021-08-15 14:52:24 +02:00
Matthias
3406b889b6 First test 2021-08-14 17:06:28 +02:00
Matthias
c456cfc312 Merge branch 'develop' into pr/Axel-CH/5347 2021-08-14 09:13:30 +02:00
axel
20cc60bfde update get_valid_price function and test cases to handle inputs with try catch 2021-08-13 11:06:15 -04:00
axel
dbf7f34ecb add unit test to function get_valid_price 2021-08-12 15:30:49 -04:00
axel
ae11be3970 manage None or string value returned by custom_entry_price and add unit test for those cases 2021-08-12 14:47:01 -04:00
Matthias
e03784d98d Fix filled exception
closes #5404
2021-08-12 05:02:56 +00:00
Matthias
bfc3968ab3
Merge pull request #5400 from freqtrade/limit_dry_market_slippage
Add max-slippage limiting for dry-run orders to avoid insane market o…
2021-08-12 06:54:55 +02:00
Rokas Kupstys
f6267c7514 Fix buy_tag not being saved to trade object.
Column is mistakenly excluded because advise_buy() creating this column runs after code detecting presence of buy_tag column.
2021-08-11 15:21:23 +03:00
Matthias
61c076563f Add max-slippage limiting for dry-run orders to avoid insane market order fills 2021-08-11 12:11:29 +02:00
Matthias
0b6aedbc4c
Merge pull request #5395 from freqtrade/fix/hyperopt-show
Stream hyperopt-result in small batches
2021-08-10 19:54:02 +02:00
Matthias
039d6384ed Stream hyperopt-result in small batches
Avoiding memory-exhaustion on huge hyperopt results

closes #5305
closes #5149
2021-08-10 10:12:57 +02:00
Matthias
3f160c7144 Cache dataframe before cutting the first candle
This allows providing the "current closed" candle in all cases.
2021-08-10 09:14:29 +02:00
Matthias
cf27968b97 Properly preserve trade's low during backtesting 2021-08-09 19:38:56 +02:00
Matthias
895b912c71 Fix recently introduced lookahead bias in backtesting
closes #5388
2021-08-09 14:54:47 +02:00
Matthias
a5f796bc97 refactor ohlcvdata_to_dataframe to advise_all_indicators 2021-08-09 14:53:18 +02:00
Matthias
f17942b68f Fix random test failure 2021-08-09 11:18:18 +02:00
Matthias
47f641d12f Remove hyperopt-pickle result support 2021-08-09 07:04:18 +02:00
Matthias
756112c84d
Merge pull request #5374 from freqtrade/rem_legacy_hyperopt
Remove legacy hyperopt
2021-08-08 12:42:52 +02:00
Matthias
be240566ba Fix random test failure 2021-08-08 10:57:20 +02:00
Matthias
faf16a64e5 Remove legacy hyperopt file support 2021-08-08 10:22:45 +02:00
Matthias
6532aba765
Merge pull request #5360 from freqtrade/hyperopt_protections
Hyperopt protections and Boolean parameter
2021-08-07 09:42:05 +02:00
Sam Germain
b9356a5564 Autopep8 formatting 2021-08-06 16:35:39 -06:00
axel
0aeebc9d53 add test for custom exit price 2021-08-05 17:57:45 -04:00
axel
2cf781f3dd add freqtradebot execute_buy test in custom entry price case 2021-08-04 18:32:39 -04:00
Matthias
ad0e4a8567 Add BooleanParameter 2021-08-04 20:52:56 +02:00
Matthias
b73768acd1 Fix bug in property overwriting prevention 2021-08-04 20:21:56 +02:00
Matthias
3c41223333 Add test for protections-hyperopt 2021-08-04 20:01:28 +02:00
Matthias
a661e0db6e Deprecate protections from config 2021-08-04 19:43:16 +02:00
Matthias
091bf7c4d2 Output protection space 2021-08-04 06:50:14 +02:00
axel
bc3e6deb1c remove specific test for buy with custom entry 2021-08-03 17:09:52 -04:00
axel
b3dafb378e remove use_custom_entry_price as a config option 2021-08-03 16:54:28 -04:00
axel
00939b63f2 flake 8 fixes 2021-08-03 16:25:18 -04:00
axel
d9c9b7d7fc restore interface test file 2021-08-03 16:02:10 -04:00
axel
3d8c3ffd38 fix syntax error in unit test 2021-08-03 15:57:23 -04:00
axel
f11f5d17e9 add feature custom entry price for live 2021-08-03 15:57:23 -04:00
Matthias
adb33e763b
Merge pull request #5350 from freqtrade/environment_vars
Add environment variable support
2021-08-02 20:48:23 +02:00
Matthias
c981641441 Don't fail if strategy doesn't contain sell signal 2021-08-02 20:30:46 +02:00
Matthias
d8d8261f1b
Merge pull request #5318 from samgermain/combined_exchange_buy_sell
combined exchange.buy and exchange.sell
2021-08-02 20:11:09 +02:00
Matthias
3c5f06d5c0
Update tests/exchange/test_exchange.py 2021-08-02 08:31:33 +02:00
Matthias
5ead95b06b
Merge pull request #5245 from sauces1313/RangeStabilityFilterMax
Range stability filter max
2021-08-02 08:06:36 +02:00
Matthias
b63eda3a2b Some minor cleanup and improved test coverage 2021-08-02 07:15:09 +02:00
Sam Germain
047df0c212 Removed leverage references 2021-08-01 03:01:47 -06:00
Sam Germain
90a61b1765 Changed tests in tests/test_persistence.py to use usdt prices 2021-07-31 20:44:49 -06:00
Matthias
6f8519d0a3 Add environment variable support 2021-07-31 19:26:56 +02:00
Matthias
c5e3348b89 Migrations for indexes should run in a seperate session
closes #5349
2021-07-31 16:36:28 +02:00
Matthias
6abd352c0f Add test for backtesting dataframe cache 2021-07-31 08:44:09 +02:00
Matthias
35bf2a59a8 Improve test reliability (fix fluky test) 2021-07-30 21:02:55 +02:00
Matthias
138b126d03
Merge pull request #5299 from kevinjulian/feat/kevinjulian/add-buy-signal-name
Add buy signal name
2021-07-30 08:23:11 +02:00
Matthias
71838dc51a
Merge pull request #5285 from freqtrade/backtest_startup_afte_populates
Remove startup-candles after populating buy/sell signals
2021-07-30 07:01:26 +02:00
Matthias
cf4d1875dd Use prohibitedIn instead of isRestricted 2021-07-29 06:56:37 +02:00
Sam Germain
25c527ee67 combined exchange.buy and exchange.sell, Adding dummy mock to create_order in tests in test_freqtradebot 2021-07-28 14:55:06 -06:00
sauces1313
4675d85b90
Merge branch 'freqtrade:develop' into RangeStabilityFilterMax 2021-07-25 02:37:56 -05:00
sauces1313
34c8a5afaf remove second filter, add max option 2021-07-25 07:24:55 +00:00
kevinjulian
0fcbe097c0 remove blankspace 2021-07-23 21:06:38 +07:00
kevinjulian
7a0cb95ffb fix testcase 2021-07-23 20:43:27 +07:00
kevinjulian
b9c2489b73 remove SN 2021-07-23 18:41:29 +07:00
kevinjulian
ba0fa1120a revert rename naming 2021-07-23 18:39:18 +07:00
kevinjulian
acfaa39e54 revert back test_rpc_api_server 2021-07-23 18:34:18 +07:00
kevinjulian
8032257fdf revert test_pairlist 2021-07-23 18:30:25 +07:00
kevinjulian
aea5da0c73 changes testcase 2021-07-23 11:42:43 +07:00
kevinjulian
b01daa8bbc expose buy_tag to api 2021-07-22 13:09:05 +07:00
kevinjulian
46f2a20a98 run flake8 2021-07-22 02:00:51 +07:00
kevinjulian
235c1afd09 add buy_tag on telegram 2021-07-22 01:53:15 +07:00
kevinjulian
49886874aa rename to buy_tag 2021-07-21 20:05:35 +07:00
kevinjulian
66a7070170 run linter 2021-07-20 23:56:03 +07:00
kevinjulian
5d04d6ffa7 fix edge testcase 2021-07-20 23:40:32 +07:00
kevinjulian
cbfedf8b29 fix backtest testcase 2021-07-20 23:25:00 +07:00
kevinjulian
3d8b2d601d fix test persistance 2021-07-20 20:23:47 +07:00
Kevin Julian
edf9c08f06
Merge branch 'develop' into feat/kevinjulian/add-buy-signal-name 2021-07-20 19:19:46 +07:00
kevinjulian
ed30c023cd fix some testcase 2021-07-20 19:08:14 +07:00
kevinjulian
ec526b3f96 fix testcase 2021-07-20 16:22:04 +07:00
kevinjulian
7d04005218 add test and migration 2021-07-20 16:14:48 +07:00
Matthias
e4b42b2b5b
Merge pull request #5284 from samgermain/merge_get_buy_sell_rate
Merge get_buy_rate and get_sell_rate
2021-07-20 06:54:47 +02:00
Matthias
365479f5e0 Remove startup-candles after populating buy/sell signals
closes #5242
2021-07-18 11:06:41 +02:00
Matthias
adef5d89f3 Fix failing test after webserver merge 2021-07-18 11:06:14 +02:00
Matthias
7b7d9c02d7
Merge pull request #5243 from freqtrade/feat/webservermode_progress
Introduce webserver mode subcommand
2021-07-18 10:48:55 +02:00
Sam Germain
7c27525bd8 Merge get_buy_rate and get_sell_rate 2021-07-17 22:51:20 -06:00
Matthias
4899b06b31
Merge pull request #5273 from freqtrade/fix/profit_calc
fix calculation logic for /profit
2021-07-16 19:19:28 +02:00
Sam Germain
804bc8134f Merge branch 'develop' into example_json_filename_extensions 2021-07-16 02:05:08 -06:00
Sam Germain
b7dc2989e7 flake8 adjustments 2021-07-16 02:03:25 -06:00
Matthias
2e95df4d8d Update docs for /profit output 2021-07-15 20:12:44 +02:00
Matthias
697bf92f6f Add test for get_starting_balance method 2021-07-14 21:10:25 +02:00
Matthias
02d716a8be Fix api test 2021-07-14 21:03:57 +02:00
Matthias
3451687135
Merge pull request #5255 from freqtrade/improve_dynamic_stake
Improve dynamic stake with multiple bots on the same exchange
2021-07-14 06:45:48 +02:00
Sam Germain
362436f7d2 Renamed example config files so they are .json so that syntax highlighting is all correct. Explicitly listed each one in .gitignore to prevent a real config file from being uploaded accidently 2021-07-13 19:39:23 -06:00
anasyusef
91e5562ae0 style: apply flake8 formatting 2021-07-12 13:22:36 +00:00
anasyusef
313cf6a013 test: add test for parsing db uri 2021-07-12 12:28:34 +00:00
Matthias
6a8e8875a2 Test new behaviour 2021-07-12 06:54:06 +02:00
Matthias
b41c234440 Extract Closed profit calculation to trade object 2021-07-12 06:54:06 +02:00
Matthias
ed77889d6b Add explicit tests for _validate_stake_amount 2021-07-12 06:52:59 +02:00
Matthias
7ea0a74c53 Default to proposed stake 2021-07-11 14:11:41 +02:00
Rokas Kupstys
0e4466ca1e Implement strategy-controlled stake sizes. Expose self.wallet to a strategy. 2021-07-11 12:38:58 +03:00
Matthias
72a103f32d Properly test webserver startup in standalone mode 2021-07-10 10:21:25 +02: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
nightshift2k
c44e87cd30 added tests for `OffsetFilter
to `test_pairlist.py`
2021-07-07 12:06:55 +02:00
nightshift2k
f30e300f18 adjusted test_pairlist.py for fixed rolling sum 2021-07-07 11:28:35 +02:00
Matthias
b7a9853d9a Increase test coverage 2021-07-06 21:04:52 +02:00
Matthias
a4bd862323 Fix fluky test 2021-07-06 20:29:04 +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
b44d215b90 Add test for backtest via APII 2021-07-06 19:48:28 +02:00
Matthias
8566306010 Add test for start_websever 2021-07-06 19:48:28 +02:00
Matthias
edb8c4f0e5 Fix tests for webserver mode 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
eb3ead4930
Merge pull request #5229 from kevinjulian/telegram-balance
compact low balance currencies
2021-07-05 06:56:35 +02:00
kevinjulian
9e548657e0 fix testcase 2021-07-04 21:08:46 +07:00
Matthias
898bef1837
Merge pull request #5219 from freqtrade/hyperopt_paramfile
automatic Hyperopt paramfile
2021-07-04 13:56:52 +02:00
kevinjulian
b722e12350 compact low balance currencies 2021-07-04 02:44:48 +07:00
kevinjulian
3d9f3eeb07 feat(agefilter): add max_days_listed 2021-07-03 23:58:04 +07:00
Matthias
dc8abd77df Fix import order 2021-07-03 15:45:00 +02: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
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
3503fdb4ec Improve tests for newly added methods 2021-07-03 08:38:55 +02:00
Matthias
e034f11dcc Improve test for hyperopt_show 2021-06-30 20:21:33 +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
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
ff61b8a2e7 Disable parameter export from tests 2021-06-29 20:57:16 +02:00
Matthias
8ca0076332 Fix small typos 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
ef14359d31 Add some tests for paramfile writing 2021-06-29 06:50:47 +02:00
Matthias
e97de4643f Move tests to hyperopttools test file 2021-06-29 06:50:47 +02:00
Matthias
750c780293 Support loading parameters from json file 2021-06-29 06:50:47 +02:00
barbarius
a0f28f4a15 Added max open trades to strategy summary first line 2021-06-28 17:05:12 +02:00
barbarius
c99ae3b419 Added timerange above multiple strategy backtest result summary table 2021-06-28 10:20:34 +02:00
Matthias
158cb415a9 Add settings interface to have types available 2021-06-26 17:28:37 +02:00
Matthias
ce69abc06e Update docs and tests for newly deprectated settings 2021-06-26 17:11:15 +02:00
Matthias
b7f01a08f3 Update sequence of process_deprecated_setting parameters 2021-06-26 17:03:51 +02:00
Matthias
0235868c66 Update tests for new config structure 2021-06-26 16:39:01 +02:00