Commit Graph

9699 Commits

Author SHA1 Message Date
Matthias
3918f4abbd Simplify strategy interface by removing explicit self.freqai_info assignment 2022-08-13 09:27:56 +02:00
Matthias
3b827ee60a Add "freqai.enabled" flag to disable freqAI via config flag
aligns with how other optional modules work in freqtrade.
2022-08-13 09:24:04 +02:00
Matthias
f6545ebdb8 Disallow backtesting with --strategy-list for now. 2022-08-13 09:10:03 +02:00
Matthias
e3a5b97b45 Update recalc_from_trades to use FtPrecise 2022-08-13 08:43:56 +02:00
Matthias
3bcb47d75d Remove usage of Decimal 2022-08-13 08:43:56 +02:00
Matthias
902afc2f02 Use FtPrecise in interest calculation 2022-08-13 08:43:56 +02:00
Matthias
0e61c2d057 Replace Decimal with FtPrecise in trade_model 2022-08-13 08:43:56 +02:00
Matthias
df701b5862 Merge branch 'develop' into feat/freqai 2022-08-13 08:43:24 +02:00
ecoppen
923f73a516 nobase -> baseonly 2022-08-12 19:56:46 +01:00
robcaulk
fb4b73ce89 ensure dates are saved 2022-08-12 12:03:44 +02:00
Matthias
cc885e25ac Improve NAN Handling in RPC 2022-08-11 20:16:07 +02:00
Matthias
de690b0a69 Use PEP440 compatible versioning 2022-08-11 20:08:40 +02:00
Matthias
dd4e44931e Improve NAN handling in RPC module 2022-08-11 15:02:52 +00:00
robcaulk
2cae3c42e6 remove trade database analyzer, clean up a bit 2022-08-10 17:43:06 +02:00
ecoppen
c0d60c63ab Optional /whitelist args - sorted, nobase
Added two optional arguments for whitelist - `sorted` for alphabetical order and `nobase` for displaying the whitelist without base currency e.g. /USDT.

Updated help with optional commands.

Added a space in an unrelated help message.
2022-08-10 14:56:38 +01:00
Matthias
ed004236ce Add float initializer to FtPrecise 2022-08-10 11:54:07 +00:00
Matthias
e7cb1b7375 Wrap Precise into FtPecise 2022-08-10 11:26:06 +00:00
Matthias
adc8ee88e2 Move periodicCache to Utils package 2022-08-10 08:57:19 +00:00
Matthias
573964b19f Dry Market orders should update "remaining" 2022-08-10 07:12:56 +02:00
Matthias
53251e7140
Merge pull request #7194 from freqtrade/rpc/partial_forceexit
Partial forceExit
2022-08-10 07:12:40 +02:00
Matthias
ce2c9bf26d Slight renaming of variable 2022-08-10 06:44:41 +02:00
Matthias
736884c5a9 Orders should be allowed to have empty fill/remaining values 2022-08-09 20:43:58 +02:00
Matthias
b5c5a95b64 FTX: Use conditionalOrders endpoint to get proper stop-market order id
closes #7165
2022-08-09 20:09:35 +02:00
robcaulk
5a16d5a512 Deactivate database analyzer if user does not use sqlite 2022-08-09 16:36:22 +02:00
robcaulk
e7de812948 Allow user to user pair_dict for persistent storage of custom data 2022-08-09 16:03:10 +02:00
robcaulk
aef086b02e Improved dict typing, timeframe parser, collect dates associated with training data points 2022-08-09 15:30:25 +02:00
Matthias
9a82898d6b Merge branch 'develop' into feat/freqai 2022-08-09 06:22:57 +02:00
Matthias
77b3b8a134 Use main exchange instead of creating a separate instance. 2022-08-08 18:34:11 +00:00
robcaulk
ea64f43e52 bring back auto DF resizing for okx 2022-08-08 01:13:13 +02:00
robcaulk
67c722c9c8 fix asyncio bug 2022-08-07 14:48:39 +02:00
Matthias
e48e82232d Force response API to js to fix faulty system configs
closes #7147
2022-08-07 10:42:56 +02:00
Matthias
0b2104fc7a Properly increment the api version 2022-08-07 10:13:36 +02:00
Matthias
6ded2d5b7c Improve forceexit API test 2022-08-07 09:47:11 +02:00
Matthias
d1998f7ed0 Fix forceexit calling 2022-08-07 09:47:11 +02:00
Matthias
eff8cd7ecb Add leverage to force_entry 2022-08-07 09:47:11 +02:00
Matthias
daf015d007 extract nested force_exit function to private instance function 2022-08-07 09:47:11 +02:00
Matthias
82aecc81f3 Accept parameters to forceexit 2022-08-07 09:47:11 +02:00
robcaulk
eb8bde37c1 Add lightgbm classifier, add classifier check test, fix classifier bug. 2022-08-06 17:51:21 +02:00
Matthias
bfa859e618 Remove unnecessary method (simplify) 2022-08-06 17:46:58 +02:00
Matthias
5250189f77 Add Rollback function to Trade
simplifies Session work
2022-08-06 17:03:49 +02:00
Matthias
47a30047eb Fix typo 2022-08-06 15:03:10 +02:00
Matthias
b16f57cb0d Minor stylistic fixes 2022-08-06 14:55:46 +02:00
Robert Caulk
c172ce1011 improve flexibility of user defined prediction dataframe 2022-08-06 13:51:19 +02:00
Matthias
45d68222a1 Reduce verbosity of Fiat Converter 2022-08-06 13:18:40 +02:00
Matthias
f8f1ade163 Reduce function complexity by extracting message sending 2022-08-06 09:21:11 +02:00
Matthias
2687633941 Test iterative sending of /status 2022-08-06 09:16:04 +02:00
Matthias
b12dd15f4f Send multiple messages in /status if required 2022-08-06 09:10:12 +02:00
Robert Caulk
07763d0d4f add classifier, improve model naming scheme 2022-08-06 08:33:55 +02:00
Robert Caulk
ce8fbbf743 ensure loading historical df matches frequi indices 2022-08-06 07:25:59 +02:00
robcaulk
60d782e5c5 remove unnecessary function 2022-08-05 21:31:32 +02:00
robcaulk
a42a060ab5 fix DB once and for all. Make DBSCAN more efficient and robust. 2022-08-05 21:29:03 +02:00
Robert Caulk
a3799c4d5d start frequi with historical data if available 2022-08-05 18:27:47 +02:00
robcaulk
29b7b014e5 fix bug in DB path initialization 2022-08-05 18:19:26 +02:00
robcaulk
db1d367941 fix bug associated to fit_live_predictions_candles 2022-08-05 13:46:20 +02:00
robcaulk
26de992d20 ensure user sets startup candles in backtesting mode 2022-08-05 12:23:14 +02:00
robcaulk
05ec5c5e54 generalize database url path for any db type 2022-08-05 12:19:29 +02:00
Matthias
9545402452 Improve defaults for config builder 2022-08-05 11:58:09 +02:00
Matthias
7675187c37 Use telegram message length to avoid constants 2022-08-05 07:31:19 +02:00
Matthias
cffc769549 Fix /profit endpoint calculations for partial sells
* don't recalculate for closed trades
* include realized_profit in the calculation

