Python and Cython scripts of machine learning, econometrics and statistical features for financial analysis [In progress]
Source code: http://github.com/ArthurBernard/Fynance
Fynance is Python (and Cython) package, it provides machine learning, econometric and statistical tools designed for financial analysis and backtest of trading strategy. The documentation is available with some examples of the use of functions and objects.
Currently the project is always at a beta level. But some parts of the project can be considered as stable, such as fynance.features (this subpackage is already coded in Cython to be time-efficient), fynance.algorithms.allocation (this subpackage seems stable but have to be cleaned and write in Cython), and the other subpackages are always in progress (subject to deep modification).
The fynance package contains currently five subpackages:
- Algorithms (fynance.algorithms) contains:
Portfolio allocations (e.g. ERC, HRP, IVP, MDP, MVP, etc.).
Rolling objects for algorithms (e.g. rolling_allocation, etc.).
- Backtesting objects (fynance.backtest) contains:
Module to plot profit and loss, and measure of performance.
- Feature tools (fynance.features) contains:
Financial indicators (e.g. bollinger_band, cci, hma, macd_hist, macd_line, rsi, etc.).
Statistical momentums (e.g. sma, ema, wma, smstd, emstd wmstd, etc.).
Metrics (e.g. annual_return, annual_volatility, calmar, diversified_ratio, mdd, sharpe, z_score, etc.).
Scale (e.g. Scale object, normalize, standardize, roll_normalize, roll_standardize, etc.).
Rolling functions (e.g. roll_min, roll_max).
- Time-series models (fynance.models) contains:
Econometric models (e.g. MA, ARMA, ARMA_GARCH and ARMAX_GARCH, etc.).
Neural network models with PyTorch (e.g. MultiLayerPerceptron, etc.).
Rolling objects for models, currently work only with neural network models (e.g. _RollingBasis, RollMultiLayerPerceptron, etc.).
- Neural networks (fynance.neural_networks) with Keras (backend Tensorflow or Theano) contains:
Rolling neural network models.
Please refer you to the documentation to see more details on different tools available in fynance package. Documentation contains some descriptions and examples for functions, classes and methods.
$ pip install fynance
From source (GitHub)
If you want to compile fynance package from cython files you must set USE_CYTHON=True in setup.py file. Otherwise set it to USE_CYTHON=False. By default USE_CYTHON='auto'.
$ git clone https://github.com/ArthurBernard/Fynance.git $ cd Fynance $ python setup.py build_ext --inplace $ python setup.py install --user
Backtest (performance, drawdown and rolling sharpe ratio) of a trading strategy did with a rolling neural network (see Notebooks/Exemple_Rolling_NeuralNetwork.ipynb for more details):
Loss functions and performances (trading strategy) of five rolling neural networks on the training and testing period (see Notebooks/Exemple_Rolling_NeuralNetwork.ipynb for more details):
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for fynance-1.1.0-py3.7-linux-x86_64.egg