Wagner Costa Santos
14b96aaa38
backtesting live models - fix ci issues
2022-09-26 19:52:59 -03:00
Wagner Costa Santos
290afd9699
backtest_live_models - fix typo
2022-09-26 19:21:53 -03:00
Wagner Costa Santos
0318ca9f12
backtest_live_models - fix typo
2022-09-26 19:08:25 -03:00
Wagner Costa Santos
22bef71d5d
backtest_live_models - add function comments and tests
2022-09-26 19:01:24 -03:00
Wagner Costa Santos
ec947ad65c
remove commented code - backtest_live_models
2022-09-25 23:47:27 -03:00
Wagner Costa Santos
5880f7a638
backtest_live_models - params validation and get timerange from live models in BT
2022-09-25 23:14:00 -03:00
Wagner Costa Santos
f3f3917da3
Merge branch 'develop' into backtest_live_models
2022-09-25 20:05:26 -03:00
robcaulk
48e89e68b9
fix typos
2022-09-25 20:22:19 +02:00
Wagner Costa Santos
0ed7b2bfc3
change start_backtesting to handle backtest_live_models
2022-09-25 10:35:55 -03:00
robcaulk
873d2a5069
no model save backtest, plot features backtest, ensure inlier plays nice, doc
2022-09-25 11:18:10 +02:00
Wagner Costa Santos
7f116db95e
added generic function to get timerange from existent models
2022-09-24 13:01:53 -03:00
Wagner Costa Santos
d9c16d4888
Merge branch 'develop' into backtest_live_models
2022-09-24 12:30:55 -03:00
Wagner Costa Santos
3ee7eb63f7
starting backtest live models
2022-09-24 12:28:52 -03:00
Matthias
585342f193
Merge pull request #7454 from freqtrade/fix_backtesting_dfsize_freqai
...
Ensure the DF has the same size in backtesting FreqAI
2022-09-24 16:17:39 +02:00
paranoidandy
2cc00a1a2c
Allow use of --strategy-list with freqai, with warning ( #7455 )
...
* Allow use of --strategy-list with freqai, with warning
* ensure populate_any_indicators is identical for resused identifiers
* use pair instead of metadata["pair"]
Co-authored-by: robcaulk <rob.caulk@gmail.com>
2022-09-24 13:21:01 +02:00
Matthias
6643d90e64
simplify freqAI start_backtesting
2022-09-24 10:34:14 +02:00
robcaulk
647200e8a7
isort
2022-09-23 19:30:56 +02:00
robcaulk
77c360b264
improve typing, improve docstrings, ensure global tests pass
2022-09-23 19:17:27 +02:00
robcaulk
9c361f4422
increase test coverage for RL and FreqAI
2022-09-23 18:04:43 +02:00
Robert Caulk
f5cd8f62c6
Remove unused code from BaseEnv
2022-09-23 10:24:39 +02:00
Emre
a4eaff4da6
Add training elapsed time
2022-09-23 01:18:34 -07:00
robcaulk
7295ba0fb2
add test for Base4ActionEnv
2022-09-22 23:42:33 +02:00
robcaulk
eeebb78a5c
skip darwin in RL tests, remove example scripts, improve doc
2022-09-22 21:16:21 +02:00
robcaulk
ea8e34e192
Merge branch 'develop' into dev-merge-rl
2022-09-22 19:46:50 +02:00
th0rntwig
71e6c54ea4
Normalise distances before Weibull fit ( #7432 )
...
* Normalise distances before Weibull
* Track inlier-metric params
2022-09-22 18:11:50 +02:00
Wagner Costa Santos
b1dbc3a65f
remove function remove_training_from_backtesting and ensure BT period is correct with startup_candle_count
2022-09-22 12:13:51 -03:00
robcaulk
b5fd11f91b
protect against unforeseen issues in scanning thread
2022-09-19 21:18:31 +02:00
robcaulk
42c75b4a7b
combine log messages
2022-09-19 19:16:32 +02:00
Robert Caulk
9b66297cc0
Fix append
2022-09-19 12:47:20 +02:00
Robert Caulk
995396c775
Add useful log info
2022-09-19 11:42:56 +02:00
Robert Caulk
ad652817ef
Ensure train ordering after restart
...
Ensure lowest timestamps get trained first after restart
2022-09-19 11:11:23 +02:00
Robert Caulk
f9460c80c2
Merge pull request #7434 from freqtrade/improve-train-queue
...
improve train queue system in FreqAI
2022-09-19 10:55:53 +02:00
Matthias
ea58c29ded
Add plot_feature_importance to schema definition
2022-09-19 08:13:54 +00:00
Matthias
225f7cd5f8
Merge pull request #7431 from initrv/add-plot-feature-importance
...
Add plot feature importance
2022-09-19 08:41:10 +02:00
Matthias
d930931000
Bring back sleep - it'll ensure we give up control over the thread.
2022-09-19 07:14:33 +02:00
robcaulk
470d5d8405
ensure full new pairlist is in the queue
2022-09-18 17:08:07 +02:00
robcaulk
eaa43337d2
improve train queue system, ensure crash resilience in train queue.
2022-09-18 17:00:55 +02:00
robcaulk
95457d23ca
escape freqai-specific characters from file naming
2022-09-18 13:59:30 +02:00
Matthias
667853c504
Use Alias to type config objects
2022-09-18 13:20:55 +02:00
robcaulk
188f75d8ec
set model in models dict
2022-09-18 12:50:44 +02:00
robcaulk
1ef875901a
maintian user privacy by keeping plotly offline
2022-09-18 00:01:42 +02:00
robcaulk
68f7a31504
ensure continued operation despite not being able to plot
2022-09-18 00:00:14 +02:00
robcaulk
2c23effbf2
allow plot to plot multitargets, add test
2022-09-17 19:17:44 +02:00
initrv
1c92734f39
simplify plot_feature_importance call
2022-09-17 18:53:43 +03:00
robcaulk
7b1d409c98
fix mypy/flake8
2022-09-17 17:51:06 +02:00
initrv
86aa875bc9
plot features as html instead of png
2022-09-16 21:47:12 +03:00
initrv
b707a6da35
Add ability to plot feature importance
2022-09-16 19:17:41 +03:00
robcaulk
3b97b3d5c8
fix mypy error for strategy
2022-09-15 00:56:51 +02:00
robcaulk
8aac644009
add tests. add guardrails.
2022-09-15 00:46:35 +02:00
robcaulk
48140bff91
fix bug in 4ActRLEnv
2022-09-14 22:53:53 +02:00
robcaulk
81417cb795
Merge branch 'develop' into dev-merge-rl
2022-09-14 22:49:11 +02:00
initrv
37dd22c89e
Fixed a bug that prevents clearing old models
...
Corrects the error of clearing old models when the model directory contains directories with names that do not match a regular expression
2022-09-14 03:40:13 +03:00
Emre
330d7068ab
Merge branch 'develop' into add-xgboostclassifier
2022-09-10 23:59:11 +03:00
Robert Caulk
075748b21a
Merge pull request #7392 from freqtrade/improve_ai_tests
...
Improve freqai tests by utilizing parametrization
2022-09-10 22:37:21 +02:00
robcaulk
5a0cfee27e
allow user to multithread jobs (advanced users only)
2022-09-10 22:16:49 +02:00
Robert Caulk
73e122ad10
Merge pull request #7391 from wagnercosta/fixBTfreqaiV2
...
Fix FreaqAI backtesting - startup_candle_count bug
2022-09-10 21:53:00 +02:00
Matthias
e4caccc353
Merge pull request #7367 from freqtrade/add-continual-learning
...
add continual learning to catboost and friends
2022-09-10 20:17:28 +02:00
Wagner Costa Santos
311ae8bf1f
freqai backtesting - add startup_candle_count at function description
2022-09-10 14:45:42 -03:00
Emre
60eb02bb62
Add XGBoostClassifier
2022-09-10 20:13:16 +03:00
Robert Caulk
2077f84f9b
Merge pull request #7363 from wagnercosta/fixHyperoptFreqai
...
Fix hyperopt - freqai
2022-09-10 17:02:01 +02:00
Robert Caulk
4a47c63f71
Merge pull request #7374 from th0rntwig/filter-constant-features
2022-09-10 16:58:58 +02:00
robcaulk
10b6aebc5f
enable continual learning and evaluation sets on multioutput models.
2022-09-10 16:54:13 +02:00
Wagner Costa Santos
a1f88cca80
merge develop
2022-09-10 10:35:16 -03:00
Wagner Costa Santos
79985fda01
fix backtesting freqai startup candles bug
2022-09-10 10:27:17 -03:00
Matthias
5705b8759b
Merge branch 'develop' into add-continual-learning
2022-09-10 08:24:04 +02:00
robcaulk
05581db4e3
ensure columns are only dropped in training
2022-09-09 20:37:21 +02:00
Matthias
97be3318f4
Use Datetime_format from constants
2022-09-09 20:31:02 +02:00
robcaulk
a826c0eb83
ensure signatures match, reduce verbosity
2022-09-09 19:30:53 +02:00
Emre
acb410a0de
Remove verbosity params
2022-09-09 19:30:53 +02:00
Emre
df6e43d2c5
Add XGBoostRegressorMultiTarget class
2022-09-09 19:30:53 +02:00
Emre
1b6410d7d1
Add XGBoostRegressor for freqAI, fix mypy errors
2022-09-09 19:30:53 +02:00
Wagner Costa Santos
d38cc06139
Fix freqai backtesting time range issue
2022-09-09 19:27:05 +02:00
Wagner Costa Santos
f4f2884a66
Fix freqai backtesting time range issue
2022-09-07 18:52:58 -03:00
robcaulk
e51d352777
ensure pca is handling same DF as inlier
2022-09-07 19:11:54 +02:00
robcaulk
4c9ac6b7c0
add kwargs, reduce duplicated code
2022-09-07 18:58:55 +02:00
robcaulk
ea7bdac9ed
ensure inlier metric can be combined with other cleaning methods
2022-09-07 18:45:16 +02:00
th0rntwig
cdc72bf8ca
Correct indexing
2022-09-07 18:14:13 +02:00
th0rntwig
047ded1baa
Check for constant columns
2022-09-07 17:47:27 +02:00
wagnercosta
6b7644029c
Merge branch 'freqtrade:develop' into fixHyperoptFreqai
2022-09-07 11:07:51 -03:00
Wagner Costa Santos
8d16dd804d
hyperopt - freqai - docs and refactoring
2022-09-06 15:42:47 -03:00
Robert Caulk
d7585161b2
Merge branch 'develop' into add-inlier-metric
2022-09-06 20:40:21 +02:00
robcaulk
97077ba18a
add continual learning to catboost and friends
2022-09-06 20:30:46 +02:00
robcaulk
d44296783e
isort datakitchen
2022-09-06 20:10:12 +02:00
robcaulk
e83c9b276d
fix whitespace
2022-09-06 19:56:52 +02:00
robcaulk
4b28d0495f
fix timestamping, move imports, add words to doc
2022-09-06 19:46:58 +02:00
Wagner Costa Santos
2c8e5b191b
fix hyperopt - freqai
2022-09-05 17:43:55 -03:00
Wagner Costa Santos
5b826150df
fix hyperopt - freqai
2022-09-05 17:43:28 -03:00
robcaulk
78d01810ed
reduce code redundancy, ensure live always gets the latest data
2022-09-05 00:12:00 +02:00
Wagner Costa Santos
d43ed186fc
fix issue with freqai backtesting at slice dataframe
2022-09-05 00:12:00 +02:00
Robert Caulk
956ea43e55
Merge pull request #7340 from wizrds/sigint-freqai
...
Support SIGINT in FreqAI
2022-09-04 16:43:36 +02:00
robcaulk
ec76214d02
backup historical predictions pickle and load the backup in case of corruption
2022-09-04 15:56:07 +02:00
robcaulk
69b3fcfd32
Merge branch 'develop' into dev-merge-rl
2022-09-04 11:23:25 +02:00
robcaulk
27dce20b29
fix bug in Base4ActionRLEnv, improve example strats
2022-09-04 11:21:54 +02:00
Robert Caulk
8545d74378
Merge pull request #7331 from th0rntwig/pca
...
Normalise PCA space
2022-09-03 21:49:54 +02:00
Timothy Pogue
dae3b3d86a
support shutting down freqai
2022-09-03 13:24:14 -06:00
robcaulk
5cfb4154eb
revert all changes in normalize_data()
2022-09-03 19:48:30 +02:00
Robert Caulk
63514b0443
Merge pull request #7325 from wagnercosta/develop
...
Improve Freqai backtesting performance
2022-09-03 19:28:04 +02:00
robcaulk
c21808ff98
remove metadata redundancy, fix pca bug
2022-09-03 16:54:30 +02:00
robcaulk
c9be66b5b6
increase test coverage for dk, improve function naming, extra cleaning
2022-09-03 15:52:29 +02:00
Matthias
80b5f035ab
Remove typo in log message
2022-09-03 15:01:28 +02:00
robcaulk
599c1c79fb
reorganized backtest utilities, test new functionality, improve/update doc
2022-09-03 14:00:01 +02:00
Wagner Costa Santos
af5460cebf
Add option to keep models only in memory for backtest
2022-09-02 22:01:53 -03:00
th0rntwig
11b2bc269e
Added missing s
2022-09-01 22:37:32 +02:00
th0rntwig
3f8400df10
Normalise PCA space
2022-09-01 21:51:33 +02:00
Wagner Costa Santos
d6e115178a
refactoring freqai backtesting - remove duplicate code
2022-09-01 07:09:23 -03:00
Wagner Costa Santos
44d3a9140d
Merge branch 'develop' of https://github.com/wagnercosta/freqtrade into develop
2022-08-31 15:37:06 -03:00
Wagner Costa Santos
7bed0450d2
pr review - refactoring backtesting freqai
2022-08-31 15:36:29 -03:00
wagnercosta
3d4497467c
Merge branch 'freqtrade:develop' into develop
2022-08-31 14:47:06 -03:00
robcaulk
240b529533
fix tensorboard path so that users can track all historical models
2022-08-31 16:50:39 +02:00
Richard Jozsa
2493e0c8a5
Unnecessary lines in Base4, and changes for box space, to fit better for our needs ( #7324 )
2022-08-31 16:37:02 +02:00
Wagner Costa Santos
df51da22ee
refactoring freqai backtesting
2022-08-31 11:23:48 -03:00
Matthias
57ff6f8ac5
Init timerange object properly
2022-08-31 10:28:31 +00:00
Matthias
7ba4fda5d7
Implement PR feedback
2022-08-31 10:26:47 +00:00
Matthias
a88ffd2c9d
Merge branch 'develop' into move_datadownload
2022-08-31 10:23:45 +00:00
robcaulk
7e8e29e42d
use continuous value for inlier_metric
2022-08-30 20:41:37 +02:00
robcaulk
7f52908e87
ensure the lost points are prepended for FreqUI
2022-08-30 18:55:58 +02:00
robcaulk
a58dd0bbf9
add noise feature, improve docstrings
2022-08-30 18:26:24 +02:00
robcaulk
b11742a4c5
integrate inlier metric function
2022-08-30 18:26:24 +02:00
th0rntwig
d3cb211283
Add inlier metric computation
2022-08-30 18:26:24 +02:00
th0rntwig
50e2808667
Fix bug in DI ( #7321 )
2022-08-30 12:54:39 +02:00
robcaulk
62c0a174c8
allow users to properly reverse train-test data ordering
2022-08-29 11:04:58 +02:00
robcaulk
7766350c15
refactor environment inheritence tree to accommodate flexible action types/counts. fix bug in train profit handling
2022-08-28 19:21:57 +02:00
robcaulk
fcb5d1cb5a
remove debugging flag
2022-08-28 13:01:39 +02:00
robcaulk
dd628eb525
add tests for outlier detection and removal functions
2022-08-28 12:56:39 +02:00
robcaulk
1e41c773a0
fix outlier protection
2022-08-28 12:11:29 +02:00
th0rntwig
71f7d68783
Fixed mypy error
2022-08-27 12:44:55 +02:00
elintornquist
86c5ac44e4
Add outlier percentage check
2022-08-26 23:05:07 +02:00
elintornquist
b2d664c63c
Change MinPts calculation
2022-08-26 18:57:27 +02:00
robcaulk
bb3523f383
download data homogeneously across timeframes
2022-08-26 18:51:42 +02:00
robcaulk
e7261cf515
add freqai utils.py file
2022-08-26 15:30:28 +02:00
robcaulk
65b552e310
make docs reflect reality, move download_all_data to new utils.py file, automatic startup_candle detection
2022-08-26 15:30:01 +02:00
robcaulk
4b7e640f31
reduce code duplication, optimize auto data download per tf
2022-08-26 13:56:44 +02:00
robcaulk
baa4f8e3d0
remove Base3ActionEnv in favor of Base4Action
2022-08-26 11:04:25 +02:00
richardjozsa
d31926efdf
Added Base4Action
2022-08-26 11:04:25 +02:00
robcaulk
3199eb453b
reduce code for base use-case, ensure multiproc inherits custom env, add ability to limit ram use.
2022-08-25 19:05:51 +02:00
robcaulk
05ccebf9a1
automate eval freq in multiproc
2022-08-25 12:29:48 +02:00
robcaulk
94cfc8e63f
fix multiproc callback, add continual learning to multiproc, fix totalprofit bug in env, set eval_freq automatically, improve default reward
2022-08-25 11:46:18 +02:00
robcaulk
d1bee29b1e
improve default reward, fix bugs in environment
2022-08-24 18:32:40 +02:00
robcaulk
a61821e1c6
remove monitor log
2022-08-24 16:33:13 +02:00
robcaulk
bd870e2331
fix monitor bug, set default values in case user doesnt set params
2022-08-24 16:32:14 +02:00
robcaulk
c0cee5df07
add continual retraining feature, handly mypy typing reqs, improve docstrings
2022-08-24 13:00:55 +02:00
robcaulk
b708134c1a
switch multiproc thread count to rl_config definition
2022-08-24 13:00:55 +02:00
robcaulk
b26ed7dea4
fix generic reward, add time duration to reward
2022-08-24 13:00:55 +02:00
robcaulk
280a1dc3f8
add live rate, add trade duration
2022-08-24 13:00:55 +02:00
robcaulk
f9a49744e6
add strategy to the freqai object
2022-08-24 13:00:55 +02:00
richardjozsa
a2a4bc05db
Fix the state profit calculation logic
2022-08-24 13:00:55 +02:00
robcaulk
29f0e01c4a
expose environment reward parameters to the user config
2022-08-24 13:00:55 +02:00
robcaulk
d88a0dbf82
add sb3_contrib models to the available agents. include sb3_contrib in requirements.
2022-08-24 13:00:55 +02:00
robcaulk
8b3a8234ac
fix env bug, allow example strat to short
2022-08-24 13:00:55 +02:00
mrzdev
8cd4daad0a
Feat/freqai rl dev ( #7 )
...
* access trades through get_trades_proxy method to allow backtesting
2022-08-24 13:00:55 +02:00
robcaulk
3eb897c2f8
reuse callback, allow user to acces all stable_baselines3 agents via config
2022-08-24 13:00:55 +02:00
robcaulk
4b9499e321
improve nomenclature and fix short exit bug
2022-08-24 13:00:55 +02:00
sonnhfit
4baa36bdcf
fix persist a single training environment for PPO
2022-08-24 13:00:55 +02:00
robcaulk
f95602f6bd
persist a single training environment.
2022-08-24 13:00:55 +02:00
robcaulk
5d4e5e69fe
reinforce training with state info, reinforce prediction with state info, restructure config to accommodate all parameters from any user imported model type. Set 5Act to default env on TDQN. Clean example config.
2022-08-24 13:00:55 +02:00
sonnhfit
7962a1439b
remove keep low profit
2022-08-24 13:00:55 +02:00
sonnhfit
81b5aa66e8
make env keep current position when low profit
2022-08-24 13:00:55 +02:00
sonnhfit
45218faeb0
fix coding convention
2022-08-24 13:00:55 +02:00
robcaulk
b90da46b1b
improve price df handling to enable backtesting
2022-08-24 13:00:55 +02:00
MukavaValkku
2080ff86ed
5ac base fixes in logic
2022-08-24 13:00:55 +02:00
robcaulk
16cec7dfbd
fix save/reload functionality for stablebaselines
2022-08-24 13:00:55 +02:00
sonnhfit
0475b7cb18
remove unuse code and fix coding conventions
2022-08-24 13:00:55 +02:00
MukavaValkku
d60a166fbf
multiproc TDQN with xtra callbacks
2022-08-24 13:00:55 +02:00
robcaulk
dd382dd370
add monitor to eval env so that multiproc can save best_model
2022-08-24 13:00:55 +02:00
robcaulk
69d542d3e2
match config and strats to upstream freqai
2022-08-24 13:00:55 +02:00
robcaulk
e5df39e891
ensuring best_model is placed in ram and saved to disk and loaded from disk
2022-08-24 13:00:55 +02:00
robcaulk
bf7ceba958
set cpu threads in config
2022-08-24 13:00:55 +02:00
MukavaValkku
57c488a6f1
learning_rate + multicpu changes
2022-08-24 13:00:55 +02:00
robcaulk
acf3484e88
add multiprocessing variant of ReinforcementLearningPPO
2022-08-24 13:00:55 +02:00
MukavaValkku
cf0731095f
type fix
2022-08-24 13:00:55 +02:00
MukavaValkku
1c81ec6016
3ac and 5ac example strategies
2022-08-24 13:00:55 +02:00
MukavaValkku
13cd18dc9a
PPO policy change + verbose=1
2022-08-24 13:00:55 +02:00
robcaulk
926023935f
make base 3ac and base 5ac environments. TDQN defaults to 3AC.
2022-08-24 13:00:55 +02:00
MukavaValkku
096533bcb9
3ac to 5ac
2022-08-24 13:00:55 +02:00
MukavaValkku
718c9d0440
action fix
2022-08-24 13:00:55 +02:00
robcaulk
9c78e6c26f
base PPO model only customizes reward for 3AC
2022-08-24 13:00:55 +02:00
robcaulk
6048f60f13
get TDQN working with 5 action environment
2022-08-24 13:00:55 +02:00
robcaulk
d4db5c3281
ensure TDQN class is properly named
2022-08-24 13:00:55 +02:00
robcaulk
91683e1dca
restructure RL so that user can customize environment
2022-08-24 13:00:55 +02:00
sonnhfit
ecd1f55abc
add rl module
2022-08-24 13:00:55 +02:00
MukavaValkku
9b895500b3
initial commit - new dev branch
2022-08-24 13:00:55 +02:00
MukavaValkku
cd3fe44424
callback function and TDQN model added
2022-08-24 13:00:55 +02:00
MukavaValkku
01232e9a1f
callback function and TDQN model added
2022-08-24 13:00:55 +02:00
MukavaValkku
8eeaab2746
add reward function
2022-08-24 13:00:55 +02:00
MukavaValkku
ec813434f5
ReinforcementLearningModel
2022-08-24 13:00:55 +02:00
MukavaValkku
2f4d73eb06
Revert "ReinforcementLearningModel"
...
This reverts commit 4d8dfe1ff1daa47276eda77118ddf39c13512a85.
2022-08-24 13:00:55 +02:00
MukavaValkku
c1e7db3130
ReinforcementLearningModel
2022-08-24 13:00:55 +02:00
robcaulk
05ed1b544f
Working base for reinforcement learning model
2022-08-24 13:00:40 +02:00
th0rntwig
5ce1c69803
Improve DBSCAN epsilon identification ( #7269 )
...
* Improve DBSCAN epsilon identification
2022-08-22 19:57:20 +02:00
robcaulk
ac42c0153d
deprecate indicator_max_period_candles, automatically compute startup candles for FreqAI backtesting.
2022-08-22 18:19:07 +02:00
robcaulk
96d8882f1e
Plug mem leak, add training timer
2022-08-22 13:30:30 +02:00
longyu
cfa5b3f12c
add new line
2022-08-19 12:39:08 +02:00
longyu
277245c69d
remove line
2022-08-19 12:39:00 +02:00
longyu
f70b0bab80
remove line
2022-08-17 23:49:20 +02:00
robcaulk
5155afb4e7
clean up code remnants
2022-08-17 15:22:48 +02:00
robcaulk
0c34104e45
extract download-data from freqai to prepare for future async changes
2022-08-17 15:18:44 +02:00
longyu
9c38c27eed
ignore sample itself distance for avg_mean_dist computation
2022-08-17 15:09:57 +02:00
longyu
72c34291e3
newline
2022-08-17 15:09:10 +02:00
robcaulk
4c0fda400f
fix input shape warning for LGBMClassifier, add sample_weights/eval_weights
2022-08-16 11:41:53 +02:00
Matthias
c7e1719215
Fix interface import sorting
2022-08-15 06:53:02 +02:00
robcaulk
006b11e5d5
fix leftover bug in indicator population
2022-08-14 21:42:55 +02:00
robcaulk
8961b8d560
merge in inference timer and historic predictions handling improvements.
2022-08-14 20:31:15 +02:00
robcaulk
ad846cdb76
fix lock bug, update docstring
2022-08-14 20:24:29 +02:00
Matthias
464d99808f
Update doc table formatting
2022-08-14 18:22:01 +02:00
Matthias
a29402ddde
Rename and move analysis_lock to data_kitchen
2022-08-14 17:23:14 +02:00
Matthias
3a9ec76c91
Move "freqai.lock" to backend to simplify user interface
2022-08-14 17:19:50 +02:00
Robert Caulk
c9c128f781
finalize logo, improve doc, improve algo overview, fix base tensorflowmodel for mypy
2022-08-14 02:49:01 +02:00
robcaulk
58de20af0f
make BaseClassifierModel. Add predict_proba to lightgbm
2022-08-13 20:07:31 +02:00
robcaulk
31be707cc8
clean up code, add docstrings
2022-08-13 19:40:24 +02:00
robcaulk
3e38c1b0bd
take dynamic sized tail off historic_predictions as return dataframe to strategy.
2022-08-13 19:40:24 +02:00
robcaulk
7d448fd4ac
allow fit_live_predictions access to current pair
2022-08-13 19:40:24 +02:00
robcaulk
1f192be43b
avoid denormalizing labels twice
2022-08-13 19:40:24 +02:00
robcaulk
b1b76a2dbe
debug classifier with predict proba
2022-08-13 19:40:24 +02:00
robcaulk
23cc21ce59
add predict_proba to base classifier, improve historic predictions handling
2022-08-13 19:40:24 +02:00
robcaulk
fb4b73ce89
ensure dates are saved
2022-08-12 12:03:44 +02:00
robcaulk
2cae3c42e6
remove trade database analyzer, clean up a bit
2022-08-10 17:43:06 +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
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
eb8bde37c1
Add lightgbm classifier, add classifier check test, fix classifier bug.
2022-08-06 17:51:21 +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
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
05ec5c5e54
generalize database url path for any db type
2022-08-05 12:19:29 +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
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
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
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
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
f31106dc61
Minor comment fixes
2022-07-27 07:27:24 +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
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
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
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
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
Robert Caulk
9d184586f1
fix bug in historic prediction saving
2022-07-16 21:16:59 +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
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
3fc92b1b21
Create BaseRegression model - designed to reduce code duplication across currently available models.
2022-07-11 11:33:59 +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
2e1061af64
Fix faulty LightGBM model
2022-07-09 08:21:42 +00: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
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
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
Matthias
c981ad4608
Fix missing space
2022-06-12 08:31:02 +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
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
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
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