misagh
5e1fb11124
documentation added for stop loss on exchange
2018-11-25 17:30:06 +01:00
misagh
3e29fbb17a
stoploss on exchange added as a parameter to order_types
2018-11-25 17:22:56 +01:00
Matthias
ebaf58b0fe
Only sort data if necessary
2018-11-25 15:00:50 +01:00
Matthias
8a43611992
Remove get_candle_history (it's now async)
...
convert sort-test to async
2018-11-25 14:48:15 +01:00
Matthias
745a517795
Fix comment pointing to wrong column
2018-11-25 14:40:21 +01:00
misagh
664b96173e
removing NotImplementedError from stoploss_limit
2018-11-25 10:54:36 +01:00
misagh
b2c0b20a58
added real tests for stop on exchange in dry-run
2018-11-24 18:26:04 +01:00
misagh
07ac902451
test exchange added
2018-11-22 20:30:31 +01:00
misagh
3418592908
freqtradebot test added for orders on exchange
2018-11-22 19:25:26 +01:00
misagh
bbe8e4e494
flake8
2018-11-22 17:07:37 +01:00
misagh
bfbdddff26
stoploss limit order added to exchange
2018-11-22 16:24:40 +01:00
Matthias
b3e08831f7
Remove rate for market orders
2018-11-17 20:14:50 +01:00
Matthias
c11984d943
Check if exchange supports all configured market types
2018-11-17 19:54:55 +01:00
Matthias
ef1e20bfe8
Don't add default value for ordertype
...
sort parameters to align with ccxt
2018-11-17 13:29:24 +01:00
Matthias
6a71f80a9e
Add support for different order types
2018-11-15 06:58:24 +01:00
Matthias
a4d2bb6f29
Fix "No market symbol" exception in telegram calls
2018-10-10 21:28:48 +02:00
Matthias
e7d5cf9d9d
Allow loading of any additional configuration to ccxt
...
seperated by async and non-async
2018-10-04 20:16:43 +02:00
Matthias
3893b638fe
Merge pull request #1213 from freqtrade/fix_mac_install
...
Fix mac install documentation
2018-09-27 12:39:42 +02:00
Matthias
9685c09c1a
Add offset to "get_trades_for_order"
2018-09-15 20:28:36 +02:00
Matthias
14b7fc42fa
Change returntype for _load_markets to dict
2018-09-11 19:46:31 +02:00
Matthias
0a29096794
Refactor load_market out of validate_pairs
2018-09-10 20:19:12 +02:00
Matthias
e9deb928f6
Fix bug when exchange result is empty
2018-09-02 19:15:23 +02:00
Matthias
ffd4469c1d
fix typo, refresh_tickers does not need a return value
2018-08-29 19:56:38 +02:00
Matthias
54ddd908e6
Merge branch 'develop' into ccxt-async
2018-08-29 19:43:09 +02:00
Matthias
9f8e68ce02
Merge branch 'develop' into order-book
2018-08-29 19:32:44 +02:00
Samuel Husso
36e0e652f0
Merge pull request #1135 from freqtrade/fix/rpc_balance_vtho
...
Fix /balance rpc call if coin is not properly listed
2018-08-22 07:01:40 +03:00
Misagh
66d52c1236
Merge pull request #4 from xmatthias/ccxt_async_retrier
...
Add async retrier
2018-08-21 19:55:30 +02:00
Matthias
6e90d482ef
remove amount_to_lots (deprecated / removed)
...
was removed from ccxt in
527f082e59
2018-08-21 19:08:21 +02:00
Matthias
694b8be32f
Move variables from class to instance
2018-08-19 19:49:02 +02:00
Matthias
d722c12109
fix bug in async download script
2018-08-18 21:08:59 +02:00
Matthias
d556f669b0
Add async retrier
2018-08-18 21:05:38 +02:00
Matthias
ff8ed564f1
Refactor refresh_pairs to exchange and fix tests
2018-08-16 12:15:09 +02:00
misagh
e6e2799f03
Keeping cached Klines only in exchange and renaming _cached_klines to
...
klines.
2018-08-16 11:37:31 +02:00
misagh
a2d9126917
Merge branch 'develop' into ccxt-async
2018-08-15 15:09:35 +02:00
Matthias
baeffee80d
Replace time.time with arrow.utcnow().timestamp
...
arrow is imported already
2018-08-15 13:26:01 +02:00
Matthias
ca6594cd24
remove comment, add docstring
2018-08-15 12:49:39 +02:00
Nullart2
2bc7a668a3
informative startup
2018-08-15 10:39:32 +08:00
Matthias
37e504610a
refactor private method - improve some async tests
2018-08-14 20:33:03 +02:00
Matthias
8528143ffa
Properly close async exchange as requested by ccxt
2018-08-14 19:52:09 +02:00
Matthias
88e85e8d33
fix tests - move load_async_markets call to validate_pairs
2018-08-10 13:11:04 +02:00
Matthias
fce071843d
Move async-load to seperate function
2018-08-10 13:04:43 +02:00
Matthias
a852d2ff32
default since_ms to 30 days if no timerange is given
2018-08-10 11:15:02 +02:00
Matthias
a107c4c7b4
Download using asyncio
2018-08-10 11:08:28 +02:00
Matthias
74d6816a1a
Fix some comments
2018-08-10 11:00:07 +02:00
Matthias
e34f2abc3a
Add some typehints
2018-08-10 09:58:04 +02:00
Matthias
8a0fc888d6
log if using cached data
2018-08-10 09:48:54 +02:00
Matthias
36f05af79a
sort fetch_olvhc result, refactor some
...
* add exception for since_ms - if this is set it should always download
2018-08-10 09:44:15 +02:00
misagh
cb26085229
Moving should_not_update logic to async function per pair. if there is
...
no new candle, async function will just return the last cached candle
locally and doesn’t hit the API
2018-08-09 12:47:26 +02:00
misagh
cef09f49a6
wait for markets to be loaded before looping in symbols.
2018-08-09 11:51:38 +02:00
Matthias
e1921c8849
Fix bug causing /balance to fail
2018-08-08 22:00:39 +02:00
Nullart2
c9c0e108ab
refactor
2018-08-07 18:29:37 +08:00
Nullart2
26d591ea43
mypy fix
2018-08-05 21:08:07 +08:00
Nullart2
4a9bf78770
Order Book with tests
2018-08-05 12:41:06 +08:00
misagh
af93b18475
Do not refresh candles on "process_throttle_secs" but on intervals
2018-08-03 18:10:03 +02:00
misagh
2ec2f1abce
async branch updated to reflect develop branch changes
2018-08-02 16:48:21 +02:00
Janne Sinivirta
17d78b7807
Merge pull request #1115 from creslinux/candlesnottickers
...
renamed/refactored get_ticker_history to get_candle_history to stop confusion
2018-08-02 12:33:09 +03:00
creslin
a741f1144a
missing __init__.py
2018-08-02 08:58:04 +00:00
Matthias
915160f21f
Add tests for tickers-history
2018-08-01 21:44:02 +02:00
Matthias
136442245c
Add todo's and dockstring
2018-07-31 21:02:04 +02:00
Matthias
31870abd25
Refactor async-refresh to it's own function
2018-07-31 20:43:32 +02:00
misagh
74fa4ddca4
CCXT rate limit config default to => true
...
+ adding config to config_full.json.example
2018-07-31 16:54:02 +02:00
misagh
be1298dbd2
Initializing CCXT with rate_limit parameter optional (default to false)
2018-07-31 14:19:16 +02:00
misagh
154e4569d7
Merge branch 'develop' into ccxt-async
2018-07-31 12:48:12 +02:00
misagh
c8f125dbb9
ccxt async POC
2018-07-31 12:47:32 +02:00
Matthias
5a55cd25ff
Merge branch 'develop' into sandbox2
2018-07-30 20:18:48 +02:00
creslinux
012fe94333
Recommitted as new branch with unit tests - GIT screwd me on the last PR
2018-07-30 16:49:58 +00:00
creslinux
dd71071740
Added logger.info when Sandbox is enabled.
2018-07-29 09:15:13 +00:00
creslinux
1e804c0df5
flake 8
2018-07-29 08:10:55 +00:00
creslinux
0a059662b3
Submitting with unit test for the working scenario.
...
Strongly recommend core team check the unit test is even targetting the
correct code in exchange/__init__.py
I have a real knowledge gap on mocker, in so far as how tests map to
what they're targeting.
2018-07-28 20:32:10 +00:00
creslinux
7efa81073a
Removed ; at line end.
2018-07-27 09:10:09 +00:00
creslinux
d23b3ccc5e
odd cut and paste error fixed.
2018-07-27 08:55:36 +00:00
Matthias
64f933477d
Merge pull request #1007 from freqtrade/remove-analyze
...
Remove Analyze
2018-07-19 10:12:36 +02:00
Janne Sinivirta
85fd4dd3ff
rename analyze.py to exchange_helpers.py
2018-07-17 21:26:52 +03:00
Matthias
85c60519b0
Fix test crash
2018-07-09 22:11:12 +02:00
creslinux
5ab644dea6
flake 8 fix
2018-07-05 12:05:31 +00:00
creslinux
966668f48a
Handle if ticker_interval in config.json is not supported on exchange.
...
Returns.
Tested positive and negative data.
The ticker list in constants.py may be obsolete now, im not sure.
raise OperationalException(f'Invalid ticker {timeframe}, this Exchange supports {timeframes}')
freqtrade.OperationalException: Invalid ticker 14m, this Exchange supports {'1m': '1m', '3m': '3m', '5m': '5m', '15m': '15m', '30m': '30m', '1h': '1h', '2h': '2h', '4h': '4h', '6h': '6h', '8h': '8h', '12h': '12h', '1d': '1d', '3d': '3d', '1w': '1w', '1M': '1M'}
2018-07-05 11:57:59 +00:00
xmatthias
f7b46d5404
update docstring
2018-06-18 22:34:28 +02:00
xmatthias
896afe7118
convert get_name and get_id to properties
2018-06-18 22:20:50 +02:00
xmatthias
ef53134499
lowercase variables
2018-06-18 22:09:46 +02:00
xmatthias
c31519fdb2
lowercase _api object
2018-06-18 22:07:15 +02:00
xmatthias
dea26fadfe
move init_ccxt to class
2018-06-17 23:38:07 +02:00
xmatthias
21edcbdc27
Refactor exchange to class
2018-06-17 23:38:07 +02:00
Samuel Husso
18e3090379
Exchange: f-strings into use
2018-06-09 08:27:39 +03:00
gcarq
a2a1a517da
fix flake8 warning
2018-06-08 02:01:18 +02:00
xmatthias
4a17671f45
improve log message
2018-06-06 20:30:42 +02:00
xmatthias
a901f21bcd
test ticker caching
2018-06-06 20:24:47 +02:00
xmatthias
e690003621
reinstate caching for get_ticker
2018-06-06 20:18:16 +02:00
Janne Sinivirta
20815771ab
Merge pull request #817 from gcarq/feature/gdax
...
Enable Backtesting with GDAX and allow trading with EUR/USD
2018-06-03 17:49:20 +03:00
Gerald Lonlas
c9e49ed7b4
Sort ticker_history
...
CCXT does not sort the ticker history from exchanges.
Bittrex and Binance are sorted ASC (oldest first, newest last) when
GDAX is sorted DESC (newest first, oldest last).
Because of that the get_ticker_history() fall in a very long loop
when the tickers are sorted DESC. Means it downloads more than
needed.
This commit enable exhanges like GDAX and unify the ticker_history
list across all exchanges.
2018-06-03 00:13:48 -07:00
xmatthias
3fb1dd02f1
add typehints and type: ignores
2018-05-31 22:00:46 +02:00
Matthias Voppichler
8b098859f4
Reduce verbosity of get_ticker_history
2018-05-12 20:15:59 +02:00
Anton
2bfce64e6a
Fix conflicts
2018-05-04 13:38:51 +03:00
Anton
ceeb98dda9
Fix conflicts
2018-05-03 11:16:29 +03:00
Michael Egger
90a107393a
Merge pull request #622 from gcarq/fix/dl-testdata
...
fix download testdata
2018-05-02 22:06:43 +02:00
gcarq
a76ed88496
Merge branch 'feat/objectify-ccxt' into feature/catch-exchange-errors
2018-05-02 20:03:13 +02:00
Anton
24ab1b5be5
Fix review comments, documenation update
2018-05-01 00:27:05 +03:00
Samuel Husso
842b0c2270
Exchange: fix missing comma and typehinting per PR comments
2018-04-29 18:55:43 +03:00
Anton
82ea56c8fd
Fix review comments. Add support of datetime timeganges
2018-04-28 00:16:34 +03:00
Matthias Voppichler
483415cd65
Add fee entry to DRY_ORDER dict as defined by ccxt
2018-04-25 09:03:32 +02:00
Anton
6675120324
Add time range support to download_backtest_data
2018-04-25 02:11:07 +03:00
Matthias Voppichler
9e94778fd7
simplify check for presence of list
2018-04-24 19:42:41 +02:00
gcarq
aa213a3640
cancel_order: handle InvalidOrder exception
2018-04-23 16:58:32 +02:00
gcarq
baeeaa777d
get_balance: handle case if currency is not in response
2018-04-23 16:57:18 +02:00
gcarq
20af4bae7c
retrier: raise initial exception instead of OperationalException
2018-04-23 16:56:35 +02:00
gcarq
bc2bd7fe1e
add retrier decorator to all exchange functions except buy/sell
2018-04-22 17:28:49 +02:00
Samuel Husso
de8db9293c
exchange: extract ccxt init to its own function (so that we can init ccxt from the scripts)
2018-04-22 10:57:48 +03:00
gcarq
bbe3bc4423
catch ccxt.ExchangeError and retry
2018-04-22 00:20:15 +02:00
Matthias Voppichler
a140748b5a
Merge branch 'feat/objectify-ccxt' into cxxt_obj_sellfix
2018-04-21 22:39:22 +02:00
gcarq
3997b6038d
let cctx handle rate limits
2018-04-21 19:11:29 +02:00
Matthias Voppichler
c7d1a767f7
add get_trades_for_order
2018-04-21 13:33:29 +02:00
enenn
94287d66a8
Flake8 fixes
2018-04-12 18:16:27 +02:00
enenn
6115fb08c0
Remove get_fee_maker/taker and add argument to get_fee instead
2018-04-12 18:16:25 +02:00
enenn
cba8745164
Update exchange validate_pairs and related tests
2018-04-12 18:16:19 +02:00
enenn
0c8ecf2b1f
Add 'get_tickers' function to exchange and use it for dynamic whitelists
2018-04-12 18:07:44 +02:00
enenn
5fc8250ee4
Add 'exchange_has' function to check if exchange supports specific API call
...
Catch ccxt.NotSupported exception instead of checking beforehand
2018-04-12 18:07:44 +02:00
enenn
1f75636e56
[1/3] Add support for multiple exchanges with ccxt (objectified version) ( #585 )
...
* remove obsolete helper functions and make _state a public member.
* remove function assertions
* revert worker() changes
* Update pytest from 3.4.2 to 3.5.0
* Adapt exchange functions to ccxt API
Remove get_market_summaries and get_wallet_health, add exception handling
* Add NetworkException
* Change pair format in constants.py
* Add tests for exchange functions that comply with ccxt
* Remove bittrex tests
* Remove Bittrex and Interface classes
* Add retrier decorator
* Remove cache from get_ticker
* Remove unused and duplicate imports
* Add keyword arguments for get_fee
* Implement 'get_pair_detail_url'
* Change get_ticker_history format to ccxt format
* Fix exchange urls dict, don't need to initialize exchanges
* Add "Using Exchange ..." logging line
2018-04-06 10:57:08 +03:00
Gerald Lonlas
7cafd1f17e
Update exchange unit tests
2018-03-30 13:52:25 -07:00
Gerald Lonlas
052404ffbd
Check if the exchange is supported
2018-03-30 13:14:35 -07:00
Gerald Lonlas
96b2210c0f
Change deprecated logger.warn by warning
2018-03-30 12:11:06 -07:00
Samuel Husso
1b4c1980c2
exchange: capitalize class name
2018-03-26 09:23:42 +03:00
Matthias Voppichler
016232a8e9
Revert OHLVC dataformat to ccxt format
...
* Also fixes backtesting - but data must be refreshed for now as no
conversation is happening yet
2018-03-25 13:32:46 +02:00
Matthias Voppichler
dbb0a6261f
don't raise exceptions from get_ticker_history
2018-03-25 13:03:21 +02:00
Matthias Voppichler
ab6e32f6bb
have backtest and dry-mode working
...
partially revert d20e3f79be
- Changing the
OHLVC format should not be done at this time
2018-03-24 19:51:40 +01:00
Samuel Husso
eb4ac73b78
remove last bittrex references so that bot is runnable
2018-03-22 08:29:52 +02:00
Samuel Husso
40a0689183
exhcange now uses ccxt in dry_run, update config
2018-03-21 19:40:16 +02:00
Samuel Husso
14d16d573c
Remove bittrex related interface code and tests
2018-03-21 19:31:15 +02:00
gcarq
d2aea7bdc1
optimize imports
2018-03-20 19:50:04 +01:00
Janne Sinivirta
67ad9e9351
simplify some error message statements
2018-02-24 19:19:43 +02:00
Janne Sinivirta
160af91f9a
improving log messages
2018-02-24 18:58:57 +02:00
Samuel Husso
40a78970e1
flake: remove requests as we dont use it
2018-01-28 11:09:03 +02:00
Samuel Husso
8be94c4af4
remove custom timeout as the latest bittrex package version implemented it
2018-01-28 11:03:19 +02:00
Gérald LONLAS
d2371b5bac
Merge pull request #391 from jblestang/support_multiple_ticker
...
Support multiple tickers
2018-01-20 11:02:42 -08:00
Jean-Baptiste LE STANG
081d3932b6
Fixing bug report #406 + unit test
2018-01-20 14:44:13 +01:00
Jean-Baptiste LE STANG
42a135fbd9
fix typo in API Bittrex
2018-01-17 13:52:14 +01:00
Jean-Baptiste LE STANG
8e5de365a5
Ticker in the conf is now an enum string
2018-01-17 13:52:14 +01:00
Jean-Baptiste LE STANG
e2e2005567
Adding 30 minutes, 1 hour, 1 day tickers
2018-01-17 13:52:14 +01:00
Jean-Baptiste LE STANG
f7a44d1cec
Fixing the ticker analysis with null value
2018-01-13 09:50:02 +01:00
Anton Ermak
0d0737d1f6
Resolve conflict
2018-01-11 13:36:56 +07:00
Anton Ermak
bb91fdbaf9
oops, print removed
2018-01-11 13:26:49 +07:00
Anton Ermak
11cbb9188b
Set timeout for bittrex only
2018-01-11 12:24:05 +07:00
Janne Sinivirta
86db6c9084
sort imports
2018-01-11 07:08:56 +02:00
Jean-Baptiste LE STANG
4b6d855e63
fix a typo in the description of get_ticker
2018-01-07 23:26:45 +01:00
Jean-Baptiste LE STANG
7d7752efbf
really fixing
2018-01-07 23:26:45 +01:00
Jean-Baptiste LE STANG
ce6f6ab9fe
fixing refresh argument ...
2018-01-07 23:26:45 +01:00
Jean-Baptiste LE STANG
3a0569cfd3
force refresh is the value has never been set
2018-01-07 23:26:45 +01:00
Jean-Baptiste LE STANG
7d21015b52
get_ticker can return a cached value
2018-01-07 23:26:45 +01:00
Samuel Husso
de68209f3b
Revert "Make get_signals async. This should speed up create_trade calls by at least 10x. ( #223 )" ( #275 )
...
This reverts commit 6768658300
.
See details in #PR266
2018-01-01 19:32:58 +01:00
Michael Egger
a514b92dcf
catch MIN_TRADE_REQUIREMENT_NOT_MET as non-critical exception ( #237 )
...
* add MIN_TRADE_REQUIREMENT_NOT_MET to response validation
* implement test
2017-12-26 09:39:29 +01:00
Pan Long
6768658300
Make get_signals async. This should speed up create_trade calls by at least 10x. ( #223 )
2017-12-25 07:01:01 +01:00
Gerald Lonlas
d258118b0a
Fix the fee calculation, backtesting, and hyperopt fee calculation and avg_profit
2017-12-20 20:18:41 -08:00
Gerald Lonlas
d613d63fdc
Fix the fee calculation
2017-12-17 23:01:34 -08:00
Michael Egger
bfb3e09d1d
raise ContentDecodingError if bittrex responds with NO_API_RESPONSE ( #183 )
2017-12-14 20:27:04 +01:00
gcarq
788cda4925
add missing import
2017-11-20 22:26:32 +01:00
gcarq
55a69e4a45
use normal program flow to handle interrupts
2017-11-20 22:15:19 +01:00
gcarq
b16ccb9919
handle requests exception in validate_pairs
2017-11-18 22:22:45 +01:00
Janne Sinivirta
4b08e3d571
fix pylint warnings in __init__ files
2017-11-18 09:58:29 +02:00
gcarq
d86dcc4752
check if result exists in get_ticker ( fixes #106 )
2017-11-16 16:39:06 +01:00
gcarq
b5f58724a0
get_ticker_history: check if result is set ( fixes #103 )
2017-11-15 23:16:54 +01:00
gcarq
b83309b55d
reduce calls_per_second to 1
2017-11-15 23:16:39 +01:00
gcarq
dd9cb008fb
refresh whitelist based on wallet health ( fixes #60 )
...
Refreshs the whitelist in each iteration based on the wallet health,
disabled wallets will be removed from the whitelist automatically.
2017-11-13 21:34:47 +01:00
gcarq
81f7172c4a
sanitize get_ticker_history ( fixes #100 )
2017-11-13 19:54:09 +01:00
gcarq
1c3c316e45
reduce calls_per_second
2017-11-11 21:29:35 +01:00
gcarq
bcd3340a80
implement get_market_summaries
2017-11-11 19:20:16 +01:00
gcarq
12ae1e111e
use get_candles from python-bittrex
2017-11-11 17:14:55 +01:00
gcarq
8f817a3634
use TTLCache for get_ticker_history
2017-11-11 15:29:31 +01:00
gcarq
3126dcfcea
drop sleep_time and use python-bittrex request delay
2017-11-10 23:39:49 +01:00
gcarq
0cfbb56b6c
enhance and test pair validation
2017-11-09 21:47:47 +01:00
gcarq
fafbb0abfe
update python-bittrex to 0.2.0
2017-11-09 00:31:53 +01:00
gcarq
ba485fe2b2
return state changes
2017-11-07 22:26:08 +01:00
gcarq
8555271102
remove unneeded header from get_ticker_history
2017-11-07 18:49:16 +01:00
gcarq
a1388ef296
add tick_interval to get_ticker_history as an optional parameter
2017-11-07 18:41:48 +01:00
Michael Egger
ae0b49f532
Merge pull request #92 from gcarq/feature/rework-dry_run-mode
...
rework dry_run
2017-11-06 16:54:55 +01:00
gcarq
810f2f9243
drop minimum_date from get_ticker_history
2017-11-06 00:06:59 +01:00
gcarq
60e651cb4c
only return data['result'] from get_ticker_history
2017-11-05 23:47:59 +01:00
gcarq
472ce8566d
enhance bittrex exception messages
2017-11-05 22:47:55 +01:00
gcarq
0a5eba64e2
do not remove order from dry_run order list
2017-11-05 16:13:20 +01:00
gcarq
b82c4444b2
apply correct typehint
2017-11-05 16:12:58 +01:00
gcarq
325f72fd91
dry_run: keep list of open orders
2017-11-05 15:21:16 +01:00
gcarq
264d71e29e
fix some pylint warnings
2017-11-04 18:55:41 +01:00
gcarq
41510fdb32
add dry_run for get_balance
2017-11-02 19:00:25 +01:00
gcarq
9cb249610a
adapt dry_run return values
2017-11-02 19:00:25 +01:00
gcarq
543857ddb2
set initial open_rate and amount in create_trade
...
This is mostly needed by dry_run
2017-11-02 19:00:25 +01:00
gcarq
9b9d0250f7
replace get_open_oders() with get_order() and add property for fee
2017-11-02 18:58:55 +01:00
gcarq
4a35676794
rename and exchange instance and mark it as private
2017-11-02 18:58:55 +01:00
gcarq
e07904d436
PEP8 linting
2017-10-31 00:36:35 +01:00
Samuel Husso
f4fe09ffbf
added get_balances as a abstract method to the interface baseclass
2017-10-29 17:57:57 +02:00
Samuel Husso
dd78c62c3d
added new command to return balance across all currencies
2017-10-28 08:59:43 +03:00
xsmile
d76476040a
Bittrex provider
...
remove redundant 'name' property and pair validation call
2017-10-11 19:51:37 +02:00
xsmile
34c774c067
move exchange module content to exchange package and the interface to a new module
2017-10-07 18:07:29 +02:00