Scrilla

Latest version: v1.6.0

Safety actively analyzes 622248 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

1.6.0

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: https://github.com/matplotlib/matplotlib/issues/24155/

Currently looking into a solution.

1.5.0

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

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

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

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.

1.0.0

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

`pip install scrilla`

See [README](https://github.com/chinchalinchin/scrilla/blob/development/README.md) for more information on usage.

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.