Skip to main content

Capital Market in Python

Project description

capon

Capital Market in Python

Author Version Demo
Gialdetti PyPI Binder

capon is a python package for easily obtaining and analyzing real-time stock data. It provides extended datasets of stock metadata and features. In addition, it offers simple APIs for tracking your personal stock portfolios and their live status.

Installation

Install latest release version via pip

$ pip install capon

Install latest development version

$ pip install git+https://github.com/gialdetti/capon.git

or

$ git clone https://github.com/gialdetti/capon.git
$ cd capon
$ python setup.py install

A simple example

Get the historical stock price of AMD, and plot it.

import capon

amd = capon.stock('AMD', range='ytd')

The historical data is given as a standard pandas dataframe. This allows a fast and powerful data analysis, manipulation and visualization. For instance,

amd.plot(x='timestamp', y='adjclose')

Alt text

My portfolio example

Track your personal stock portfolio with real-time data.

a) Define my holdings

from capon import Portfolio, Lot

my_portfolio = Portfolio([
    Lot('2020-03-20', 'AMZN',   2, 1888.86),
    Lot('2020-03-20', 'TSLA',   8,  451.40),
    Lot('2020-03-23', 'GOOGL',  3, 1037.89),
    Lot('2020-03-23', 'AMC', 1041,    2.88),
    Lot('2020-03-27', 'ZM',    20,  150.29),
])

Alt text

b) Sync with real-time stock data to find current status

status = my_portfolio.status()
display(status)

total_cost, total_value = status.sum()[['cost', 'value']]
print(f'Total cost: {total_cost:,.2f}; Market value: {total_value:,.2f}')
print(f'Total gain: {total_value-total_cost:+,.2f} ({total_value/total_cost-1:+,.2%})')

Alt text

c) Plot it

from capon.visualization import plot_status
plot_status(status)

Alt text

d) Plot historical data

import plotly.express as px

performance = my_portfolio.performance()
px.line(performance, x='timestamp', y='gain_pct', color='symbol', template='capon')

Alt text

The full example in a live notebook is provided below.

Help and Support

Examples

The tutorials below aim to provide a clear and concise demonstration of some of the most important capabilities of capon. For instance, step-by-step guides for building and real-time monitoring of your portfolio, for fetching and analyzing stock historical data, or for using stocks metadata.

To make it a bit more interesting (hopefully), each tutorial first poses a meaningful stock-market "research question". In the context of answering these questions, the tutorials demonstrate the relevant library features.

Theme MyBinder Colab
My Stock Portfolio Performance Binder Open In Colab
Stock Market Crash and Rebound Amid Coronavirus Binder Open In Colab
Analyzing the Sector-level Crash and Rebound Binder Open In Colab

Testing

After cloning and installing the development version, you can launch the test suite:

$ pytest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

capon-0.0.91.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

capon-0.0.91-py3-none-any.whl (2.2 MB view details)

Uploaded Python 3

File details

Details for the file capon-0.0.91.tar.gz.

File metadata

  • Download URL: capon-0.0.91.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for capon-0.0.91.tar.gz
Algorithm Hash digest
SHA256 5c9d2e8f51a17d25c2265a5b68b82dc5bb58959886f2c0deb7ce49b8466c4a89
MD5 cf6d6546b38e1686f8bfed383041ff5f
BLAKE2b-256 03efa6ce0a6dd715e2ac1a983a4c7cadda6ffc9f3f9da1d0b176967ee9d87d1f

See more details on using hashes here.

Provenance

File details

Details for the file capon-0.0.91-py3-none-any.whl.

File metadata

  • Download URL: capon-0.0.91-py3-none-any.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for capon-0.0.91-py3-none-any.whl
Algorithm Hash digest
SHA256 b47e4c0c571a672c7c512e1ae15bac02f51de4ab2b2b4120e4ea5866f1d7b83c
MD5 cf0c517cfd1ce24a199469030bae6735
BLAKE2b-256 8a5cacc6a02f2000c18b150409942b66866d12112df3a3d051cb0f5014df9490

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page