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.92.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: capon-0.0.92.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.92.tar.gz
Algorithm Hash digest
SHA256 f3334d272e46611dd82964c3d53abf236991f090def65c970328b647fbefcb2d
MD5 4a95d659f1de66a1dc4d24dddd942f2c
BLAKE2b-256 b24a97eeb380409723bafee4c93a49822ce18b33aec9f39c7ae1d674f5c38292

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: capon-0.0.92-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.92-py3-none-any.whl
Algorithm Hash digest
SHA256 8410f2d192eeb3264ff443c4860ab72273af4d1bb0193248ee8d61b4b08f7e39
MD5 f3e11a4f6af8fdc01df8128face0bcd4
BLAKE2b-256 3736485e324ec2b70f0cffc6f2f0bab14379d1037cbc2e21cc9aaee023816b04

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