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
Wagner Costa Santos
23b6915dde
fix issue with different backtesting prediction size
2022-11-02 15:49:51 -03:00
Matthias
2c3c7e1e3a
Merge pull request #7663 from freqtrade/shuffle_list_enhance
...
Improve ShufflePairlist to shuffle only once per candle
2022-11-02 19:37:48 +01:00
robcaulk
1a38c10fc6
remove old code
2022-11-02 19:37:47 +01:00
robcaulk
255eb71270
start tracking the current candle in FreqAI, add robustness to corr_df caching and inference timer, add test for cache corr_df
2022-11-02 19:32:22 +01:00
robcaulk
97df232ac6
add a warning to __init__ for get_corr_dataframes
2022-10-31 18:18:00 +01:00
robcaulk
66d8ed6c0b
Merge remote-tracking branch 'origin/develop' into reduce-indicator-population
2022-10-31 09:42:01 +01:00
robcaulk
d59a7fa2f9
remove analysis_lock and realign example hybrid strat
2022-10-30 17:07:33 +01:00
Matthias
391c3f56f7
Add typehint to corr_pairlist
2022-10-30 13:28:01 +01:00
Mark Regan
7053f81fa8
simplified predict and predict_proba using super(). Added duplicate class label check.
2022-10-30 09:48:30 +00:00
Matthias
cf4af2175c
Merge pull request #7662 from markdregan/backtest_extra_returns_fix
...
Fix missing f-string from PR #7611
2022-10-30 10:47:06 +01:00
robcaulk
a2843165e1
fix leftovers from merge
2022-10-30 10:31:38 +01:00
robcaulk
52e15b2070
Merge remote-tracking branch 'origin/develop' into feat/freqai-rl-dev
2022-10-30 10:16:39 +01:00
robcaulk
d1a0874683
merge develop into feat/freqai-rl-dev
2022-10-30 10:13:03 +01:00
robcaulk
fc53054d43
leverage list length knowledge, f-string change
2022-10-30 10:12:14 +01:00
Emre
f98c7a2423
Remove loop of normalization from metadata
2022-10-30 10:12:14 +01:00
Matthias
5c14aeddc6
Add "--log-file" alias for "--logfile"
2022-10-30 09:50:54 +01:00
Matthias
5013351143
Rename "shuffle" parameter to "shuffle_freq"
2022-10-30 09:48:55 +01:00
Matthias
a323acf343
Improve ShufflePairlist to shuffle only once per candle
2022-10-30 09:46:12 +01:00
Mark Regan
c26fda282f
fix missing f-string from PR #7611
2022-10-30 08:19:59 +00:00
robcaulk
650bb8b7d7
ensure full pair string is used for caching dataframes. If not, revert to old behavior. Update docs.
2022-10-29 22:26:49 +02:00
Matthias
352adaf127
Improve readability of is_time_to_refresh function
2022-10-29 19:45:46 +02:00
Matthias
c23a9475e6
Move exchange utilities into separate module
2022-10-29 09:29:17 +02:00
Matthias
801e91c39e
Merge pull request #7618 from wizrds/fix/docker-config-record
...
Update function in FreqAI interface to record FreqAI config params
2022-10-29 08:56:20 +02:00
Matthias
54c7122cc3
Merge pull request #7647 from freqtrade/combine_stop
...
Combine stop logic
2022-10-28 19:38:40 +02:00
Matthias
777af5517d
Version bump develop version to 2022.11-dev
2022-10-28 19:38:19 +02:00
Mark Regan
6ef82dd8b6
minor change to return
2022-10-27 12:41:12 +01:00
Matthias
9e0b39cddc
Properly invert sign
...
fixes 98ba57ff
2022-10-27 06:56:33 +02:00
Matthias
255f38537e
Simplify stoploss behavior by combining more commonalities
2022-10-26 07:14:33 +02:00