Commit Graph
100 Commits
Author SHA1 Message Date
Robert Caulk 4ef2ed2f1b Merge pull request #7085 from wagnercosta/feat/freqai
freqai: fix issue when bot restarts with same identifier, does not load predi…
2022-07-15 20:00:53 +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
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
robcaulk d9acdc9767 remove excess, increase no model warning clarity 2022-07-06 18:20:21 +02:00
robcaulk 4cac67fd66 Catch infrequent issue associated with grabbing first candle 2022-07-05 12:43:33 +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
robcaulk 4ff0ef7359 fix bug returning multiple targets for training 2022-07-03 12:15:59 +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
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
robcaulk 3599d18ff6 fix bug in follow_mode, thanks @blood4rc 2022-06-18 12:05:28 +02:00
robcaulk 6da7a98857 add docstrings to new functions, remove superceded code 2022-06-17 16:16:23 +02:00
robcaulk 5e914d5756 improve model youth by constantly scanning pairs in dry/live and always training new models. Fix bug in DI return values 2022-06-17 16:06:51 +02:00
robcaulk f631ae911b add model expiration feature, fix bug in DI return values 2022-06-17 14:55:40 +02:00
robcaulk 0b0688a91e ensure scanning purges models 2022-06-16 16:12:38 +02: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
robcaulk eb47c74096 merge datarehaul into main freqai branch 2022-06-10 20:26:19 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
robcaulk 255d35976e add priority metadata to pairs to avoid a sync of train time + train period 2022-05-24 12:58:53 +02: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
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
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