GithubHelp home page GithubHelp logo

vanekpetr / investment-funnel Goto Github PK

View Code? Open in Web Editor NEW
45.0 45.0 6.0 261.71 MB

Investment Funnel ๐Ÿ“ˆ is an open-source python platform designed for an easy development and backtesting of outperforming investment strategies.

License: MIT License

Python 99.21% CSS 0.40% Dockerfile 0.39%
asset-management finance investment-strategies machine-learning mathematical-optimization trading-algorithms

investment-funnel's Introduction

Header

Hey, Robots!

Currently, I'm working as a Machine Learning Engineer @ Go Autonomous in Copenhagen where I deep dive into topics of NLP, Computer Vision and MLOps.

In a free time, I am helping as a teaching assistant at DTU and KU, co-supervising master and bachelor theses within OR, ML and asset allocation as well as applying this knowledge to create an open-source algorithm-based investment advisor.

๐Ÿ”ง Technologies & Tools

๐Ÿš€ GitHub Stats

Petr's GitHub Stats

๐Ÿ›ธ Check this out

investment-funnel's People

Contributors

arnarc avatar cicadaa avatar dependabot[bot] avatar ingimundarson avatar jorgeebg96 avatar mariskavandesompele avatar pre-commit-ci[bot] avatar szelidvihar avatar tschm avatar vanekpetr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

investment-funnel's Issues

Use dependabot for your dependencies...

copy

# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
  - package-ecosystem: "pip" # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
      interval: "weekly"

into .github/dependabot.yml

Find assets and Download data

  1. Go to investment-funnel/investment_club/benchmarks.py
  2. Find all assets used in Lysa and NORD Investments portfolios
  • assets used in Lysa portfolios are already found
  • for NORD, find assets in portfolios 5, 13 and 20 (Kourosh can provide screenshots)
  1. Find corresponding tickers for all assets
  2. Download data for these tickers from Yahoo or any other source (we need daily prices after adjustments, ideally in USD)

Create NORD and Lysa benchmarks

  1. Go to investment-funnel/investment_club/benchmarks.py
  2. Use data provided by @jorgeebg96 and portfolios provided by @VanekPetr to create data for NORD and Lysa portfolios
  • start with a datapoint for which we have data for all downloaded assets
  • in this datapoint, create portfolio based on weights provided in portfolio dictionaries
  • use weekly returns and construct the portfolio value in 4 weeks
  • after 4 weeks rebalance the portfolio to get again the weights provided in portfolio dictionaries (or use any other strategy before you rebalance back to starting weights)
  • repeat this until the end of dataset
  1. If case of any question you can contact @VanekPetr or Kourosh

Adjust title and axis of our graphs

Could be:
Annualised average returns
Annualised standard deviation of returns (risk)
Relationship between risks and returns for a time period from "Date" to "Date" (date without a time)

Check data pre-processing

Delete all tickers which has not available data in the beginning but also at the end of the selected intervals.

Revisit ci/cd

@VanekPetr I don't think you should auto-tag and publish releases with every successful run of main. That's getting too much?

We should release if two conditions are fulfilled

  1. All tests etc. have passed (I will make them part of the ci/cd process)
  2. A user has introduced a tag

I take inspiration from https://github.com/cvxgrp/.github

Create portfolios with weights

Create 3 NORD investments and 3 Lysa portfolios for our benchamrking

  1. NORD portfolio 20
  2. NORD portfolio 13
  3. NORD portfolio 5
  4. Lysa portfolio 100% in stocks
  5. Lysa portfolio 75/25 in stocks/bonds
  6. Lysa portfolio 50/50 in stocks/bonds

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.