part of #7178
2022-08-05 07:26:41 +02:00
Robert Caulk
51a6b4289f improve DBSCAN performance for subsequent trainings 2022-08-04 17:41:58 +02:00
Robert Caulk
fe1b8515a8 fix bug in DBSCAN, update doc 2022-08-04 17:00:59 +02:00
robcaulk
29225e4baf add DBSCAN outlier detection feature, add supporting documentation 2022-08-04 12:15:16 +02:00
Matthias
95327750dc Final abs. profit should not be doubled in rpc messages 2022-08-04 07:07:54 +02:00
robcaulk
eae82d0222 fix bug with database url during backtesting. comment out example trade db analysis. 2022-08-03 16:17:57 +02:00
robcaulk
95d3009a95 give user ability to analyze live trade dataframe inside custom prediction model. Add documentation to explain new functionality 2022-08-02 20:14:02 +02:00
Matthias
d75e0a9820 Fix Flake8 errors after flake update 2022-08-01 06:43:59 +02:00
robcaulk
3013282dbf remove non-catboost stuff from schema 2022-08-01 05:39:38 +02:00
robcaulk
946d4c7cfc fix trailing whitespace for flake8 2022-07-31 18:39:46 +02:00
robcaulk
4e68626bcb ensure convolutional window is prepended for frequi consistency 2022-07-31 17:51:19 +02:00
robcaulk
d830105605 *BREAKING CHANGE* remove unnecessary arguments from populate_any_indicators(), accommodate tests 2022-07-31 17:05:29 +02:00
robcaulk
153336d424 move corr_pairlist expansion to after expand_pairlist() 2022-07-31 15:45:28 +02:00
Matthias
659870312d Use JSON Schema validation for freaAI schema validation 2022-07-31 15:23:27 +02:00
Kavinkumar
a4bada3ebe
Partial exit using average price (#6545)
Introduce Partial exits
2022-07-31 14:19:04 +02:00
Matthias
369c6da5d8
Merge pull request #7146 from freqtrade/fix/liquidation
Update liquidation price handling
2022-07-31 08:09:54 +02:00
Matthias
bad15f077c Simplify fetch_positions by using already existing method 2022-07-30 17:49:06 +02:00
Matthias
fc31c890e3
Merge pull request #7135 from freqtrade/rpc/sendmsg
Strategy allow rpc messages
2022-07-30 16:15:00 +02:00
Matthias
d046f0cc5e Improve method wording for liquidation price setter 2022-07-30 16:11:31 +02:00
Matthias
dba7a7257d Use stop_or_liquidation instead of stop_loss 2022-07-30 16:10:16 +02:00
Matthias
845cecd38f Add stoploss or liquidation property 2022-07-30 16:10:16 +02:00
Matthias
15752ce3c2 Rename set_stoploss method to be fully private 2022-07-30 16:10:16 +02:00
Matthias
9852733ef7 Improve tests to align with modified logic 2022-07-30 16:10:16 +02:00
Matthias
8711b7d99f Liquidations cannot be rejected. 2022-07-30 16:10:16 +02:00
Matthias
995be90f91 Liquidation should be a separate exit type 2022-07-30 16:10:16 +02:00
robcaulk
dd8288c090 expose full parameter set for SVM outlier detection. Set default shuffle to false to improve reproducibility 2022-07-30 13:40:05 +02:00
robcaulk
f22b140782 fix backtesting bug, undo move of label stat calc, fix example strat exit logic 2022-07-29 17:27:35 +02:00
robcaulk
08d3ac7ef8 add keras and conv_width to schema and documentation 2022-07-29 08:49:35 +02:00
robcaulk
59624181bd isort BaseRegressionModel imports 2022-07-29 08:23:44 +02:00
robcaulk
c84d54b35e Fix typing issue, avoid using .get() when unnecessary, convert to fstrings 2022-07-29 08:12:50 +02:00
Matthias
efbd83c56d Small type and typo fixes in freqai_interface 2022-07-28 07:24:30 +02:00
Matthias
a2a0d35a24 Update missing typehints 2022-07-28 07:07:40 +02:00
Matthias
3273881282 Merge branch 'develop' into feat/freqai 2022-07-28 06:36:38 +02:00
Matthias
cc3ead9d7b Set required_profit for stoploss guard, allowing to ignore small stoplosses.
closes #7076
2022-07-27 19:52:39 +02:00
Matthias
f31106dc61 Minor comment fixes 2022-07-27 07:27:24 +02:00
Matthias
7bac054668 Add documentation and clarity for send_msg 2022-07-26 20:24:52 +02:00
Matthias
229e8864bb Add send_msg capability to dataprovider 2022-07-26 20:15:49 +02:00
Matthias
bc760b7eb2 Simplify small segment in datadrawer 2022-07-26 19:41:49 +02:00
robcaulk
324e54c015 fix possible memory leak associated with Catboost Pool object 2022-07-26 17:29:29 +02:00
robcaulk
3f149c4067 fix return type in BaseTensorFlowModel 2022-07-26 16:01:54 +02:00
robcaulk
ad25a4cb56 reduce number of pair_dict lookups, remove coin_first 2022-07-26 15:58:40 +02:00
robcaulk
fb4e8430cd isort auto import sorting 2022-07-26 10:51:39 +02:00
robcaulk
e213d0ad55 isolate data_drawer functions from data_kitchen, accommodate tests, add new test 2022-07-26 10:24:14 +02:00
robcaulk
56b17e6f3c allow user to pass test_size = 0 and avoid using eval sets in prediction models 2022-07-25 19:40:13 +02:00
Matthias
4c68bec171 Fix problem in is_cancel_order_result_suitable
fixes #7119
2022-07-25 17:47:52 +02:00
Robert Caulk
897f18a8c8 ensure proper integer type casting for timestamps. Add check test for backtesting subdaily time periods 2022-07-25 15:07:09 +02:00
Robert Caulk
7b105532d1 fix mypy error and add test for principal component analysis 2022-07-25 11:46:59 +02:00
Robert Caulk
c9d46a5237 finish bringing follow_mode up to date 2022-07-25 09:24:40 +02:00
Robert Caulk
ab587747fb first fix for follower path bug 2022-07-24 23:32:24 +02:00
Matthias
520ee3f7a1 Convert freqAI into packages 2022-07-24 17:07:45 +02:00
Matthias
1885deb632 More docstring changes 2022-07-24 16:54:39 +02:00
Matthias
70b7a254af Update some areas to use default docstring formatting 2022-07-24 16:51:48 +02:00
Matthias
61c41fd919 Merge branch 'develop' into feat/freqai 2022-07-24 16:18:58 +02:00
Robert Caulk
88e10f7306 add exception for not passing timerange. Remove hard coded arguments for CatboostPredictionModels. Update docs 2022-07-24 09:01:23 +02:00
Robert Caulk
fff39eff9e fix multitarget bug 2022-07-24 08:42:50 +02:00
Matthias
2eb1d18c2a Don't load leverage tiers when not necessary 2022-07-23 19:56:38 +02:00
robcaulk
f3d46613ee move prediction denormalization into datakitchen. remove duplicate associated code. avoid normalization/denormalization for string dtypes. 2022-07-23 17:14:33 +02:00
Matthias
81c1aa3c13 Update imports in freqAI sample strategies 2022-07-23 17:08:05 +02:00
Matthias
8a3cffcd1b Remove remaining CustomModel references 2022-07-23 17:08:05 +02:00
Matthias
8fa6e8b4ba Remove freqAI model bridge in favor of self.freqai 2022-07-23 17:08:05 +02:00
robcaulk
c91e23dc50 let user avoid normalizing labels 2022-07-23 16:14:13 +02:00
robcaulk
50d630a155 remove unnecessary comments from data_drawer.py 2022-07-23 13:35:44 +02:00
robcaulk
a1cff377ec add record of contribution to data_kitchen.py 2022-07-23 13:32:04 +02:00
robcaulk
c2d6a0e891 add record of contribution to doc and source 2022-07-23 13:04:06 +02:00
Matthias
e97468964a Add support for --timeframe-detail in hyperopt
fix #7070
2022-07-23 08:52:03 +02:00
robcaulk
5559e605b8 small PR conversation resolutions 2022-07-22 17:46:14 +02:00
robcaulk
40f00196eb use cloudpickle in place of pickle. define Paths once in data_drawer. 2022-07-22 17:37:51 +02:00
robcaulk
98c8a447b2 add LightGBMPredictionMultiModel 2022-07-22 12:40:51 +02:00
robcaulk
afcb0bec00 clean up obsolete comments, move remove_features_from_df to datakitchen 2022-07-22 12:29:20 +02:00
robcaulk
3205788bce extend doc to include descriptions of the return values from FreqAI to the strategy 2022-07-21 22:11:46 +02:00
robcaulk
8033e0bf23 add counter to backtesting log so users know how many more pairs and how many more models will need to be trained 2022-07-21 13:22:12 +02:00
robcaulk
183dec866a remove ability to backtest open ended timeranges (safer) 2022-07-21 13:02:52 +02:00
robcaulk
e694ea1cfd make sure backtesting gets the populated indicators with slimmed down user strat 2022-07-21 12:48:09 +02:00
robcaulk
ca4dd58642 remove superceded function from datakitchen 2022-07-21 12:40:54 +02:00
robcaulk
8f86b0deaa *breaking change* simplify user strat by consolidating feature loops into backend 2022-07-21 12:24:22 +02:00
robcaulk
e7337728bf add separator in folder name just incase an asset ends in an integer 2022-07-21 11:25:28 +02:00
robcaulk
921a7ef216 add requirements-freqai.txt to builds 2022-07-20 15:51:25 +02:00
robcaulk
d43c146676 add more tests for datakitchen functionalities, add regression tests for freqai_interface train/backtest 2022-07-20 12:56:46 +02:00
lolong
9c051958a6
Feat/freqai (#7105)
Vectorize weight setting, log training dates

Co-authored-by: robcaulk <rob.caulk@gmail.com>
2022-07-19 17:49:18 +02:00
robcaulk
714d9534b6 start adding tests 2022-07-19 16:16:44 +02:00
lolong
ed0f8b1189
Improve FreqAI documentation (#7072)
Improve doc + some other small fixes

Co-authored-by: robcaulk <rob.caulk@gmail.com>
2022-07-18 11:57:52 +02:00
Robert Caulk
921f3899f0 revert pickle reading for historic predictions 2022-07-17 16:06:36 +02:00
Robert Caulk
41eeb99177 load pickle file for writing 2022-07-17 10:05:21 +02:00
Matthias
05a5ae4fcf Update plotting to use entry/exit terminology 2022-07-16 22:28:46 +02:00
Robert Caulk
9d184586f1 fix bug in historic prediction saving 2022-07-16 21:16:59 +02:00
Matthias
f6bfd89cef Merge branch 'develop' into feat/freqai 2022-07-16 18:14:34 +02:00
Matthias
423af371c0 Simplify calculation by calling "get_fee" only once 2022-07-16 17:59:05 +02:00
Matthias
4172f92bfc simplify dry-run taker/maker selection 2022-07-16 17:25:13 +02:00
Matthias
8b2535a8da Update Typing for fees 2022-07-16 15:42:17 +02:00
Matthias
8d2e22f009 Merge branch 'develop' into pr/samgermain/6780 2022-07-16 15:35:00 +02:00
Matthias
004bf31142
Merge pull request #7093 from freqtrade/fix/gate_futures_stoposs
gateio futures - several fixes
2022-07-16 15:18:32 +02:00
Matthias
357000c478 Extract exchange validation to separate method 2022-07-16 13:45:26 +02:00
Matthias
d03dfb3934 Oder cost is real cost (including leverage) 2022-07-16 13:14:21 +02:00
Matthias
ed64e4299b Stoploss orders should also be eligible to update closed fees 2022-07-16 13:14:21 +02:00
Matthias
415780a4fe gateio order cost is not in contracts
closes #7081
2022-07-16 13:14:21 +02:00
Matthias
7b8a5585dd Fetch 2ndary stoploss order once the order triggered. 2022-07-16 13:14:21 +02:00
Matthias
7c4dd4c48c Support fee cost as string
closes #7056
2022-07-16 13:14:21 +02:00
Matthias
40e2da10f3 Add hypeorpt cloudpickle magic
closes #7078
2022-07-16 11:49:33 +02:00
Wagner Costa Santos
ca2029a46b fix issue when bot restarts with same identifier, does not load prediction history 2022-07-14 18:55:24 -03:00
Matthias
cdc58058d7 Add candletype to notebook example
closes #7084, closes #7073
2022-07-14 19:40:26 +02:00
robcaulk
4141d165ff add BaseTensorFlowModel class 2022-07-12 19:10:09 +02:00
robcaulk
ef409dd345 Add ground work for TensorFlow models, add protections from common mistakes 2022-07-12 18:09:17 +02:00
Robert Caulk
fea63fba12 Fix saving/loading historic predictions 2022-07-12 10:12:50 +02:00
Robert Caulk
8ce6b18318 start collecting indefinite history of predictions. Allow user to generate statistics on these predictions. Direct FreqAI to save these to disk and reload them if available. 2022-07-11 22:01:48 +02:00
Matthias
0669d93f56
Merge pull request #7068 from freqtrade/ccxt_ordertype_validations
Ccxt ordertype validations
2022-07-11 19:41:05 +02:00
Matthias
5c164efdb6 Also check for createLimitOrder as optionals 2022-07-11 16:09:12 +02:00
Matthias
f9d3775d4c Move "candle" logic for message to telegram
this avoids calling this method unless necessary
2022-07-11 14:09:39 +02:00
Matthias
9a3a2f9013 Simplify adding candle to message 2022-07-11 13:55:32 +02:00
Matthias
8e8f026ea7 Telegram candle message should be configurable 2022-07-11 12:14:19 +02:00
Matthias
ed03ef47ef Merge branch 'develop' into pr/SurferAdmin/6916 2022-07-11 11:49:22 +02:00
Matthias
ec3179156c Revert unwanted changes. 2022-07-11 11:48:24 +02:00
Matthias
3fc92b1b21 Create BaseRegression model - designed to reduce code duplication across currently available models. 2022-07-11 11:33:59 +02:00
Matthias
6ac1aa15f5 Reenable ccxt order checks 2022-07-11 10:36:19 +02:00
Matthias
523d8a84a8 skip "supports market order" for now until CCXT fixes their assignemnt bugs. 2022-07-11 10:22:51 +02:00
Matthias
7d6b3d0e02 Update hyperopt param docs to be clear that non-conclusive parameters will be ignored 2022-07-11 08:17:16 +02:00
Robert Caulk
607455919e Change config parameter names to improve clarity and consistency throughout the code (!!breaking change, please check discord support channel for migration instructions or review templates/FreqaiExampleStrategy.py config_examples/config_freqai_futures.example.json file changes!!) 2022-07-10 12:35:44 +02:00
Matthias
819cc9c0e4 Fully align LightGBM with Catboost 2022-07-10 11:06:18 +02:00
Matthias
58b18770e3 Fix LightGBM missing argument in predict method 2022-07-10 11:05:35 +02:00
Matthias
9313a2d294 Update leverage tiers to latest version 2022-07-10 10:11:39 +02:00
Matthias
2e1061af64 Fix faulty LightGBM model 2022-07-09 08:21:42 +00:00
Matthias
c98e7ea055 Revert allowing empty currency for futures 2022-07-09 08:57:15 +02:00
Matthias
b7167ec880 Fix wrong fee calclulation for gateio futures 2022-07-09 08:51:59 +02:00
Matthias
5b733a723d use "fees" for trades responses 2022-07-09 08:51:28 +02:00
Matthias
81f7d77d74 Allow fee currency to be empty for futures 2022-07-09 08:51:28 +02:00
Matthias
2499276fca Refactor calculate_fee_rate to take separate parameters instead of an "Order"
we passed in a trade object anyway
2022-07-09 08:51:28 +02:00
Matthias
e52f82b565 Add leverage to custom_stake_amount callback
closes #7047
2022-07-08 19:44:20 +02:00
Matthias
b39508f64d remove loadMarkets from "required" section,
it's now implied that all ccxt exchanges provide this method.
2022-07-07 19:44:54 +02:00
robcaulk
d9acdc9767 remove excess, increase no model warning clarity 2022-07-06 18:20:21 +02:00
Matthias
dbc3376fe9 Add alias for gate to gateio 2022-07-06 07:12:13 +02:00
robcaulk
514f7d491c change rejected to denied 2022-07-05 12:58:43 +02:00
robcaulk
647f9b5460 replace the word abortion with rejected in log messages 2022-07-05 12:49:09 +02:00
robcaulk
4cac67fd66 Catch infrequent issue associated with grabbing first candle 2022-07-05 12:43:33 +02:00
Matthias
6f0721ae2b Update dry-order-fix to use sqlalchemy internals 2022-07-04 17:17:39 +02:00
Matthias
6da3fa08e4 Update migrations to also support Postgres
closes #7038
2022-07-04 11:14:59 +02:00
robcaulk
bd3a6ba2fe update backtesting to handle new output framework 2022-07-03 17:34:44 +02:00
robcaulk
8ac8d53c32 All LGBMRegressor model parameters are now set in config 2022-07-03 16:30:01 +02:00
robcaulk
a6077ac7f4 Merge feat/freqai into develop to get new features 2022-07-03 16:17:13 +02:00
Matthias
07aa372e2a Ensure bot_loop_start is called in hyperopt, too
closes #7001
2022-07-03 14:10:59 +02:00
Matthias
c5e6520fee Reorder methods in freqtradebot 2022-07-03 13:35:26 +02:00
robcaulk
4ff0ef7359 fix bug returning multiple targets for training 2022-07-03 12:15:59 +02:00
Matthias
f2fdc21374 Only use exit_tag if exit_type i exit_signal
closes #7027
2022-07-03 11:07:05 +02:00
robcaulk
ffb39a5029 black formatting on freqai files 2022-07-03 10:59:38 +02:00
robcaulk
106131ff0f Rehaul organization of return values 2022-07-02 18:09:38 +02:00
robcaulk
93e1410ed9 first step toward cleaning output and enabling multimodel training per pair 2022-07-01 14:00:30 +02:00
robcaulk
6c7d02cb18 expose nu in the SVM outlier detection via svm_nu in config 2022-06-28 15:12:25 +02:00
robcaulk
7dfbd432d1 fix config saving bug, assign priorities to pairs in scanning, sleep the scanning loop to reduce CPU usage 2022-06-27 11:35:33 +02:00
robcaulk
68bafa9517 archive config to the model folder, filter out features before returning dataframe to strategy (to alleviate frequi issues)` 2022-06-26 23:03:48 +02:00
robcaulk
051b99791d reduce unnecessary verbosity, fix error on first training sweep, add LightGBMPredictionModel 2022-06-26 19:04:23 +02:00
Matthias
2b07d34611 Revert several undesired changes 2022-06-23 20:47:51 +02:00
Matthias
8bf0bf10c5 Merge branch 'develop' into pr/SmartManoj/6859 2022-06-23 20:43:35 +02:00
Surfer
06571e99aa
Merge branch 'freqtrade:develop' into develop 2022-06-22 09:38:23 -04:00
Matthias
53e5483daa Store StopPrice for dry-run orders
closes #6996
2022-06-22 06:31:51 +02:00
Surfer
cc4e5b26f0
Merge branch 'freqtrade:develop' into develop 2022-06-21 14:16:03 -04:00
Surfer Admin
e2a94d75b4 Merge branch 'develop' of https://github.com/Surfableio/freqtrade into develop 2022-06-21 14:06:56 -04:00
Surfer Admin
405ea74f16 stopPrice 2022-06-21 14:06:41 -04:00
Matthias
3a0f31fe89
Merge pull request #6914 from freqtrade/leverage_tiers_async
Leverage tiers async
2022-06-21 10:18:40 +02:00
Robert Caulk
852706cd6b
Fix default behavior for expiration_hours 2022-06-21 08:12:51 +02:00
robcaulk
b35c64b6c0 fix bug in backtest, typo in example strat 2022-06-19 16:41:09 +02:00
Matthias
0d967f93ba Improve performance of some RPC calls
These don't need orders to be loaded. As a side-effect, this will
also reduce the strain on the database.
2022-06-19 16:13:04 +02:00
Matthias
0809f9aef6 Add offset to trade response 2022-06-18 19:27:05 +02:00
Matthias
bb61250bfe
Merge pull request #6987 from freqtrade/profit_metrics
Profit metrics
2022-06-18 17:20:20 +02:00
Matthias
0168343b76 Add trading-volume to api schema 2022-06-18 16:53:25 +02:00
Matthias
474e6705e6 Add Profit factor to backtesting 2022-06-18 16:35:40 +02:00
Matthias
8c46d19071 Fix backtesting bug
balance was never released on cancelled trades
2022-06-18 16:27:54 +02:00
robcaulk
3599d18ff6 fix bug in follow_mode, thanks @blood4rc 2022-06-18 12:05:28 +02:00
Matthias
40c9abc7e1 Add trading volume to /profit output 2022-06-18 11:40:32 +02:00
Matthias
6a15d36d14 Add Drawdown and profit_factor to /profit
#6816
2022-06-18 11:14:28 +02:00
Matthias
d77ce468ea Add "dry" hint to buy/sell messages
part of #6962
2022-06-18 09:40:53 +02:00
Matthias
03815cb81b Use fstrings in telegram messaging 2022-06-18 09:23:16 +02:00
Matthias
d62273294d Update /help for /fx to align with actual command name
closes #6985
2022-06-18 09:10:33 +02:00
Matthias
017fd03180 Fix but with late entries in backtesting 2022-06-18 09:05:22 +02:00
Matthias
616bf315cb gateio: futures market orders require IOC to be set. 2022-06-17 23:02:39 +02:00
Matthias
fda8248d41 Gateio allow market orders on futures markets 2022-06-17 22:43:24 +02:00
robcaulk
6da7a98857 add docstrings to new functions, remove superceded code 2022-06-17 16:16:23 +02:00
robcaulk
f631ae911b add model expiration feature, fix bug in DI return values 2022-06-17 14:55:40 +02:00
Matthias
6bdf9c2a94 Simplify trade profit calculations further 2022-06-17 11:17:05 +00:00
Matthias
91f9818ae3 Simplify trade calculations 2022-06-17 09:53:29 +00:00
Matthias
d7770c507b Remove implicit use of certain rates in profit calculations 2022-06-17 07:00:42 +00:00
robcaulk
0b0688a91e ensure scanning purges models 2022-06-16 16:12:38 +02:00
Surfer
36f7315481
Merge branch 'freqtrade:develop' into develop 2022-06-16 08:19:57 -04:00
robcaulk
c5de0c49e4 first functional scanning commit 2022-06-16 00:24:18 +02:00
robcaulk
4d472a0ea1 merging datarehaul into scanning branch 2022-06-16 00:22:49 +02:00
Matthias
8f32fa5cb3 Avoid exception on exchange recycling if __init__ fails 2022-06-15 20:13:07 +02:00
Matthias
f9e2e87346 Improve some formatting and typehints 2022-06-15 20:03:36 +02:00
Matthias
ec40e79362
Merge pull request #6874 from froggleston/buy_reasons
Buy reasons
2022-06-15 19:06:00 +02:00
froggleston
14110bd5ca Merge branch 'buy_reasons' of github.com:froggleston/freqtrade into buy_reasons 2022-06-15 11:25:24 +01:00
froggleston
c391ca08de Change backtesting-analysis options to space separated lists 2022-06-15 11:25:06 +01:00
Matthias
29d8aeb9b3 Don't fail on invalid parameter 2022-06-15 07:13:47 +02:00
Matthias
3c62df6b86 Ensure the same timestamp is used for backtest and signal export 2022-06-15 06:53:52 +02:00
froggleston
6bb342f23a Add export-filename support 2022-06-14 16:54:27 +01:00
Matthias
01a68e1060 Remove unnecessary check and condition 2022-06-13 20:48:49 +02:00
Matthias
1ffee96bad Fix protection parameters not loading from parameter file
closes #6978
2022-06-13 19:59:05 +02:00
Matthias
d5fd1f9c38 Improve order filled handling 2022-06-13 13:24:48 +00:00
Matthias
c981ad4608 Fix missing space 2022-06-12 08:31:02 +02:00
Matthias
75a248cf42 Fstring freqAI sample strategy, remove duplicate features 2022-06-11 19:56:37 +02:00
Matthias
2e1ed132f7
Merge pull request #6964 from freqtrade/rpc_rel_daily
Telegram / api daily relative profit
2022-06-11 19:31:32 +02:00
Matthias
9c65fad73f Merge Pull request #6919 into develop 2022-06-11 17:49:32 +02:00
Matthias
4b70e03daa Add some rudimentary tsts for discord webhook integration 2022-06-11 17:49:23 +02:00
Matthias
fdfa94bcc3 make discord notifications fully configurable. 2022-06-11 17:43:46 +02:00
Matthias
f816c15e1e Update discord message format 2022-06-11 16:48:28 +02:00
Matthias
3a06337601 Update API to provide new values. 2022-06-11 11:28:45 +02:00
Matthias
9ba11f7bcc Update docs and tests for new daily command 2022-06-11 11:26:49 +02:00
Matthias
76827b31a9 Add relative profit to daily/weekly commands 2022-06-11 11:18:21 +02:00
robcaulk
eb47c74096 merge datarehaul into main freqai branch 2022-06-10 20:26:19 +02:00
Matthias
76f87377ba Reduce decimals on FIAT daily column 2022-06-10 20:18:53 +02:00
Matthias
e8f8cd9d36
Merge pull request #6960 from italodamato/opt-ask-force-new-points
remove `random_state` condition when sampling random points
2022-06-10 19:45:36 +02:00
Italo
7142394121 remove random_state condition
otherwise the random sample always draws the same set of points
2022-06-10 09:46:45 +01:00
Matthias
ad3c01736e time aggregate to only query for data necessary
improves the query by not creating a full trade object.
2022-06-10 07:26:53 +02:00
Matthias
2218313f5c
Merge pull request #6957 from freqtrade/rpc_consolidate_daily
Rpc consolidate daily
2022-06-10 06:39:59 +02:00
Italo
dce9fdd0e4 don't overwrite is_random
this should fix issue #6746
2022-06-09 20:06:23 +01:00
Matthias
8fb743b91d improve variable wording 2022-06-09 20:13:26 +02:00
Matthias
dd32127014
Merge pull request #6944 from gaugau3000/develop
give extra info on rate origin for confirm_trade_*
2022-06-09 20:10:29 +02:00
Matthias
1ddd5f1901 Update docstring throughout the bot. 2022-06-09 19:41:08 +02:00
Matthias
88f8cbe172 Update tests to reflect new naming 2022-06-09 19:38:18 +02:00
Matthias
a547001601 Reduce Telegram "unit" stats 2022-06-09 07:06:32 +02:00
Matthias
d4dd026310 Consolidate monthly stats to common method 2022-06-09 07:06:32 +02:00
Matthias
3cb15a2a54 Combine weekly and daily profit methods 2022-06-09 07:06:32 +02:00
Matthias
c550cd8b0d Simplify query in freqtradebot 2022-06-09 07:04:46 +02:00
Matthias
7eacb847b0 Fix backtesting bug when order is not replaced 2022-06-08 20:21:45 +02:00
robcaulk
d9b79d94e4 increase candle update flexibility to allow long sequential trainings that may last more than one candle 2022-06-07 20:57:10 +02:00
robcaulk
66800c7a45 ensure newest candles are always appended 2022-06-07 20:24:23 +02:00
robcaulk
f8f25e36ef update example config/strat 2022-06-07 19:54:45 +02:00
robcaulk
15d049cffe detect if upper tf candles are new or not, append if so. Correct the epoch for candle update check 2022-06-07 19:49:20 +02:00
Matthias
9534d6cca1 Cancel orders which can no longer be found after several days 2022-06-07 07:03:40 +02:00
robcaulk
cab8f517b4 add lock to datadrawer 2022-06-07 01:07:30 +02:00
robcaulk
4b26b6aaec add lock to any historic data access 2022-06-07 00:54:18 +02:00
Robert Caulk
3c2e314ee5
Fix bugs 2022-06-06 16:26:07 -06:00
Robert Caulk
e6c5e737a2
Fix other bugs 2022-06-06 16:24:32 -06:00
Robert Caulk
bf19055e53
Update function spelling 2022-06-06 15:56:12 -06:00
Robert Caulk
2451ed8c88
Quick bug fix 2022-06-06 15:11:54 -06:00
Matthias
0b806af487 Add orders column to btresult 2022-06-06 10:59:10 +02:00
Matthias
79107fd062 Add minimal order object serialization 2022-06-05 22:12:27 +02:00
Matthias
8369d5bedd Include open orders in json responses 2022-06-05 22:12:27 +02:00
Matthias
c0ff554d5b Cleanup old, left open dry-run orders 2022-06-05 22:12:27 +02:00
Matthias
f709222943 Properly close out orders in backtesting 2022-06-05 22:12:27 +02:00
Matthias
c499bb051f Allow empty unfilledtimeout for webserver mode 2022-06-05 19:41:17 +02:00
Matthias
a790bad1e4 Add entry_tag to leverage callback
closes #6929
2022-06-05 10:24:54 +02:00
robcaulk
d6b8801f41 fix follower bug 2022-06-05 04:40:58 +02:00
robcaulk
e8c0dcf9f3 add debug message to timerange 2022-06-03 17:14:07 +02:00
robcaulk
f2762e3b4b fix bug in return_values() 2022-06-03 16:58:51 +02:00
robcaulk
16b4a5b71f rehaul of backend data management - increasing performance by holding history in memory, reducing load on the ratelimit by only pinging exchange once per candle. Improve code readability. 2022-06-03 15:19:46 +02:00
robcaulk
15a971346d catch infinity values when filtering 2022-06-02 17:13:20 +02:00
Robert Caulk
7d41542f93
process_only_new_candles in examplestrat should be True, thanks @Bloodhunter4rc 2022-06-02 07:24:08 -06:00
robcaulk
fea39254d9 fix custom_exit (thanks @paranoidandy) 2022-06-02 14:58:45 +02:00
robcaulk
b37c31cc21 fix ta-lib issue with simultaneous method access 2022-06-02 14:37:40 +02:00
robcaulk
4ac6ef2972 make defining period intervals more user friendly and flexible 2022-06-02 13:45:29 +02:00
robcaulk
ace951bf7e another queue bug fix for fresh starts 2022-06-02 13:28:06 +02:00
Anuj Shah
eb4adeab4d fix flake8 issues 2022-06-02 11:19:29 +05:30
Anuj Shah
45c47bda60 refactor into discord rpc module 2022-06-01 21:14:48 +05:30
Anuj Shah
afd8e85835 feat: add support for discord notification 2022-06-01 15:54:32 +05:30
robcaulk
833d25bda0 Save data after queue reorg 2022-06-01 08:05:38 +02:00
robcaulk
0b0dd8dd80 Force high priority pair to be trained before anything else. 2022-06-01 07:55:05 +02:00
Surfer Admin
7fe8b7661d Display the signal candle analyzed in telegram. 2022-05-31 15:46:43 -04:00
Matthias
34a44b9dd2 Fix backtesting bug when canceling orders
closes #6911
2022-05-31 20:32:41 +02:00
Matthias
66edbcd3d5 Fix slight backtesting bug in edge-case scenarios 2022-05-31 20:08:34 +02:00
robcaulk
7523ed825e automatically detect maximum required data based on user fed indicators (to avoid NaNs in dataset for rolling indicators), add new config parameter for backtesting to let users increase their startup_candles to accommodate high timeframe indicators, add docs to explain all. Add new feature for automatic indicator duplication according to user defined intervals (exhibited in example strat and configs now). 2022-05-31 18:42:27 +02:00
Matthias
3549176370 Update missleading docstring
closes #6913
2022-05-31 17:52:45 +02:00
Matthias
88845f6d88 Fix cancel order deleting trade
if one order was successfully filled, the trade cannot be deleted.

closes #6907
2022-05-31 17:49:51 +02:00
robcaulk
9b3b08a2bb let follower purge old model files 2022-05-31 15:37:38 +02:00
robcaulk
bac4ced382 Ensure follower predictions are persistent and uniquely stored 2022-05-31 14:35:04 +02:00
robcaulk
70adf55643 Automatically detect and change follower data_path to accommodate remote systems 2022-05-31 12:35:09 +02:00
robcaulk
0306f5ca13 Add autopurge feature so that FreqAI cleans up after itself when it no longer needs old models on disk 2022-05-31 11:58:21 +02:00
Matthias
cce8d1aa4d Update get_market_leverage_tiers to be async 2022-05-31 08:48:34 +00:00
Matthias
be6e0813db Remove --strategy from analysis test 2022-05-31 06:53:03 +02:00
robcaulk
45f4f0f603 ensure follower sends back null arrays in case leader hasnt created a model file yet 2022-05-31 01:48:48 +02:00
robcaulk
29d2f59f12 fix PCA bug 2022-05-31 00:40:45 +02:00
robcaulk
606f18e5c1 Add follow_mode feature so that secondary bots can be launched with the same identifier and load models trained by the leader 2022-05-30 21:35:48 +02:00
Matthias
c285ad0e2b Remove --strategy parameters, update docs 2022-05-30 20:26:24 +02:00
robcaulk
5b4c649d43 detect variable sized dataframes coming from strat, adjust our stored/returned data accordingly 2022-05-30 13:55:46 +02:00
robcaulk
e229902381 fix bug in previous commit 2022-05-30 12:48:22 +02:00
robcaulk
a20651efd8 Increase performance by only predicting on most recent candle instead of full strat provided dataframe. Collect predictions and store them so that we can feed true predictions back to strategy (so that frequi isnt updating historic predictions based on newly trained models). 2022-05-30 11:37:05 +02:00
Matthias
8e2c7e1298 extract detect_parameters to separate function 2022-05-30 07:26:26 +02:00
Matthias
eaa656f859 Hyperoptable parameters can be instance attributes 2022-05-30 07:07:47 +02:00
Matthias
386d3e0353 Rename stop/roi loading method 2022-05-30 06:52:44 +02:00
Matthias
ad8ff10a05 Minor doc changes 2022-05-30 06:32:46 +02:00
robcaulk
2f1a2c1cd7 allow users to store data in custom formats, update spot config to reflect better target horizon to training period ratio 2022-05-30 02:12:31 +02:00
robcaulk
d59eac3321 revert a79032b 2022-05-29 21:33:38 +02:00
robcaulk
a79032bf75 fixing bug in training queue 2022-05-29 20:19:32 +02:00
Matthias
056047f635 Fix --help 2022-05-29 20:07:02 +02:00
robcaulk
3f72263278 allow pairs deeper in the queue to get trained if the higher priority pairs dont need training 2022-05-29 20:02:43 +02:00
robcaulk
cc6cae47ec allow pairs deeper in the queue to get trained if the higher priority pairs dont need training 2022-05-29 19:49:43 +02:00
robcaulk
4eb4753e20 allow subdaily retraining for backtesting 2022-05-29 17:44:35 +02:00
froggleston
9a068c0b14 Add test for each analysis group, remove default table output if not indicator-list 2022-05-29 16:25:31 +01:00
Matthias
e6affcc23e Move parameter file loading to hyper-mixin 2022-05-29 16:39:52 +02:00
Matthias
1ee08d22d2 Delay parameter init
closes #6894
2022-05-29 16:39:52 +02:00
robcaulk
0aa7162055 ensure the prediction is reset in the pair_dict after any trade exit, not just custom_exit 2022-05-29 16:36:46 +02:00
robcaulk
fe36b08fce fix key error in example strat 2022-05-29 16:26:34 +02:00
robcaulk
ce365eb9e3 improve example strat so that it has dynamic buy and sell logic according to original prediction 2022-05-29 14:45:46 +02:00
froggleston
df1c36e5aa Change command name, use load_backtest_stats for strategy resolving 2022-05-29 11:54:27 +01:00
froggleston
c59209a01a Merge branch 'buy_reasons' of github.com:froggleston/freqtrade into buy_reasons 2022-05-29 11:20:32 +01:00
froggleston
e7c5818d16 First pass changes for cleaning up 2022-05-29 11:20:11 +01:00
Matthias
a875a7dc40 Use unified stopPrice for binance 2022-05-29 11:01:01 +02:00
Matthias
f64f2b1ad8 Fix /stats Formatting issue in multi-message settings 2022-05-29 10:34:22 +02:00
robcaulk
4eb29c8810 Dont reset pair priority if it doesnt successfully train 2022-05-28 18:34:26 +02:00
robcaulk
83dd453723 catch errors occuring on background thread, and make sure to keep the ball rolling. Improve pair retraining queue. 2022-05-28 18:26:19 +02:00
robcaulk
e54614fa2f remove remnants of single threaded version, ensure pair queue priority is checked before retraining 2022-05-28 14:55:07 +02:00
robcaulk
2a4d1e2d64 fix bug in setting new timerange for retraining 2022-05-28 12:23:26 +02:00
robcaulk
7870a86e9a fix live retraining bug 2022-05-28 11:38:57 +02:00
robcaulk
0bf915054d handle key check correctly 2022-05-28 11:22:32 +02:00
robcaulk
c5a16e91fb throw user error if user tries to load models but feeds the wrong features (while using PCA) 2022-05-28 11:11:41 +02:00
robcaulk
b8f9c3557b dirty dirty, dont look here (hacking a flag to avoid reloading leverage_tiers in dry/live) 2022-05-27 13:56:34 +02:00
robcaulk
891fb87712 give load_cached_data_for_updating the right flags to avoid redownloading data in dry/live 2022-05-27 13:38:22 +02:00
robcaulk
65fdebab75 let load_pairs_histories load futures candles in live 2022-05-27 13:01:33 +02:00
robcaulk
c080571b7a help futures go dry/live with auto download feature 2022-05-27 12:23:32 +02:00
Matthias
24cf044646 Fix bybit spot mode 2022-05-27 08:18:04 +00:00
robcaulk
8a501831d6 fix the error logic on previous commit 2022-05-27 01:15:55 +02:00
robcaulk
23c30dbc10 add error for user trying to backtest with backtest_period<1 2022-05-27 00:43:52 +02:00
robcaulk
6193205012 fix bug for target_mean/std array merging in backtesting 2022-05-26 21:07:50 +02:00
Matthias
43b7955fc2 Fully rely on pathlib 2022-05-26 19:37:55 +02:00
Matthias
682daa4e94 Reset logging mixin to avoid random test failure 2022-05-26 18:05:40 +02:00
Stefano Ariestasia
e1c6cf5f91 fix typo 2022-05-26 10:12:50 +09:00
Matthias
537d10c627 Improve some typing 2022-05-25 20:43:43 +02:00
Matthias
3e66275c98 Refactor bot_start to separate function
to be reused further ...
2022-05-25 20:01:21 +02:00
robcaulk
ff531c416f reduce complexity inside start_download_data() in an effort to appease flake8 2022-05-25 15:31:50 +02:00
robcaulk
d79983c791 try to pass flake8 2022-05-25 14:55:19 +02:00
robcaulk
7593339c14 small cleanup 2022-05-25 14:42:46 +02:00
robcaulk
b79d4e8876 Allow user to go live and start from pretrained models (after a completed backtest) by simply reusing the identifier config parameter while dry/live. 2022-05-25 14:40:32 +02:00
robcaulk
7486d9d9e2 proper validation of freqai config parameters 2022-05-25 12:37:25 +02:00
Matthias
b2968df5dc Fix some type problems 2022-05-25 10:13:37 +00:00
robcaulk
7ff3258607 remove assertions, log error if user has not assigned freqai in config, fix stratify bug 2022-05-25 11:43:45 +02:00
robcaulk
35bed842cb cleanup, add clarity to comments and docstrings 2022-05-25 11:31:03 +02:00
froggleston
2873ca6d38 Add cleanup, adjust _print_table for indicators, add rsi to test output 2022-05-25 09:57:12 +01:00
froggleston
3adda84b96 Update docs, add test 2022-05-24 20:27:15 +01:00
Matthias
d6773bc32c
Merge pull request #6886 from freqtrade/fix/typing
Fix/typing
2022-05-24 19:41:59 +02:00
Matthias
a8ee77cd5e Simplify backtesting typechecking 2022-05-24 19:13:35 +02:00
robcaulk
58b5abbaa6 improve multithreaded training queue system 2022-05-24 15:28:38 +02:00
robcaulk
31ae2b3060 alleviate FutureWarning in sklearn about ensuring svm model features are passed with identical order 2022-05-24 14:46:16 +02:00
froggleston
8c03ebb78f Fix group 0 table, add pathlib.Path use 2022-05-24 12:48:13 +01:00
robcaulk
255d35976e add priority metadata to pairs to avoid a sync of train time + train period 2022-05-24 12:58:53 +02:00
froggleston
80c6190c05 Fix analyze_commands setup 2022-05-24 11:47:26 +01:00
froggleston
ae1ede58da Fix import order 2022-05-24 11:47:26 +01:00
froggleston
a1a09a802b Add analyze_commands 2022-05-24 11:47:25 +01:00
froggleston
9488e8992d First commit for integrating buy_reasons into FT 2022-05-24 11:47:25 +01:00
robcaulk
059c285425 paying closer attention to managing live retraining on separate thread without affecting prediction of other coins on master thread 2022-05-24 12:01:01 +02:00
Matthias
7f3853bbcd
Merge pull request #6883 from freqtrade/makeProcessCandlesTrue
Change default value of process_only_new_candles to True since False …
2022-05-24 07:03:14 +02:00
Matthias
904f094b80 Don't reassign method, but implement it properly 2022-05-24 06:59:54 +02:00
Matthias
23e089061b
Merge pull request #6870 from freqtrade/should_exit_list
Should exit list
2022-05-24 06:57:50 +02:00
Matthias
0a713faca8 Fix some type errors 2022-05-24 06:54:16 +02:00
Matthias
f1a72e448a Align interfaces and strategy templates 2022-05-24 06:54:16 +02:00
Matthias
3f68c3b68e Update some types 2022-05-24 06:54:16 +02:00
Matthias
7f4161ff78 Add typehints to strategy wrapper 2022-05-24 06:54:16 +02:00
Matthias
07ec3b27fe Add typing information to retrier decorator 2022-05-24 06:54:16 +02:00
robcaulk
b0d2d13eb1 improve data persistence/mapping for live/dry. This accommodates quick reloads after crash and handles multi-pair cleanly 2022-05-23 21:05:05 +02:00
Matthias
42ae8ba6fb Refactor hyperopt parameters to separate file 2022-05-23 20:18:09 +02:00
robcaulk
e1c068ca66 add config asserts, use .get method with default values for optional functionality, move data_cleaning_* to freqai_interface (away from user custom pred model) since it is controlled by config params. 2022-05-23 12:07:09 +02:00
robcaulk
5c4014ee62 Change default value of process_only_new_candles to True since False is an uncommon usecase for expert strategy devs 2022-05-23 10:24:58 +02:00
robcaulk
dede128648 set process_only_new_candles to true in example strat 2022-05-23 10:15:59 +02:00
robcaulk
ee3cdd0ffe more cleanup 2022-05-23 09:55:58 +02:00
Matthias
eb5fe9e3ae
Merge pull request #6857 from froggleston/develop
Add support for fudging unavailable funding rates, allowing backtesti…
2022-05-23 06:31:51 +02:00
robcaulk
3587bd82e1 cleanup superceded code 2022-05-23 00:10:36 +02:00
robcaulk
af0cc21af9 Enable hourly/minute retraining in live/dry. Suppress catboost folder output. Update config + constants + docs to reflect updates. 2022-05-23 00:06:26 +02:00
Matthias
e3beaae8be update hyperopt typing 2022-05-22 19:32:32 +02:00
Matthias
0b5544ef9e Stoploss fill should fill as "filled" notification
Closes #6873
2022-05-22 19:18:12 +02:00
robcaulk
42d95af829 Aggregated commit. Adding support vector machine for outlier detection, improve user interface to dry/live, better standardization, fix various other bugs 2022-05-22 17:51:49 +02:00
Matthias
938a66511a Update Documentation for new confirm_trade_exit behavior 2022-05-22 11:28:11 +02:00
Matthias
3692fcd3d5 Improve exit signal sequence 2022-05-22 11:01:18 +02:00
Matthias
ce3bfd59f5 Add explicit should_sell test 2022-05-22 10:31:29 +02:00
Matthias
bdb904e714 Should_exit should return all sell signals 2022-05-22 10:17:49 +02:00
Matthias
1315d02437 Fix startup sending "longed" messages for open stoplosses 2022-05-22 09:01:46 +02:00
Matthias
26d394ca74 Add liquidation Price to api response 2022-05-22 08:54:27 +02:00
Matthias
1ff1e3b43d
Merge pull request #6869 from freqtrade/update_levtiers
Update leveraged tiers
2022-05-22 08:35:02 +02:00
Matthias
f006978caf Be more explicit in default value 2022-05-21 17:35:49 +02:00
Matthias
97abcf4b32 Add documentation for leverage_tiers update 2022-05-21 16:10:00 +02:00
Matthias
963cc17c18 Update leveraged tiers 2022-05-21 16:05:00 +02:00
Matthias
0d388b561b Add test for "combine_funding_and_mark", fix bug 2022-05-21 09:03:30 +02:00
Matthias
2df42a3035 Move "funding fillup" logic to exchange class 2022-05-21 08:50:39 +02:00
Matthias
6bd5535d6c Use exchange method to combine funding and mark candles 2022-05-21 08:31:34 +02:00
froggleston
c499a92f57 Remove surplus mark columns, and make fillna on funding rate only 2022-05-20 11:48:53 +01:00
Matthias
0138114fc2
Merge pull request #6866 from freqtrade/dry_order_db
Dry orders from db
2022-05-20 12:10:09 +02:00
Matthias
c3e3188c6a Rename variable 2022-05-20 11:30:25 +02:00
robcaulk
c5ecf94177 move live retraining to separate thread. 2022-05-19 21:15:58 +02:00
Matthias
46ea135b6b Update dry-run considerations 2022-05-19 20:10:11 +02:00
Matthias
219363fffb Check for both ask and bid in SpreadFilter
closes #6865
2022-05-19 19:53:23 +02:00
Matthias
56a73575a1 Add explicit test for order_to_ccxt 2022-05-19 19:29:39 +02:00
robcaulk
1fae6c9ef7 keep model accessible in memory to avoid loading objects from disk during live/dry 2022-05-19 19:27:38 +02:00
robcaulk
67eb94c69d download-data will now check if freqai is active in config, and if so will also download data for corr_pairlist 2022-05-19 17:55:00 +02:00
robcaulk
89eacf2f47 Retrain model if FreqAI found a pretrained model but user strategy is not passing the expected features (user has changed the features in the strategy but has passed a the same config[freqai][identifier]). Logger warning output to user. 2022-05-19 17:15:50 +02:00
Matthias
a3d9384bc0 Remove clean-dry-run code 2022-05-19 06:56:34 +02:00
Matthias
0a95ef6ab2 Don't reset open orders in dry-run on restart 2022-05-19 06:42:38 +02:00
froggleston
363098d32d Fix reversed makr/funding_rate columns 2022-05-18 12:56:43 +01:00
froggleston
736f9f4972 Fix docs and add outer join support for merging funding rates across full timerange 2022-05-18 12:47:37 +01:00
மனோஜ்குமார் பழனிச்சாமி
2b61aa282a Removed None in dict.get()
https://stackoverflow.com/a/12631641

Extra Changes: freqtrade\freqtradebot.py:70
freqtrade\plugins\pairlistmanager.py:31
2022-05-18 03:41:10 +05:30
froggleston
37e4ede65c Fix flake issues 2022-05-17 22:32:17 +01:00
froggleston
bb758da940 Add support for fudging unavailable funding rates, allowing backtesting of timeranges where futures candles are available, but rates are not 2022-05-17 22:05:33 +01:00
Matthias
c81b960791 Fix some typos 2022-05-17 19:58:36 +02:00
robcaulk
db66b82f6f accept open-ended timeranges from user 2022-05-17 19:50:06 +02:00
robcaulk
d1d451c27e auto populate features based on a prepended % in the strategy (remove feature assignment from config). Update doc/constants/example strategy to reflect change 2022-05-17 18:15:03 +02:00
robcaulk
8664e8f9a3 create a prediction_models folder where basic prediction models can live (similar to optimize/hyperopt-loss. Update resolver/docs/and gitignore to accommodate change 2022-05-17 17:13:38 +02:00
eSeR1805
34684ec86a
Merge branch 'freqtrade:develop' into feat_bt_cancel_entry_reporting 2022-05-17 14:09:57 +03:00
eSeR1805
0585b378b3
BT: Report canceled/replaced orders also. 2022-05-17 14:07:42 +03:00
eSeR1805
6e8f24f6a7
BT: track canceled/replaced orders also. 2022-05-17 14:07:02 +03:00
Matthias
8d46e16c46
Merge pull request #6848 from freqtrade/datahandler_case
Datahandler case insensitive
2022-05-17 09:34:11 +02:00
Matthias
1cd8ebc8c8
Merge pull request #6847 from freqtrade/use_Precise
Use precise
2022-05-17 09:33:39 +02:00
Matthias
6fd003c655
Merge pull request #6851 from eSeR1805/feat_bt_cancel_entry_reporting
BT: Reporting canceled trade entries
2022-05-17 07:05:26 +02:00
மனோஜ்குமார் பழனிச்சாமி
7cd0f8a7b1
Merge branch 'develop' into patch-10 2022-05-17 08:07:13 +05:30
eSeR1805
f2e2e57237
Report trade entries canceled by user. 2022-05-17 01:41:31 +03:00
eSeR1805
fb7c0792c0
Track trade entries canceled by user. 2022-05-17 01:41:01 +03:00
Matthias
76637d3939 Simplify timeframe-transition 2022-05-16 20:10:52 +02:00
Matthias
2e65a1793d Add fallback to load 1M files as well as 1Mo files 2022-05-16 19:48:27 +02:00
Matthias
a1048fb619 Store monthly candles as "Mo" 2022-05-16 19:39:43 +02:00
Matthias
9607d04279 Improve ccxt imports 2022-05-16 19:22:07 +02:00
Matthias
c8e0fc926d Update to do Builtin Precise math 2022-05-16 19:21:38 +02:00
Matthias
a793cf8f05 Use ccxt's "precise" to do precise math 2022-05-16 19:21:38 +02:00
Matthias
528509f809 Extract get_price_side from get_rate 2022-05-16 19:20:13 +02:00
Stefano Ariestasia
2cb8eecf18 add space 2022-05-16 07:43:36 +09:00
Stefano Ariestasia
e21f6a7787 missing newline 2022-05-16 07:28:40 +09:00
Matthias
3d36d35e30
Merge pull request #6825 from freqtrade/okx_history
Okx history
2022-05-15 19:27:45 +02:00
robcaulk
80dcd88abf allow user to run config from anywhere on their system 2022-05-15 17:42:15 +02:00
robcaulk
a8022c104a give beta testers more information in the doc 2022-05-15 17:42:15 +02:00
robcaulk
a7029e35b5 ensure informative pairs includes any combination of whitelist - corr_pairlist 2022-05-15 17:42:15 +02:00
robcaulk
9b3e5faebe create more flexible whitelist, avoid duplicating whitelist features into corr_pairlist, update docs 2022-05-15 17:42:15 +02:00
robcaulk
22bd5556ed add self-retraining functionality for live/dry 2022-05-15 17:42:15 +02:00
robcaulk
178c2014b0 appease mypy 2022-05-15 17:42:15 +02:00
robcaulk
a4f5811a5b fix flake8 issue in arguments.py 2022-05-15 17:42:15 +02:00
robcaulk
aae233bd6c try passing the check tests 2022-05-15 17:42:15 +02:00
robcaulk
f653ace24b another attempt at fixing datalength bug 2022-05-15 17:42:15 +02:00
robcaulk
b08c0888bb add USERPATH_FREQAIMODELS, remove return values from @abstract methods 2022-05-15 17:42:15 +02:00
robcaulk
b03c7b514d optional style for interfacing freqai with backtesting 2022-05-15 17:42:15 +02:00
robcaulk
e9a7b68bc1 revert constants.py and add changes 2022-05-15 17:42:15 +02:00
Matthias
a0b25938f4 Fix exit_reason assignment in backtesting 2022-05-15 17:41:59 +02:00
Matthias
a8f064a8cb Fix exit_reason assignment in live mode 2022-05-15 17:41:59 +02:00
robcaulk
3020218096 fix bug on backtest timerange 2022-05-15 17:41:34 +02:00
robcaulk
00ff0c9b91 ensure user defined timerange truncates final backtest so that we arent mismatching data lengths upon return to strategy. Rename DataHandler class to FreqaiDataKitchen 2022-05-15 17:41:34 +02:00
robcaulk
def71a0afe auto build full_timerange and self manage training_timerange 2022-05-15 17:41:34 +02:00
robcaulk
764f9449b4 fix logger, debug some flake8 appeasements 2022-05-15 17:41:34 +02:00
robcaulk
29c2d1d189 use logger in favor of print 2022-05-15 17:38:58 +02:00
robcaulk
99f7e44c30 flake8 passing, use pathlib in lieu of os.path to accommodate windows/mac OS 2022-05-15 17:38:58 +02:00
robcaulk
2600ba4e74 remove unused remnants 2022-05-15 17:38:58 +02:00
robcaulk
630d201546 remove trained_stake 2022-05-15 17:38:58 +02:00
robcaulk
b40f8f88ac cleaning and bug fixing 2022-05-15 17:38:58 +02:00
robcaulk
fc837c4daa add freqao backend machinery, user interface, documentation 2022-05-15 17:38:58 +02:00
Matthias
706994340f Fix bad docstring 2022-05-15 17:06:40 +02:00
Matthias
ebab02fce3
Merge pull request #6827 from eSeR1805/fix_readjust_entry_bt_sl
Fix: Refresh SL on entry order replacement
2022-05-15 16:41:18 +02:00
Matthias
18fd3bb333 Update stoploss handling for entry-order adjustment 2022-05-15 15:45:39 +02:00
Matthias
9143e9ecb1 Add some safety measures for new startup_candles verification 2022-05-15 15:12:29 +02:00
Matthias
d60d0f64d2 Revert ohlcv_candle_limit logic for okx 2022-05-14 19:35:06 +02:00
Matthias
116b58e97c add "date_minus_candles" method 2022-05-14 19:30:42 +02:00
Matthias
3b14439240 Slightly improve performance of order adjusts
Avoind  2nd call to `get_rate()`.

closes #6821
2022-05-14 16:16:32 +02:00
eSeR1805
c27e0a0a1b
Allow SL refresh only if no filled entry orders. 2022-05-14 16:56:56 +03:00
eSeR1805
1c20fb7638
Refresh open_rate and stoploss on order replacement. 2022-05-14 16:37:04 +03:00
Matthias
5767d652bf Add explicit test and document behavior 2022-05-14 14:18:51 +02:00
Matthias
2a1368d508 Offsetfilter: add number_assets parameter
closes #6824
2022-05-14 14:16:13 +02:00
Matthias
bb1b283d95 Update some ohlcv_candle_limit calls 2022-05-14 13:44:10 +02:00
Matthias
111b04c9e6 Okx - conditional candle-length 2022-05-14 09:51:44 +02:00
Matthias
64668b11da add ohlcv_has_history - disabling kraken downloads 2022-05-14 09:10:38 +02:00
மனோஜ்குமார் பழனிச்சாமி
64670726a6
flake8 fix 2022-05-13 21:52:26 +05:30
மனோஜ்குமார் பழனிச்சாமி
71a80cab3a
fixed variable naming style 2022-05-13 21:19:40 +05:30
மனோஜ்குமார் பழனிச்சாமி
8a3c2c6cad
Corrected docstring
Discussed in Discord
2022-05-13 19:32:52 +05:30
Matthias
c299601ece Add warning about OKX futures backtesting data 2022-05-13 07:03:18 +02:00
Matthias
5444f4ee6f
Merge pull request #6793 from mkavinkumar1/log
logged balance details
2022-05-12 19:11:28 +02:00
Matthias
891900c186
Merge pull request #6812 from freqtrade/db_migrate
Db migrate
2022-05-11 19:54:31 +02:00
Matthias
1fc041d0d6
Fix formatting issue 2022-05-11 19:39:56 +02:00
Matthias
ae463fcdf2
Merge pull request #6792 from mkavinkumar1/rpc
consistent exchange name
2022-05-11 19:23:36 +02:00
Matthias
f374c9da70 PR cleanup 2022-05-11 06:30:40 +02:00
Matthias
044afdf7af Add better test scenario 2022-05-10 20:27:24 +02:00
Matthias
31cce741ac Add sequence migration 2022-05-10 07:13:51 +02:00
Matthias
269630e755 Add preliminary documentation for database conversion 2022-05-10 07:13:42 +02:00
Matthias
0958c06b84 Implement database migration to other system 2022-05-09 20:58:40 +02:00
Matthias
c3b0f6b64b Add feature shell for database conversion 2022-05-09 20:58:40 +02:00
Matthias
0f499469fc
Merge pull request #6796 from freqtrade/model_reorg
Model reorg
2022-05-09 20:15:45 +02:00
Matthias
30d6eeffd0 Fix migration bug 2022-05-08 17:49:13 +02:00
Matthias
b58e811b14 Move trade/order Models to their own class 2022-05-08 17:45:20 +02:00
Matthias
af1a5e0449 Extract base and Pairlock from models file 2022-05-08 17:38:06 +02:00
Matthias
3221726d85 Update migration to use boolean value
closes #6794
2022-05-08 17:29:42 +02:00
Matthias
ab91758c7e
Merge pull request #6790 from eSeR1805/profit_reporting
Report profit only on filled entries.
2022-05-08 17:25:42 +02:00
Matthias
4a7515e66a Add test for 0.0 case 2022-05-08 16:04:06 +02:00
மனோஜ்குமார் பழனிச்சாமி
f43ae0ea43 logged balance details 2022-05-08 13:53:07 +05:30
மனோஜ்குமார் பழனிச்சாமி
d79b90a98f consistent exchange name 2022-05-08 12:46:58 +05:30
Matthias
45b328af2e explicitly call cleanup when cleaning backtest 2022-05-08 08:11:39 +02:00
eSeR1805
bfc7898654
Report profit only on filled entries. 2022-05-07 21:56:22 +03:00
Matthias
c9498d0117
Merge pull request #6692 from eSeR1805/feat_readjust_entry
Feature: Readjust Entry Order
2022-05-07 20:11:20 +02:00
Matthias
277e07589e update/fix some comments and docs 2022-05-07 17:47:37 +02:00
Matthias
f5f599c7f0 Add LowProfitPairs only_per_side option 2022-05-07 15:25:15 +02:00
Matthias
dc0c1bf87d Only fetch accounts when authenticated. 2022-05-07 13:17:27 +02:00
Matthias
149704e748 Fix wrong type 2022-05-07 11:39:47 +02:00
Matthias
6fdcf3a10a Support both position modes on OKX 2022-05-07 10:58:41 +02:00
Matthias
2da284b921 Properly type side for create_order 2022-05-07 10:02:54 +02:00
Matthias
5b3eaa3003 Ensure advanced strategy template is runnable 2022-05-06 06:42:08 +02:00
Matthias
d11c44940e Slightly reword docs
remove some Note-boxes - people tend to skip these.
2022-05-06 06:42:01 +02:00
Matthias
2d9be6dace move open_rate updating to close_bt_order 2022-05-05 19:50:16 +02:00
eSeR1805
29f1edbde7
Cleanup. Remove stray new line. 2022-05-05 12:24:32 +03:00
eSeR1805
495708df76
Merge branch 'develop' into feat_readjust_entry 2022-05-05 12:20:09 +03:00
eSeR1805
2bed0eab0c
BT: Update trade open_rate on first filled order. 2022-05-05 12:19:05 +03:00
eSeR1805
25c74e26d1
Models:Trade: Revert trade open_rate update. 2022-05-05 12:18:19 +03:00
Matthias
1a37c6ff42 Bump ccxt to 1.81.43
fixes bug in okx live liquidation pricing
2022-05-05 07:05:00 +02:00
eSeR1805
ae01afdd0f
Models:Trade: Fix open_rate updates. 2022-05-04 22:05:53 +03:00
eSeR1805
496bf84e3a
Merge branch 'develop' into feat_readjust_entry 2022-05-04 21:43:41 +03:00
eSeR1805
dbecc097df
Models:Trade: Update trade open_rate based on lastest order. 2022-05-04 21:34:45 +03:00
Sam Germain
e8803477df exchange/exchange add param taker_or_maker to add_dry_order_fee 2022-05-03 23:56:40 -06:00
Mark Regan
ce035a5947
Add bot_loop_start() call in plotting.py
plotting.py was missing a call to strategy.bot_loop_start() resulting in strategies using this callback to not work.

Made changes and confirmed plotting now works for strategies using bot_loop_start() callback.

LMK if anything else needed for PR.
2022-05-03 23:34:12 +01:00
Matthias
2705096ce6
Merge pull request #6777 from freqtrade/fix/contractsizefee
Fix fee handling for futures trades
2022-05-03 20:34:37 +02:00
Matthias
091cb4fb8d Reduce no stake amount verbosity
closes #6768
2022-05-03 19:42:17 +02:00
Matthias
eb996a152a Fix fee handling for futures trades 2022-05-03 19:06:17 +02:00
Matthias
88c8fe5570
Merge pull request #6715 from nicolaspapp/feat/relative-drawdown
Add relative drawdown
2022-05-02 21:09:14 +02:00
Matthias
3f64c6307f Maintain compatibility with old backtest results 2022-05-02 20:01:44 +02:00
Matthias
1e2523af61 Fix some assumptions on the data
available_capital is not guaranteed to be available, while dry-run-wallet is.
2022-05-02 19:44:14 +02:00
eSeR1805
52d510c331
Merge branch 'develop' into feat_readjust_entry 2022-05-02 18:30:05 +03:00
eSeR1805
4c74601073
Freqtradebot: Cleanup stray debug messages. 2022-05-02 18:22:41 +03:00
eSeR1805
59397cdd19
Freqtradebot: Fix full cancel logging location. 2022-05-02 18:09:28 +03:00
Matthias
2a6efab8a2 Don't use deprecated abstractclassmethod decorator 2022-05-02 06:24:52 +00:00
eSeR1805
04c51d2d1a
Merge branch 'develop' into feat_readjust_entry 2022-05-01 21:42:15 +03:00
Nicolas Papp
f9244aad92 Fix on max drawdown formula to match tests 2022-05-01 12:25:53 -03:00
eSeR1805
4e43194dfe
BT: Refactor open order management. 2022-05-01 18:06:20 +03:00
Matthias
582e30bca6
Merge pull request #6716 from freqtrade/pairlocks_direction
Pairlocks direction
2022-05-01 17:04:20 +02:00
Matthias
910addd02b
Merge pull request #6753 from freqtrade/download_prepend
Download prepend
2022-05-01 15:15:16 +02:00
Matthias
995c48b642 Merge branch 'develop' into pairlocks_direction 2022-05-01 14:59:04 +02:00
eSeR1805
9d205132d0
Revert unintended comment change. 2022-05-01 12:10:11 +03:00
eSeR1805
8c19953cdd
Quick exit when order should be maintained. 2022-05-01 12:08:19 +03:00
Matthias
53a2f55cf0 Merge branch 'develop' into pr/nicolaspapp/6715 2022-05-01 10:03:10 +02:00
Matthias
d5fc923dcb Properly validate stoploss existence for optimize commands
closes #6740
2022-05-01 09:53:46 +02:00
Matthias
5c1ac3cf95 Fix caching bug with freqUI backtesting 2022-04-30 19:55:13 +02:00
Matthias
8b5d454b50 Fix subtle bug in trades download 2022-04-30 17:44:57 +02:00
Matthias
e49b3ef051 Improve message formatting 2022-04-30 17:35:11 +02:00
Matthias
f6a7e6b785 Add prepend option to download-data 2022-04-30 17:32:50 +02:00
Matthias
11d447cd5a Add support for download-data "until" 2022-04-30 15:42:41 +02:00
Matthias
4580127fa8 Small refactor 2022-04-30 14:51:57 +02:00
Matthias
c6c569b772 chore: split BTAnalyais to metrics 2022-04-30 14:47:27 +02:00
Matthias
4262f84744 Merge branch 'develop' into pr/nicolaspapp/6715 2022-04-30 14:22:18 +02:00
Matthias
2acb68e6e2 Move hyperopt-loss functions to their own package 2022-04-30 13:59:23 +02:00
eSeR1805
3be2afdd88
Merge branch 'develop' into feat_readjust_entry 2022-04-30 13:39:23 +03:00
eSeR1805
ad0c5d9440
Refactor entry adjustment for backtesting. 2022-04-30 13:38:17 +03:00
eSeR1805
f9977c26e7
Full cancel only for non DCA trades. 2022-04-30 12:55:03 +03:00
Matthias
09b74cebce Move edge bot_loop_start to edge_cli
(otherwise it's called twice when running trade mode with edge on).
2022-04-30 08:55:07 +02:00
Sam Germain
8756e7d9a1 flake8 linting 2022-04-29 23:35:08 -06:00
Sam Germain
4a6f1e90c3 Merge branch 'develop' into bot-start 2022-04-29 22:23:42 -06:00
Matthias
43049e0465 Evict cache if parameter file changed
closes #6735
2022-04-29 19:44:17 +02:00
Matthias
fbd142844f Refactor bt-caching stuff to it's own module 2022-04-29 19:37:13 +02:00
eSeR1805
09089b160e
Merge branch 'develop' into feat_readjust_entry 2022-04-29 13:02:38 +03:00
Matthias
48ff788e82 Clarify that stoploss is required
closes #6740
2022-04-29 09:53:05 +00:00
Matthias
21df1b0db3 Use ORJSON for http responses 2022-04-29 07:17:31 +02:00
eSeR1805
17650d7e60
Maintain existing order. Update functionality and documentation 2022-04-29 00:10:17 +03:00
eSeR1805
eb23170c43
Merge branch 'develop' into feat_readjust_entry 2022-04-28 23:06:52 +03:00
Matthias
d1a61f9c61 Don't start futures backtest if leverage-tiers don't contain pair 2022-04-28 20:05:19 +02:00
Matthias
cb5c3316d1 Simplify log output 2022-04-28 19:43:52 +02:00
Matthias
e0d86307cb
Merge pull request #6732 from freqtrade/remove_duplicate_liqprice_call
Don't call interest_rate and isolated_liq twice
2022-04-28 07:38:32 +02:00
Matthias
2ef1181e16 Simplify trade __repr__ 2022-04-28 07:33:30 +02:00
Matthias
1e83589641 Fix hyperopt 2022-04-28 06:59:03 +02:00
Matthias
ca49821df0 Fix race condition for loop 2022-04-28 06:29:14 +02:00
Matthias
46855221aa Fix rounding issue with contract-sized pairs for dry-run orders 2022-04-27 19:58:19 +02:00
Matthias
2c0a7c5d74 Don't call interest_rate and isolated_liq twice 2022-04-27 17:13:58 +02:00
Matthias
30c9dc6975 Fix exit-signa being assigned when tag is set but no signal is present. 2022-04-27 13:53:11 +02:00
Matthias
ad7fbfab1b Slightly improved styling 2022-04-27 13:27:33 +02:00