Changelog
v0.3.0 (2026-03-23)
Added
- Quantitative Finance module (
financelib.quant) with 28 functions:
- Return analysis: simple, log, cumulative, annualized, rolling returns
- Risk metrics: Sharpe, Sortino, Calmar, VaR, CVaR, beta, alpha, Information Ratio, Treynor
- Portfolio: mean-variance optimization, minimum variance weights, covariance/correlation
- Statistics: skewness, kurtosis, Jarque-Bera test, Hurst exponent, half-life, z-score, autocorrelation
- PostgreSQL database backend (
financelib.database.postgres) with full parity to SQLite
- Trade history table and indicator snapshot table
DATABASE_URL environment variable support
- Context manager support
- Quant documentation and API reference pages
- PostgreSQL documentation in database user guide
- 40+ new tests for quant module and PostgreSQL
Changed
- Version bumped to 0.3.0
- Database
__init__.py exports SQLite, models, and available_databases()
pyproject.toml updated with psycopg2-binary in [db] extras
v0.2.0 (2026-03-23)
Added
- Centralized logging system with
setup_logging() and per-module loggers
- Custom exception hierarchy (
FinanceLibError, APIError, DataFetchError, etc.)
- Configuration dataclass (
FinanceLibConfig) replacing mutable globals
- Utility functions:
format_currency(), format_percentage(), validate_stock_symbol()
retry and rate_limiter decorators
Stock.get_historical_data() method for fetching OHLCV DataFrames
News.to_dict() method for serialization
BISTTradeBotv1 full implementation with paper trading, analysis, and scanning
CryptorTradeBot.backtest() method for strategy backtesting
- Paper trading mode for both bots
- Trade history recording
- Proper
StockDataModel dataclass for database storage
- Complete stock data table schema and parameterized queries
- Database context manager support (
with SQLite(...) as db:)
- MkDocs Material documentation site
- 80+ unit tests with pytest
- Comprehensive type hints across all modules
- Google-style docstrings on all public APIs
Fixed
- All broken imports (relative import paths)
- Infinite recursion in
PricePredictor (duplicate class names)
news.py:100 tuple indexing bug ([0,3] -> [0:3])
- Duplicate
display_stock_info method in Stock class
e.with_traceback() called without argument
- SQL injection vulnerability in
make_insert_article_query()
- Frozen date values in
utils.py (now functions)
- Selenium top-level import crash (now lazy)
TWITTTER_API_KEY typo (3 T's)
NewsAPIQuery constructor parameter mismatch
- Test method naming (
news_api_test -> test_news_api)
setup.py / setup.cfg misconfigured package discovery
- Invalid
[bot] extras in requirements-bot.txt
pandas.Series.mad() deprecation in CCI indicator
Changed
- Migrated to modern
pyproject.toml configuration
- Python requirement bumped to 3.10+
- Indicators now use reusable functions from
algo_trade (no duplication in cryptor)
sabah_com.py properly parses JSON instead of string splitting
- Database queries use parameterized
? placeholders
v0.1.0dev (2026-01-22)
- Initial development release
- Stock tracking with Yahoo Finance
- News aggregation (NewsAPI, Bloomberg)
- KAP PDF downloader
- 11 technical indicators
- Crypto trading bot prototype