Commit Graph

18 Commits

Author SHA1 Message Date
Mark Aron Szulyovszky b456ec3cb7 feat(Data): added feature extractors, and feature extractor presets, removed a bunch of custom arguments from load_data (#42) 2021-12-19 12:14:59 +01:00
Mark Aron Szulyovszky 0963df2087 refactor(Project): move out load_data to utils, rename fetch_data to run_fetch_data, got classifiers to work (#38) 2021-12-17 17:41:50 +01:00
Mark Aron Szulyovszky cc7061b456 feat(Core): ensemble models, correct forward returns calculation, scaling, only train from when asset returns are available, major bug fixed in walk_forward_train_test (#35)
* fix(Core): correct forward returns calculation, classifiers are now working again, only train from when asset returns are available

* feat(Utils): added get_first_valid_return_index()

* feat(Ensemble): return models from `run_whole_pipeline`

* feat(Ensemble): added ensemble step, fixed walk_forward_train_test predictions index confusion,

* chore(Pipeline): remove unnecessary extra ensemble results dataframe

* refactor(Core): removed unnecessary ensemble_train_predict, moved run_single_asset_trainig_pipeline to a separate file

* feat(Training): added scaling on expanding window (the past) to walk_forward_train_test(), now printing out mean sharpe ratio

* feat(CI): added environment.yml file

* chore(Environment): update env.yml

* feat(CI): added testing workflow

* fix(CI): renamed enviroment.yml

* fix(Tests): added missing new parameter to walk_forward_train_test()
2021-12-17 14:32:17 +01:00
Mark Aron Szulyovszky 1eaba0c221 fix(Evaluate): ignore empty data at evaluation time, add backtesting metrics (sharpe, etc), fixed crash when predicting 0.0 (#23)
* fix(Evaluate): ignore empty data at evaluation time, so we don't inflate the model's performance

* refactor(Pipeline): pass in data_loader arguments to the pipeline

* feat(Evaluation): added sharpe, sortino, etc

* fix: Took out the method to fill NaN numbers with 0s. This way in evaluation we can ignore NaN values.

* fix: Fix of the fix added fillna back. Either we root out NaN lines in the very beginning or we stick with the method you created.

Co-authored-by: Daniel Szemerey <szemy2@gmail.com>
2021-12-15 21:11:12 +01:00
Mark Aron Szulyovszky 6440ced32c feat(Tests): added basic unit tests for walk_forward_train_test() (#22)
* feat(Tests): added basic unit tests for walk_forward_train_test()

* fix(Tests): inherit from BaseEstimator, fix index problems in walk_forward_train_test

* fix(WalkForward): predictions were mistakenly removed, oops

* fix(WalkForward): mistakenly re-assiging model
2021-12-15 17:54:03 +01:00
Mark Aron Szulyovszky beb281fc3a feat(Evaluation): created a unified evaluation framework for both regression / classification 2021-12-14 21:25:43 +01:00
Mark Aron Szulyovszky 1ef314c034 fix(WalkForward): major bug where we passed in "window of windows of data" is resolved, refactored walk_forward_train_test() and load_data() 2021-12-14 21:07:03 +01:00
Mark Aron Szulyovszky d047b7417e feat(WalkForward): added regression/classification switch, archived old experiments, wrapped the process into run_whole_pipeline() (#10)
* refactor(WalkForward): cleaned up training & evaluation code

* refactor: added run_whole_pipeline(), moved all previous models to archive
2021-12-14 18:16:17 +01:00
Mark Aron Szulyovszky 7aedb91069 feat(Data): added various data loading config options, walk forward method draft (#9)
* feat(Eval): added format_data_for_backtest()

* feat(Data): added many configurable parameters to load_files to reduce boilerplate and prepare for HPO

* feat(Core): added walk forward method of training/testing

* fix(Model): remove the unnecessary softmax activation from the keras models

* feat(Core): added walk_forward_train_test()
2021-12-01 09:28:24 +01:00
Mark Aron Szulyovszky 6e192ebc8a feat(Models): added a basic sktime model and missing USD crypto currency pairs (#7) 2021-11-17 22:28:34 +01:00
Mark Aron Szulyovszky 3fec439c08 feat(Data): added new derived features + asset pairs for crypto tickers (#6) 2021-11-17 12:07:49 +01:00
Mark Aron Szulyovszky 1d6eed3a94 feat(Core): added the first classification model & the feature necessary (#4)
* feat(Core): added the first classification model & the feature necessary

* feat(Models): added basic transformers model
2021-11-16 10:02:02 +01:00
Mark Aron Szulyovszky 797791d2f4 feat(Forecasting): pytorch-forecasting scaffolding is now working, added narrow data format, fixed missing time column index name (#5)
* feat: Started implementing pytorch-forecasting.

* feat(Forecasting): pytorch-forecasting scaffolding is now working, added narrow data format, fixed missing `time` column index name

Co-authored-by: Daniel Szemerey <szemy2@gmail.com>
2021-11-16 10:00:26 +01:00
Mark Aron Szulyovszky 07302a7541 feat(Models): added MAE & RMSE metrics, fixed NaN & Inf values in data, 2021-11-14 23:50:25 +01:00
Mark Aron Szulyovszky 5f8efc97fa feat(Model): now successfully training the basic LSTM model 2021-11-11 18:29:05 +01:00
Mark Aron Szulyovszky 78b3c07420 feat(Model): trying to get to a model that can train 2021-11-11 17:53:24 +01:00
Mark Aron Szulyovszky 3188aab220 feat(Model): continued with the keras model scaffolding 2021-11-10 14:51:12 +01:00
Mark Aron Szulyovszky 51b7d35660 feat(Data): downloading data for pre-defined tickers 2021-11-09 15:21:22 +01:00