Skip to content

Releases: chinchalinchin/scrilla

1.6.0

31 Jul 17:34
Compare
Choose a tag to compare

Mainly, I've fixed an application breaking bug that popped up. I am not sure if there were some updates to the underlying libraries, but the sqlite cache stopped working at some point in the last year. It used to do type conversions with datetime.date objects, but now requires strings.

Also, the GUI appears to have broken with an update to the Qt library. See here for more info: matplotlib/matplotlib#24155

Currently looking into a solution.

1.5.0

18 Jun 01:24
Compare
Choose a tag to compare

On February 4th, the US Treasury implemented changes to their Yield Curve RSS feed: https://home.treasury.gov/developer-notice-xml-changes

In addition, Nasdaq's acquisition of Quandl (https://www.nasdaq.com/about/press-center/nasdaq-acquires-quandl-advance-use-alternative-data) recently completed.

Quandl's RESTful endpoints for the Treasury Yield Curve fell out of support. Whether it was due to the acquisition or the internal changes to the data is unknown. Regardless, the USTREASURY/YIELD endpoint is no longer refreshed. This was the main source of interest rate data for the application.

This new update hydrates the interest rate data directly from the US Treasury XML RSS feed. The format of the data is not ideal and requires some logical gymnastics to parse. I will keep searching for ways to optimize the parsing algorithm; as it stands the previous functionality has been restored.

A new service manager named 'treasury' was added to the interest parsing algorithm and configuration was added to the static.py module. Besides this API switch, nothing else in the application has been touched.

In addition, the US Treasury RSS feed does not require an API key. Also, there does not appear to be any API throttling (?). Anyway, the point is, the application no longer requires a Quandl API key to function. In fact, the application will not function for dates after 2022-02-04 if Quandl is used as the interest rate manager. In a future release, it will be deprecated entirely. As such, the default interest service manager is now set to 'treasury' (it can be switched back to 'quandl' by setting the STAT_MANAGER environment variable accordingly, but this is not recommended for the aforementioned reasons).

1.4.0

29 Nov 02:14
Compare
Choose a tag to compare

Massively improved GUI

GUI actually works now. Argument validation; responsive design; graphs can be exported as PNGs onto local filesystem; tables can be exported as JSON onto local filesystem.

Configuration abstraction

GUI widgets are abstracted into a configuration file that gets fed into factory methods to populate the GUI. Similarly, CLI commands have been abstracted into a configuration file; new commands just need to be declared in the definitions.

Unit tests, documentation generation, pipeline

A pipeline has been setup to perform unit tests against every push to the main branch and then regenerate documentation. A static web site has been set up on the gh-pages branch to host the documentation.

General refactoring

The estimation methods have been improved. Estimating correlation through percentiles is now done through Gaussian copulas and results in a massively decrease execution time. The moving average algorithms have been condensed and optimized.

Various statistical functions

Functions have been added to calculate sample percentiles, empirical copulas, multivariate likelihoods, and much more.

1.3.0

26 Sep 02:04
Compare
Choose a tag to compare

Minor Update: Version 1.3.0

Features

  1. QQ plot for sample returns to graphically assess normality. To view, scrilla -plot-rets DIS

  2. Sample statistical and point estimation can now be configured, either through an environment variable DEFAULT_ESTIMATION_METHOD or by passing in a flag to statistical estimator function. The available estimation techniques are current ly moment-matching (moments), percentile-match (percents) and maximum likelihood estimation ('likely'). For example, scrilla -cor -likely BX ALLY will estimate the correlation between BX and ALLY using maximum likelihood estimation, whereas scrilla -cor -moments BX ALLY will estimate the correlation using the method of moment matching. If no flag is passed in, the method will default to whatever value is set in DEFAULT_ESTIMATION_METHOD.

1.2.0

13 Sep 22:43
Compare
Choose a tag to compare

Minor Update: Version 1.2.0

Features

  • SQLite for faster caching. All IO now goes through a local SQLite database for faster reading and writing.
  • Storage of API credentials through CLI instead of environment variables, i.e. in addition

scrilla -store ALPHA_VANTAGE_KEY=mykeygoeshere

Keys are stored unencrypted in the installation directory/data/common directory. Environment_ variables are still recommended for storage of API credentials for this reason.

  • Conditional value at risk portfolio optimization function now available. The function currently assumes a Black Scholes model (i.e., the stock return is lognormally distributed) for calculating the percentiles. For example,

scrilla -opt-cvar -prob 0.05 -expiry 0.5 ALLY BX SONY ACI

will minimize the value at risk for outcomes at the end of a half year (-expiry=0.5) occurring in the 5th percentile (-prob=0.05 ) of the distribution created through a portfolio of ALLY, BX, SONY, and ACI.

  • Improved error handling and general performance upgrades. Use of global variables in files module to prevent excessive IO, new exception classes in errors module now thrown through the program, etc.

First Scrilla Release

29 Aug 16:36
Compare
Choose a tag to compare

First release now available below. Alternatively, you can install through PyPi,

pip install scrilla

See README for more information on usage.