SciFin is a python package for Science and Finance.
The SciFin package is a Python library designed to gather and develop methods for scientific studies and financial services. It originates from the observation that numerous methods developed in scientific fields (such as mathematics, physics, biology, climate sciences, medicine) have direct applicability in finance and that, conversely, multiple methods developed in finance can benefit science.
The development goal of this package is to offer a toolbox that can be used both in research and business analyses. Its purpose is not only to bring these fields together, but also to increase interoperability between them, helping science turn into sound business and finance get new insights from science. Core functions of SciFin thus try to remain neutral to any scientific or economical context, while derived methods are specializing towards specific applications.
SciFin's toolbox thus intend to provide functions that perform advanced tasks while remaining simple, i.e. depending on a minimal amount of parameters. Doing so can increase the scope of users while focusing on the real nature of mathematical objects to solve problems, leaving most of the specialization to the user him/herself.
The current development is focused on the following topics:
Subpackage | Short Description | Development Stage |
---|---|---|
classifier |
classification techniques | ■ ■ □ □ □ |
fouriertrf |
Fourier transforms | ■ □ □ □ □ |
geneticalg |
genetic algorithms | ■ ■ ■ □ □ |
marketdata |
reading market data | ■ ■ □ □ □ |
montecarlo |
Monte Carlo simulations | ■ □ □ □ □ |
neuralnets |
neural networks | □ □ □ □ □ |
statistics |
basic statistics | ■ ■ □ □ □ |
timeseries |
time series analysis | ■ ■ ■ ■ □ |
Topics already well developed are time series analysis and genetic algorithms. Topics recently addressed are statistics and clustering/classification methods.
A lot of development still needs to be done. Other topics will later follow.
Installing SciFin on Linux or Mac is very easy, you can simply run this command on a terminal:
pip install SciFin
You can also access the last version of the package on PyPI and download it from there.
If you encounter problems during installation or after and think you know how the problem can be improved, please share it with us.
It is advised to install version 0.1.0 or later.
Version 0.0.8 may lead to a small problem from pandas. If you get an error message such as:
ImportError: cannot import name 'urlencode' from 'pandas.io.common'
it is advised to install pandas version 1.0.3 using e.g. the command line:
pip install pandas==1.0.3
.
The code is growing fast and many classes and functions acquire new features. Hence, at the moment, one version can be significantly different from its previous one. That's what makes development exciting! But that can also be confusing.
A documentation of the code should help users. Once ready, this documentation will start appearing on SciFin's Wiki page.
If you encounter any problem while using SciFin, please do not hesitate to report it to us by creating an issue.
The package tries to follow the style guide for Python code PEP8. If you find any part of the code unclear or departing from this style, please let me know. As for docstrings, the format we try to follow here is given by the numpy doc style.
It is strongly advised to have a fair knowledge of Python to contribute, at least a strong motivation to learn, and recommended to read the following Python3 Tutorial before joining the project.
To know more about the (evolving) rules that make the project self-consistent and eases interaction between contributors, please refer to details in the Contributing file.
All the development was done by Fabien Nugier until recently, new contributors have now joined the project.
SciFin is currently developed under the MIT license.
Please keep in mind that SciFin and its developers hold no responsibility of any king for any wrong usage of its content, or any losses related to the package usage.
For more details, please refer to the license.
If you have comments or suggestions, please reach Fabien Nugier. Thank you very much in advance for your feedback.
SciFin uses code from scientific papers, books and online articles sometimes. Here are presented lists of materials which have been used to develop some functionalities in the code:
Books:
Articles:
Websites: