A powerful API designed for Quantitative Finance practitioners.
reefledge is a Python package which provides a fast, simple and powerful API designed to simplify the retrieval of price/return density forecasts (on a ticker-by-ticker basis) generated from cutting-edge Time Series Analysis models. Our algorithms consume market data on liquid financial assets and require demanding estimation and simulation steps, both accomplished on a high-performance cloud cluster. Forecasts are produced for a wide range of reference dates and investment horizons, covering multiple metrics for a variety of asset classes.
Forecasts are generated on a daily basis.
All models consume daily-frequency data.
Usually, every ticker which passes our demanding filtering criteria requires around one minute of processing on a Google Cloud C2 compute engine with a single vCPU and four gigabytes of RAM. Our cluster boots as soon as the latest market data is available and, at the time of writing, scales up to 120 vCPUs.
In general, expect forecasts to be readily accessible for reference dates going back at least four years.
Currently, only the 'NYSE' target is in production. Nonetheless, multiple targets - such as 'NASDAQ' - have already been extensively tested and will be released soon.
Here are just a few of the things that make reefledge special:
- Intuitive object oriented interface.
- Type checking at runtime of all public functions/methods.
- Seamless integration with Microsoft Excel.
- Fast and robust cythonized codebase.
- Multithreading capabilities to overcome I/O overheads.
- Smart and 'respectful' (in terms of RAM usage) caching.
- Efficient and highly available back end, featuring global load balancing, optimized connection pooling and extensive database table partitioning, besides an intelligent use of indexes to speed up SQL queries (not to mention full use of SSD disks).
The easiest way to install reefledge and get updates is via `pip`:
$ pip install reefledge
On Linux, the shell command above should return an error due to the xlwings module dependency, which is only relevant on the Windows platform. You can safely ignore it by preceding the installation command with:
$ export INSTALL_ON_LINUX=1
>>> import reefledge as rl >>> rl.login(user_name='foobar', api_key='secret') >>> df = rl.get_point_forecasts_df( # Returns a pandas DataFrame instance. target='NYSE', metric='STD', tickers=['GS', 'IBM'])
Advanced users should refer to the following functions/classes:
- reefledge.reefledge.front_end.get.get for retrieving and parsing data into a reefledge.reefledge.back_end.data_wrapper.data_wrapper.DataWrapper instance.
- reefledge.reefledge.front_end.get_point_forecasts_df.get_point_forecasts_df for retrieving and parsing data into a pandas.core.frame.DataFrame instance.
- reefledge.reefledge.front_end.list_tickers.list_tickers for querying all available tickers associated with a particular target.
- reefledge.reefledge.back_end.api_config.api_config.APIConfig for configuring the API.
- >>> try:
rl.get_point_forecasts_df(target='NYSE', metric='STD', tickers='GS')
- except rl.Error as exc:
print(exc)
>>> rl.APIConfig.allow_caching True >>> rl.APIConfig.allow_tickers_sorting False >>> rl.APIConfig.allow_caching = False # Disable caching.
Further examples assume that reefledge has been imported as `rl`:
>>> import reefledge as rl