Skip to content

Releases: mbk-dev/okama

Okama 1.2.0

05 Jun 08:47
Compare
Choose a tag to compare

New Macroeconomic class Indicator

3 macroeconomic classes are available (and Documented):

  • Indicator : Macroeconomic indicators and ratios. (.RATIO NEW namespace)
  • Inflation : Inflation related data and methods (.INFL namespace)
  • Rates : Rates of central banks and banks (.RATE namesapce)

Cyclically adjusted price-to-earnings ratios (CAPE10) for 20+ countries are in the DataBase: USA_CAPE10.RATIO, CHN_CAPE10.RATIO, CHN_CAPE10.RATIO etc.

Daily value time series for Macro classes

Rate class has .values_daily property which can be used with bak raters and some other symbols:
ok.Rate("RUONIA.RATE").values_daily
all Macro classes have .values_monthly property.

.describe() methods in all macroeconomic classes

.describe() methods show descriptive statistics for YTD and given periods:

  • arithmetic mean
  • median
  • max and min values

Inflation class .describe() method is different. It generates inflation-specific statistics:

  • YTD compound inflation
  • Annual inflation (geometric mean) for a given list of periods
  • max 12 months inflation for the periods
  • Annual inflation (geometric mean) for the whole history

Rolling tracking difference for stock indexes and ETFs

.tracking_difference() and tracking_difference_annualized() in AssetList class are now methods (where properties). Methods have rolling_window attribute to set wolling window size (in months).
To calclulate 24 months movig tracking difference:
x.tracking_difference(rolling_window=24)

Full Changelog: v1.1.6...v1.2.0

Okama 1.1.6

21 Apr 06:41
Compare
Choose a tag to compare

Introduce parallel computing for heavy calculations in multi-period portfolio optimization (Efficient Frontier).

Minor changes:

  • okama uses black for code formatting
  • development dependencies use Python 3.7 to stay compatible with Google Colab

Okama 1.1.5

06 Apr 04:48
Compare
Choose a tag to compare

Use new financial API (api.okama.io) for historical data requests.

Okama 1.1.4

30 Mar 08:14
Compare
Choose a tag to compare

Replace deprecated .append with .concat for new versions of panda package.

Okama 1.1.3

05 Mar 14:59
Compare
Choose a tag to compare

Add poetry as a dependency manager.

Okama 1.1.2

30 Jan 15:20
Compare
Choose a tag to compare

Sortino ratio and Diversification ratios:

  • get_sortiono_ratio() method is available in AssetList and Portfolio
  • diversification_ratio property is added to Portfolio
  • get_most_diversified_portfolio() method is added to EfficientFrontier
  • mdp_points property is added to EfficientFrontier

mdp_points is a DataFrame with the Most diversified portfolios points.

More examples in Jupyter Notebooks:

  • 08 financial database.ipynb has financial database queries examples

Okama 1.1.1

28 Nov 06:03
Compare
Choose a tag to compare

New method in AssetList:

Fixed:

  • if the asset historical data period is too short there is an ValuError in initialization

Full Changelog: v1.1.0...v1.1.1

Okama 1.1.0

12 Oct 14:47
Compare
Choose a tag to compare

Sharpe Ratio, Tangency portfolio and Capital Market Line (CML):

  • .get_sharpe_ratio() method is available in Portfolio and AssetList
  • .get_tangency_portfolio() method in EfficientFrontier to optimize allocation with Sharpe Ratio as objective function
  • .plot_cml() method in EfficientFrontier to plot the Capital Market Line (CML) and Maximum Sharpe Ratio (MSR) point with the Efficient Frontier

Refactoring:

  • .plot_assets() method is at ListMaker abstract class and is available from: AssetList, Portfolio, EfficientFrontier and EfficientFrontierReb
  • .plot_pair_ef() method is at EfficientFrontier
  • .plot_transition_map() is at EfficientFrontier
  • Plots class discontinued

Okama 1.0.2

26 Sep 13:36
Compare
Choose a tag to compare

Database Search improvements:

  • ok.search() accepts namespace as an argument
  • ok.search() and ok.symbols_in_namespace() return DataFrame (default) or json. It can be changed with response_format argument ('frame' or 'json')

Bugs fixed:

  • limit .inflation_ts by 'first_date' and 'last_date' in Portfolio and AssetList
  • np.nan and np.inf are replaced with 0 in AssetList.get_dividend_mean_grow()

Okama 1.0.1

15 Sep 12:42
Compare
Choose a tag to compare

Documentation added for all methods and attributes in Assets, AssetList and Portfolio.