Giter VIP home page Giter VIP logo

portfolio-manager's Introduction

portfolio-manager

Portfolio Manager is an end-to-end portfolio booking system which supports multiple asset classes such as equities, fixed income and crypto-currencies. It aims to automate the following:

  1. Dividends and Positions Tracking
  2. Price, Volume and Dividend Market Data Extraction
  3. P&L computation
  4. Value at Risk (Phase 2)
  5. Trade signals via automated slack notifications
  6. Backtesting

Configurations

  • Set PYTHONPATH to the parent directory of the repository
  • Create a virtual environment (venv) with dependencies from requirements.txt
  • Add venv path to PATH
  • Start a mySQL database
  • Run scripts/seed_tables.py script in pf_manager > scripts to create and populate the initial tables

Slack

  • For slack alerts to work, create slackcred.json at the root of the repository
  • Create an app in slack by following the steps here
  • Put the Bot User OAuth Token into a key value pair in the JSON file,e.g. "BOT_TOKEN": "xoxb-..."
  • Create a new channel in slack
  • Invite the bot ("app") to the channel by typing /invite -> Add apps to the channel

Market Data

There are multiple market data engines in this repository:

Engine Description
eod Req/Resp via Yahoo & Google finance
intraday Websockets via Tradingview
dividend Async Req/Resp via Dividends.sg

Dividends

Dividends are aggregated on ticker and ex-date, by the sum of the total payouts and stored into market_dividends table. The market data extraction is periodically extracted in an automated manner via the relevant market data engines, which reads the required tickers from the reference_data table.

The portfolio manager then takes the market dividends and compute the actual amount received by the respective portfolios before storing it in the dividends table.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.